> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cloudblast.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Move an IP to Reserved IPs

> Takes a secondary IP address off the server and keeps it as one of your reserved IPs, to attach to another server on the same node or to deploy a new server with. The primary IPv4 or IPv6 address cannot be moved. An address that was not reserved yet counts towards your reserved IP limit; the move does not count against the weekly removal limit. Remove the address from the server's network configuration afterwards.



## OpenAPI

````yaml POST /servers/{server}/ips/{address}/move-to-reserved
openapi: 3.0.3
info:
  title: CloudBlast API
  description: >-
    The CloudBlast V2 API provides a modern RESTful interface for managing your
    cloud infrastructure programmatically. All responses follow a consistent `{
    "data": ... }` or `{ "error": ... }` format.
  version: 2.0.0
servers:
  - url: https://console.cloudblast.io/api/v2
    description: Production
security:
  - bearerAuth: []
paths:
  /servers/{server}/ips/{address}/move-to-reserved:
    post:
      tags:
        - Server IPs
      summary: Move an IP to Reserved IPs
      description: >-
        Takes a secondary IP address off the server and keeps it as one of your
        reserved IPs, to attach to another server on the same node or to deploy
        a new server with. The primary IPv4 or IPv6 address cannot be moved. An
        address that was not reserved yet counts towards your reserved IP limit;
        the move does not count against the weekly removal limit. Remove the
        address from the server's network configuration afterwards.
      operationId: moveServerIpToReserved
      parameters:
        - $ref: '#/components/parameters/ServerIdentifier'
        - name: address
          in: path
          required: true
          schema:
            type: string
          description: The IP address to move (e.g., `203.0.113.50`)
          example: 203.0.113.50
      responses:
        '200':
          description: The address, now one of your reserved IPs
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/ReservedIp'
        '400':
          description: >-
            The address is the server's primary address
            (`CANNOT_REMOVE_PRIMARY`)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          $ref: '#/components/responses/Unauthenticated'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          description: Refused (`VALIDATION_ERROR`)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  parameters:
    ServerIdentifier:
      name: server
      in: path
      required: true
      schema:
        type: string
      description: >-
        Server identifier — any of: numeric `id`, `uuid_short` (8 chars), or
        full `uuid` (36 chars).
      example: a1b2c3d4
  schemas:
    ReservedIp:
      type: object
      properties:
        address:
          type: string
          example: 203.0.113.50
        type:
          type: string
          enum:
            - ipv4
            - ipv6
          example: ipv4
        gateway:
          type: string
          example: 203.0.113.1
        cidr:
          type: integer
          example: 24
        rdns:
          type: string
          nullable: true
          example: null
        subnet:
          type: string
          nullable: true
          description: The subnet the address belongs to
          example: 203.0.113.0/24
        location:
          type: object
          nullable: true
          properties:
            id:
              type: integer
              example: 1
            short_code:
              type: string
              example: nl
            description:
              type: string
              nullable: true
              example: Amsterdam, NL
        server:
          type: object
          nullable: true
          description: The server using this address right now, or null when unused
          properties:
            uuid:
              type: string
              format: uuid
            uuid_short:
              type: string
              example: a1b2c3d4
            hostname:
              type: string
              example: web-01
        reserved_at:
          type: string
          format: date-time
          nullable: true
    Error:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              description: Machine-readable error code
            message:
              type: string
              description: Human-readable error message
          required:
            - code
            - message
  responses:
    Unauthenticated:
      description: Authentication failed
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              code: UNAUTHENTICATED
              message: >-
                Missing or invalid Authorization header. Use: Authorization:
                Bearer <token>
    NotFound:
      description: Resource not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              code: NOT_FOUND
              message: Server not found.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        API token from your CloudBlast account settings. Pass as `Authorization:
        Bearer <token>`.

````