Scaleway I Ps API

A flexible IP address is an IP address which you hold independently of any Instance. You can attach it to any of your Instances and do live migration of the IP address between your Instances. Note that attaching a flexible IP address to an Instance removes its previous public IP and interrupts any ongoing public connection to the Instance. This does not apply if you have migrated your server to the new Network stack and have at least one flexible IP attached to the Instance.

Business capability
IT Infrastructure Management BC-600.50

Operations 6

GET /instance/v1/zones/{zone}/ips List all flexible IPs #
POST /instance/v1/zones/{zone}/ips Reserve a flexible IP #
POST /instance/v1/zones/{zone}/ips/{ip_id}/release-to-ipam Releases the reserved IP without deleting the reservation #
GET /instance/v1/zones/{zone}/ips/{ip} Get a flexible IP #
PATCH /instance/v1/zones/{zone}/ips/{ip} Update a flexible IP #
DELETE /instance/v1/zones/{zone}/ips/{ip} Delete a flexible IP #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/scaleway-ips-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

scaleway-ips-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Instance IPs API
  description: Scaleway Instances are virtual machines in the cloud.
  version: v1
servers:
- url: https://api.scaleway.com
tags:
- name: IPs
  description: 'A flexible IP address is an IP address which you hold independently of any Instance.

    You can attach it to any of your Instances and do live migration of the IP address between your Instances.


    Note that attaching a flexible IP address to an Instance removes its previous public IP and interrupts any ongoing public connection to the Instance. This does not apply if you have migrated your server to the new Network stack and have at least one flexible IP attached to the Instance.'
paths:
  /instance/v1/zones/{zone}/ips:
    get:
      tags:
      - IPs
      operationId: ListIps
      summary: List all flexible IPs
      description: List all flexible IPs in a specified zone.
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par-1
          - fr-par-2
          - fr-par-3
          - nl-ams-1
          - nl-ams-2
          - nl-ams-3
          - pl-waw-1
          - pl-waw-2
          - pl-waw-3
          - it-mil-1
      - in: query
        name: project
        description: Project ID in which the IPs are reserved.
        schema:
          type: string
      - in: query
        name: organization
        description: Organization ID in which the IPs are reserved.
        schema:
          type: string
      - in: query
        name: tags
        description: Filter IPs with these exact tags (to filter with several tags, use commas to separate them).
        schema:
          type: string
      - in: query
        name: name
        description: Filter on the IP address (Works as a LIKE operation on the IP address).
        schema:
          type: string
      - in: query
        name: per_page
        description: A positive integer lower or equal to 100 to select the number of items to return.
        schema:
          type: integer
          format: uint32
      - in: query
        name: page
        description: A positive integer to choose the page to return.
        schema:
          type: integer
          format: int32
      - in: query
        name: type
        description: Filter on the IP Mobility IP type (whose value should be either 'routed_ipv4' or 'routed_ipv6').
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.instance.v1.ListIpsResponse'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: "curl -X GET \\\n  -H \"X-Auth-Token: $SCW_SECRET_KEY\" \\\n  \"https://api.scaleway.com/instance/v1/zones/{zone}/ips\""
      - lang: HTTPie
        source: "http GET \"https://api.scaleway.com/instance/v1/zones/{zone}/ips\" \\\n  X-Auth-Token:$SCW_SECRET_KEY"
    post:
      tags:
      - IPs
      operationId: CreateIp
      summary: Reserve a flexible IP
      description: Reserve a flexible IP and attach it to the specified Instance.
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par-1
          - fr-par-2
          - fr-par-3
          - nl-ams-1
          - nl-ams-2
          - nl-ams-3
          - pl-waw-1
          - pl-waw-2
          - pl-waw-3
          - it-mil-1
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.instance.v1.CreateIpResponse'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                organization:
                  type: string
                  description: Organization ID in which the IP is reserved.
                  deprecated: true
                  nullable: true
                  x-one-of: ProjectIdentifier
                project:
                  type: string
                  description: Project ID in which the IP is reserved.
                  nullable: true
                  x-one-of: ProjectIdentifier
                tags:
                  type: array
                  description: Tags of the IP.
                  items:
                    type: string
                server:
                  type: string
                  description: UUID of the Instance you want to attach the IP to.
                  nullable: true
                type:
                  type: string
                  description: IP type to reserve (either 'routed_ipv4' or 'routed_ipv6').
                  enum:
                  - unknown_iptype
                  - routed_ipv4
                  - routed_ipv6
                  default: unknown_iptype
              x-properties-order:
              - organization
              - project
              - tags
              - server
              - type
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: "curl -X POST \\\n  -H \"X-Auth-Token: $SCW_SECRET_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{}' \\\n  \"https://api.scaleway.com/instance/v1/zones/{zone}/ips\""
      - lang: HTTPie
        source: "http POST \"https://api.scaleway.com/instance/v1/zones/{zone}/ips\" \\\n  X-Auth-Token:$SCW_SECRET_KEY"
  /instance/v1/zones/{zone}/ips/{ip_id}/release-to-ipam:
    post:
      tags:
      - IPs
      operationId: ReleaseIpToIpam
      summary: Releases the reserved IP without deleting the reservation
      description: '**The IP remains available in IPAM**, which means that it is still reserved by the Organization, and can be reattached to another resource (Instance or other product).'
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par-1
          - fr-par-2
          - fr-par-3
          - nl-ams-1
          - nl-ams-2
          - nl-ams-3
          - pl-waw-1
          - pl-waw-2
          - pl-waw-3
          - it-mil-1
      - in: path
        name: ip_id
        description: ID of the IP you want to release from the Instance but retain in IPAM.
        required: true
        schema:
          type: string
      responses:
        '204':
          description: ''
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: "curl -X POST \\\n  -H \"X-Auth-Token: $SCW_SECRET_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{}' \\\n  \"https://api.scaleway.com/instance/v1/zones/{zone}/ips/{ip_id}/release-to-ipam\""
      - lang: HTTPie
        source: "http POST \"https://api.scaleway.com/instance/v1/zones/{zone}/ips/{ip_id}/release-to-ipam\" \\\n  X-Auth-Token:$SCW_SECRET_KEY"
  /instance/v1/zones/{zone}/ips/{ip}:
    get:
      tags:
      - IPs
      operationId: GetIp
      summary: Get a flexible IP
      description: Get details of an IP with the specified ID or address.
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par-1
          - fr-par-2
          - fr-par-3
          - nl-ams-1
          - nl-ams-2
          - nl-ams-3
          - pl-waw-1
          - pl-waw-2
          - pl-waw-3
          - it-mil-1
      - in: path
        name: ip
        description: IP ID or address to get.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.instance.v1.GetIpResponse'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: "curl -X GET \\\n  -H \"X-Auth-Token: $SCW_SECRET_KEY\" \\\n  \"https://api.scaleway.com/instance/v1/zones/{zone}/ips/{ip}\""
      - lang: HTTPie
        source: "http GET \"https://api.scaleway.com/instance/v1/zones/{zone}/ips/{ip}\" \\\n  X-Auth-Token:$SCW_SECRET_KEY"
    patch:
      tags:
      - IPs
      operationId: UpdateIp
      summary: Update a flexible IP
      description: Update a flexible IP in the specified zone with the specified ID.
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par-1
          - fr-par-2
          - fr-par-3
          - nl-ams-1
          - nl-ams-2
          - nl-ams-3
          - pl-waw-1
          - pl-waw-2
          - pl-waw-3
          - it-mil-1
      - in: path
        name: ip
        description: IP ID or IP address.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.instance.v1.UpdateIpResponse'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                reverse:
                  type: string
                  description: Reverse domain name.
                  nullable: true
                type:
                  type: string
                  description: Should have no effect.
                  enum:
                  - unknown_iptype
                  - routed_ipv4
                  - routed_ipv6
                  default: unknown_iptype
                tags:
                  type: array
                  description: An array of keywords you want to tag this IP with.
                  nullable: true
                  items:
                    type: string
                server:
                  $ref: '#/components/schemas/scaleway.instance.v1.NullableStringValue'
              x-properties-order:
              - reverse
              - type
              - tags
              - server
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: "curl -X PATCH \\\n  -H \"X-Auth-Token: $SCW_SECRET_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{}' \\\n  \"https://api.scaleway.com/instance/v1/zones/{zone}/ips/{ip}\""
      - lang: HTTPie
        source: "http PATCH \"https://api.scaleway.com/instance/v1/zones/{zone}/ips/{ip}\" \\\n  X-Auth-Token:$SCW_SECRET_KEY"
    delete:
      tags:
      - IPs
      operationId: DeleteIp
      summary: Delete a flexible IP
      description: Delete the IP with the specified ID.
      parameters:
      - in: path
        name: zone
        description: The zone you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par-1
          - fr-par-2
          - fr-par-3
          - nl-ams-1
          - nl-ams-2
          - nl-ams-3
          - pl-waw-1
          - pl-waw-2
          - pl-waw-3
          - it-mil-1
      - in: path
        name: ip
        description: ID or address of the IP to delete.
        required: true
        schema:
          type: string
      responses:
        '204':
          description: ''
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: "curl -X DELETE \\\n  -H \"X-Auth-Token: $SCW_SECRET_KEY\" \\\n  \"https://api.scaleway.com/instance/v1/zones/{zone}/ips/{ip}\""
      - lang: HTTPie
        source: "http DELETE \"https://api.scaleway.com/instance/v1/zones/{zone}/ips/{ip}\" \\\n  X-Auth-Token:$SCW_SECRET_KEY"
components:
  schemas:
    scaleway.instance.v1.CreateIpResponse:
      type: object
      properties:
        ip:
          $ref: '#/components/schemas/scaleway.instance.v1.Ip'
      x-properties-order:
      - ip
    scaleway.instance.v1.UpdateIpResponse:
      type: object
      properties:
        ip:
          $ref: '#/components/schemas/scaleway.instance.v1.Ip'
      x-properties-order:
      - ip
    scaleway.instance.v1.Ip:
      type: object
      properties:
        id:
          type: string
        address:
          type: string
          description: (IP address)
          example: 1.2.3.4
        reverse:
          $ref: '#/components/schemas/google.protobuf.StringValue'
        server:
          $ref: '#/components/schemas/scaleway.instance.v1.ServerSummary'
        organization:
          type: string
        tags:
          type: array
          items:
            type: string
        project:
          type: string
        type:
          $ref: '#/components/schemas/scaleway.instance.v1.IpType'
        state:
          $ref: '#/components/schemas/scaleway.instance.v1.Ip.State'
        prefix:
          type: string
          description: (IP network)
          example: 1.2.3.4/32
        ipam_id:
          type: string
          description: (UUID format)
          example: 6170692e-7363-616c-6577-61792e636f6d
        zone:
          type: string
          description: The zone you want to target
      x-properties-order:
      - id
      - address
      - reverse
      - server
      - organization
      - tags
      - project
      - type
      - state
      - prefix
      - ipam_id
      - zone
    google.protobuf.StringValue:
      type: string
      nullable: true
    scaleway.instance.v1.Ip.State:
      type: string
      enum:
      - unknown_state
      - detached
      - attached
      - pending
      - error
      default: unknown_state
    scaleway.instance.v1.GetIpResponse:
      type: object
      properties:
        ip:
          $ref: '#/components/schemas/scaleway.instance.v1.Ip'
      x-properties-order:
      - ip
    scaleway.instance.v1.ServerSummary:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
      x-properties-order:
      - id
      - name
    scaleway.instance.v1.NullableStringValue:
      type: string
      nullable: true
    scaleway.instance.v1.ListIpsResponse:
      type: object
      properties:
        ips:
          type: array
          description: List of ips.
          items:
            $ref: '#/components/schemas/scaleway.instance.v1.Ip'
      x-properties-order:
      - ips
    scaleway.instance.v1.IpType:
      type: string
      enum:
      - unknown_iptype
      - routed_ipv4
      - routed_ipv6
      default: unknown_iptype
  securitySchemes:
    scaleway:
      in: header
      name: X-Auth-Token
      type: apiKey