Scaleway · Capability
Instance API — IPs
Instance API — IPs. 6 operations. Lead operation: List all flexible IPs. Self-contained Naftiko capability covering one Scaleway business surface.
What You Can Do
GET
Listips
— List all flexible IPs
/v1/instance/v1/zones/{zone}/ips
POST
Createip
— Reserve a flexible IP
/v1/instance/v1/zones/{zone}/ips
POST
Releaseiptoipam
— Releases the reserved IP without deleting the reservation.
/v1/instance/v1/zones/{zone}/ips/{ip-id}/release-to-ipam
GET
Getip
— Get a flexible IP
/v1/instance/v1/zones/{zone}/ips/{ip}
PATCH
Updateip
— Update a flexible IP
/v1/instance/v1/zones/{zone}/ips/{ip}
DELETE
Deleteip
— Delete a flexible IP
/v1/instance/v1/zones/{zone}/ips/{ip}
MCP Tools
list-all-flexible-ips
List all flexible IPs
read-only
idempotent
reserve-flexible-ip
Reserve a flexible IP
releases-reserved-ip-without-deleting
Releases the reserved IP without deleting the reservation.
get-flexible-ip
Get a flexible IP
read-only
idempotent
update-flexible-ip
Update a flexible IP
idempotent
delete-flexible-ip
Delete a flexible IP
idempotent
Capability Spec
naftiko: 1.0.0-alpha2
info:
label: Instance API — IPs
description: 'Instance API — IPs. 6 operations. Lead operation: List all flexible IPs. Self-contained Naftiko capability
covering one Scaleway business surface.'
tags:
- Scaleway
- IPs
created: '2026-05-19'
modified: '2026-05-19'
binds:
- namespace: env
keys:
SCALEWAY_API_KEY: SCALEWAY_API_KEY
capability:
consumes:
- type: http
namespace: instance-ips
baseUri: https://api.scaleway.com
description: Instance API — IPs business capability. Self-contained, no shared references.
resources:
- name: instance-v1-zones-zone-ips
path: /instance/v1/zones/{zone}/ips
operations:
- name: listips
method: GET
description: List all flexible IPs
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: zone
in: path
type: string
description: The zone you want to target
required: true
- name: project
in: query
type: string
description: Project ID in which the IPs are reserved.
- name: organization
in: query
type: string
description: Organization ID in which the IPs are reserved.
- name: tags
in: query
type: string
description: Filter IPs with these exact tags (to filter with several tags, use commas to separate them).
- name: name
in: query
type: string
description: Filter on the IP address (Works as a LIKE operation on the IP address).
- name: per_page
in: query
type: integer
description: A positive integer lower or equal to 100 to select the number of items to return.
- name: page
in: query
type: integer
description: A positive integer to choose the page to return.
- name: type
in: query
type: string
description: Filter on the IP Mobility IP type (whose value should be either 'routed_ipv4' or 'routed_ipv6').
- name: createip
method: POST
description: Reserve a flexible IP
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: zone
in: path
type: string
description: The zone you want to target
required: true
- name: body
in: body
type: object
description: Request body (JSON).
required: true
- name: instance-v1-zones-zone-ips-ip_id-release-to-ipam
path: /instance/v1/zones/{zone}/ips/{ip_id}/release-to-ipam
operations:
- name: releaseiptoipam
method: POST
description: Releases the reserved IP without deleting the reservation.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: zone
in: path
type: string
description: The zone you want to target
required: true
- name: ip_id
in: path
type: string
description: ID of the IP you want to release from the Instance but retain in IPAM.
required: true
- name: body
in: body
type: object
description: Request body (JSON).
required: true
- name: instance-v1-zones-zone-ips-ip
path: /instance/v1/zones/{zone}/ips/{ip}
operations:
- name: getip
method: GET
description: Get a flexible IP
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: zone
in: path
type: string
description: The zone you want to target
required: true
- name: ip
in: path
type: string
description: IP ID or address to get.
required: true
- name: updateip
method: PATCH
description: Update a flexible IP
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: zone
in: path
type: string
description: The zone you want to target
required: true
- name: ip
in: path
type: string
description: IP ID or IP address.
required: true
- name: body
in: body
type: object
description: Request body (JSON).
required: true
- name: deleteip
method: DELETE
description: Delete a flexible IP
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: zone
in: path
type: string
description: The zone you want to target
required: true
- name: ip
in: path
type: string
description: ID or address of the IP to delete.
required: true
authentication:
type: apikey
key: X-Auth-Token
value: '{{env.SCALEWAY_API_KEY}}'
placement: header
exposes:
- type: rest
namespace: instance-ips-rest
port: 8080
description: REST adapter for Instance API — IPs. One Spectral-compliant resource per consumed operation, prefixed with
/v1.
resources:
- path: /v1/instance/v1/zones/{zone}/ips
name: instance-v1-zones-zone-ips
description: REST surface for instance-v1-zones-zone-ips.
operations:
- method: GET
name: listips
description: List all flexible IPs
call: instance-ips.listips
with:
zone: rest.zone
project: rest.project
organization: rest.organization
tags: rest.tags
name: rest.name
per_page: rest.per_page
page: rest.page
type: rest.type
outputParameters:
- type: object
mapping: $.
- method: POST
name: createip
description: Reserve a flexible IP
call: instance-ips.createip
with:
zone: rest.zone
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/instance/v1/zones/{zone}/ips/{ip-id}/release-to-ipam
name: instance-v1-zones-zone-ips-ip-id-release-to-ipam
description: REST surface for instance-v1-zones-zone-ips-ip_id-release-to-ipam.
operations:
- method: POST
name: releaseiptoipam
description: Releases the reserved IP without deleting the reservation.
call: instance-ips.releaseiptoipam
with:
zone: rest.zone
ip_id: rest.ip_id
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/instance/v1/zones/{zone}/ips/{ip}
name: instance-v1-zones-zone-ips-ip
description: REST surface for instance-v1-zones-zone-ips-ip.
operations:
- method: GET
name: getip
description: Get a flexible IP
call: instance-ips.getip
with:
zone: rest.zone
ip: rest.ip
outputParameters:
- type: object
mapping: $.
- method: PATCH
name: updateip
description: Update a flexible IP
call: instance-ips.updateip
with:
zone: rest.zone
ip: rest.ip
body: rest.body
outputParameters:
- type: object
mapping: $.
- method: DELETE
name: deleteip
description: Delete a flexible IP
call: instance-ips.deleteip
with:
zone: rest.zone
ip: rest.ip
outputParameters:
- type: object
mapping: $.
- type: mcp
namespace: instance-ips-mcp
port: 9090
transport: http
description: MCP adapter for Instance API — IPs. One tool per consumed operation, routed inline through this capability's
consumes block.
tools:
- name: list-all-flexible-ips
description: List all flexible IPs
hints:
readOnly: true
destructive: false
idempotent: true
call: instance-ips.listips
with:
zone: tools.zone
project: tools.project
organization: tools.organization
tags: tools.tags
name: tools.name
per_page: tools.per_page
page: tools.page
type: tools.type
outputParameters:
- type: object
mapping: $.
- name: reserve-flexible-ip
description: Reserve a flexible IP
hints:
readOnly: false
destructive: false
idempotent: false
call: instance-ips.createip
with:
zone: tools.zone
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: releases-reserved-ip-without-deleting
description: Releases the reserved IP without deleting the reservation.
hints:
readOnly: false
destructive: false
idempotent: false
call: instance-ips.releaseiptoipam
with:
zone: tools.zone
ip_id: tools.ip_id
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: get-flexible-ip
description: Get a flexible IP
hints:
readOnly: true
destructive: false
idempotent: true
call: instance-ips.getip
with:
zone: tools.zone
ip: tools.ip
outputParameters:
- type: object
mapping: $.
- name: update-flexible-ip
description: Update a flexible IP
hints:
readOnly: false
destructive: false
idempotent: true
call: instance-ips.updateip
with:
zone: tools.zone
ip: tools.ip
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: delete-flexible-ip
description: Delete a flexible IP
hints:
readOnly: false
destructive: true
idempotent: true
call: instance-ips.deleteip
with:
zone: tools.zone
ip: tools.ip
outputParameters:
- type: object
mapping: $.