Scaleway Nodes API

A node (short for worker node) is an abstraction for a Scaleway Instance A node is always part of a pool. Each of them has the Kubernetes software automatically installed and configured by Scaleway.

Business capability
IT Infrastructure Management BC-600.50

Operations 5

GET /k8s/v1/regions/{region}/clusters/{cluster_id}/nodes List Nodes in a Cluster #
GET /k8s/v1/regions/{region}/nodes/{node_id} Get a Node in a Cluster #
DELETE /k8s/v1/regions/{region}/nodes/{node_id} Delete a Node in a Cluster #
POST /k8s/v1/regions/{region}/nodes/{node_id}/reboot Reboot a Node in a Cluster #
POST /k8s/v1/regions/{region}/pools/{pool_id}/external-nodes Create a Kosmos node #

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-nodes-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-nodes-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Kubernetes Nodes API
  description: Kubernetes is an open-source platform that enables developers to manage their containerized applications.
  version: v1
servers:
- url: https://api.scaleway.com
tags:
- name: Nodes
  description: 'A node (short for worker node) is an abstraction for a Scaleway Instance

    A node is always part of a pool. Each of them has the Kubernetes software automatically installed and configured by Scaleway.'
paths:
  /k8s/v1/regions/{region}/clusters/{cluster_id}/nodes:
    get:
      tags:
      - Nodes
      operationId: ListNodes
      summary: List Nodes in a Cluster
      description: List all the existing nodes for a specific Kubernetes cluster.
      parameters:
      - in: path
        name: region
        description: The region you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par
          - nl-ams
          - pl-waw
      - in: path
        name: cluster_id
        description: Cluster ID from which the nodes will be listed from.
        required: true
        schema:
          type: string
      - in: query
        name: pool_id
        description: Pool ID on which to filter the returned nodes.
        schema:
          type: string
      - in: query
        name: order_by
        description: Sort order of the returned nodes.
        schema:
          type: string
          enum:
          - created_at_asc
          - created_at_desc
          - updated_at_asc
          - updated_at_desc
          - name_asc
          - name_desc
          - status_asc
          - status_desc
          - version_asc
          - version_desc
          default: created_at_asc
      - in: query
        name: page
        description: Page number for the returned nodes.
        schema:
          type: integer
          format: int32
      - in: query
        name: page_size
        description: Maximum number of nodes per page.
        schema:
          type: integer
          format: uint32
      - in: query
        name: name
        description: Name to filter on, only nodes containing this substring in their name will be returned.
        schema:
          type: string
      - in: query
        name: status
        description: Status to filter on, only nodes with this status will be returned.
        schema:
          type: string
          enum:
          - unknown
          - creating
          - not_ready
          - ready
          - deleting
          - deleted
          - locked
          - rebooting
          - creation_error
          - upgrading
          - starting
          - registering
          x-enum-descriptions:
            values:
              creating: Node is provisioning
              not_ready: Node is unable to connect to apiserver
              ready: Node is ready to execute workload (marked schedulable by k8s scheduler)
              deleting: Node is waiting to be processed for deletion
              locked: Node is locked because an abuse has been detected or reported
              rebooting: Node is rebooting
          default: unknown
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.k8s.v1.ListNodesResponse'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: "curl -X GET \\\n  -H \"X-Auth-Token: $SCW_SECRET_KEY\" \\\n  \"https://api.scaleway.com/k8s/v1/regions/{region}/clusters/{cluster_id}/nodes\""
      - lang: HTTPie
        source: "http GET \"https://api.scaleway.com/k8s/v1/regions/{region}/clusters/{cluster_id}/nodes\" \\\n  X-Auth-Token:$SCW_SECRET_KEY"
  /k8s/v1/regions/{region}/nodes/{node_id}:
    get:
      tags:
      - Nodes
      operationId: GetNode
      summary: Get a Node in a Cluster
      description: Retrieve details about a specific Kubernetes Node.
      parameters:
      - in: path
        name: region
        description: The region you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par
          - nl-ams
          - pl-waw
      - in: path
        name: node_id
        description: ID of the requested node.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.k8s.v1.Node'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: "curl -X GET \\\n  -H \"X-Auth-Token: $SCW_SECRET_KEY\" \\\n  \"https://api.scaleway.com/k8s/v1/regions/{region}/nodes/{node_id}\""
      - lang: HTTPie
        source: "http GET \"https://api.scaleway.com/k8s/v1/regions/{region}/nodes/{node_id}\" \\\n  X-Auth-Token:$SCW_SECRET_KEY"
    delete:
      tags:
      - Nodes
      operationId: DeleteNode
      summary: Delete a Node in a Cluster
      description: Delete a specific Node. The node will first be drained and pods will be rescheduled onto another node. Note that when there is not enough space to reschedule all the pods (such as in a one-node cluster, or with specific constraints), disruption of your applications may occur.
      parameters:
      - in: path
        name: region
        description: The region you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par
          - nl-ams
          - pl-waw
      - in: path
        name: node_id
        description: ID of the node to replace.
        required: true
        schema:
          type: string
      - in: query
        name: skip_drain
        description: 'Skip draining node from its workload (Note: this parameter is currently inactive).'
        required: true
        schema:
          type: boolean
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.k8s.v1.Node'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: "curl -X DELETE \\\n  -H \"X-Auth-Token: $SCW_SECRET_KEY\" \\\n  \"https://api.scaleway.com/k8s/v1/regions/{region}/nodes/{node_id}?skip_drain=false\""
      - lang: HTTPie
        source: "http DELETE \"https://api.scaleway.com/k8s/v1/regions/{region}/nodes/{node_id}\" \\\n  X-Auth-Token:$SCW_SECRET_KEY \\\n  skip_drain==false"
  /k8s/v1/regions/{region}/nodes/{node_id}/reboot:
    post:
      tags:
      - Nodes
      operationId: RebootNode
      summary: Reboot a Node in a Cluster
      description: Reboot a specific Node. The node will first be drained and pods will be rescheduled onto another node. Note that when there is not enough space to reschedule all the pods (such as in a one-node cluster, or with specific constraints), disruption of your applications may occur.
      parameters:
      - in: path
        name: region
        description: The region you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par
          - nl-ams
          - pl-waw
      - in: path
        name: node_id
        description: ID of the node to reboot.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.k8s.v1.Node'
      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/k8s/v1/regions/{region}/nodes/{node_id}/reboot\""
      - lang: HTTPie
        source: "http POST \"https://api.scaleway.com/k8s/v1/regions/{region}/nodes/{node_id}/reboot\" \\\n  X-Auth-Token:$SCW_SECRET_KEY"
  /k8s/v1/regions/{region}/pools/{pool_id}/external-nodes:
    post:
      tags:
      - Nodes
      operationId: CreateExternalNode
      summary: Create a Kosmos node
      description: Retrieve metadata for a Kosmos node. This method is not intended to be called by end users but rather programmatically by the kapsule-node-agent.
      parameters:
      - in: path
        name: region
        description: The region you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par
          - nl-ams
          - pl-waw
      - in: path
        name: pool_id
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.k8s.v1.ExternalNode'
      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/k8s/v1/regions/{region}/pools/{pool_id}/external-nodes\""
      - lang: HTTPie
        source: "http POST \"https://api.scaleway.com/k8s/v1/regions/{region}/pools/{pool_id}/external-nodes\" \\\n  X-Auth-Token:$SCW_SECRET_KEY"
components:
  schemas:
    scaleway.k8s.v1.ListNodesResponse:
      type: object
      properties:
        total_count:
          type: integer
          description: Total number of nodes.
          format: uint64
        nodes:
          type: array
          description: Paginated returned nodes.
          items:
            $ref: '#/components/schemas/scaleway.k8s.v1.Node'
      x-properties-order:
      - total_count
      - nodes
    scaleway.k8s.v1.ExternalNode:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        cluster_url:
          type: string
        pool_version:
          type: string
        cluster_ca:
          type: string
        kube_token:
          type: string
        kubelet_config:
          type: string
        external_ip:
          type: string
        containerd_version:
          type: string
        runc_version:
          type: string
        cni_plugins_version:
          type: string
        node_labels:
          type: object
          properties:
            <node_labelKey>:
              type: string
          additionalProperties: true
        node_taints:
          type: array
          items:
            $ref: '#/components/schemas/scaleway.k8s.v1.ExternalNode.CoreV1Taint'
        iam_token:
          type: string
      x-properties-order:
      - id
      - name
      - cluster_url
      - pool_version
      - cluster_ca
      - kube_token
      - kubelet_config
      - external_ip
      - containerd_version
      - runc_version
      - cni_plugins_version
      - node_labels
      - node_taints
      - iam_token
    scaleway.k8s.v1.ExternalNode.CoreV1Taint:
      type: object
      properties:
        key:
          type: string
        value:
          type: string
        effect:
          type: string
      x-properties-order:
      - key
      - value
      - effect
    scaleway.k8s.v1.Node:
      type: object
      properties:
        id:
          type: string
          description: Node ID.
        pool_id:
          type: string
          description: Pool ID of the node.
        cluster_id:
          type: string
          description: Cluster ID of the node.
        provider_id:
          type: string
          description: Underlying instance ID. It is prefixed by instance type and location information (see https://pkg.go.dev/k8s.io/api/core/v1#NodeSpec.ProviderID).
        region:
          type: string
          description: Cluster region of the node.
        name:
          type: string
          description: Name of the node.
        status:
          type: string
          description: Status of the node.
          enum:
          - unknown
          - creating
          - not_ready
          - ready
          - deleting
          - deleted
          - locked
          - rebooting
          - creation_error
          - upgrading
          - starting
          - registering
          x-enum-descriptions:
            values:
              creating: Node is provisioning
              not_ready: Node is unable to connect to apiserver
              ready: Node is ready to execute workload (marked schedulable by k8s scheduler)
              deleting: Node is waiting to be processed for deletion
              locked: Node is locked because an abuse has been detected or reported
              rebooting: Node is rebooting
          default: unknown
        error_message:
          type: string
          description: Details of the error, if any occurred when managing the node.
          nullable: true
        created_at:
          type: string
          description: Date on which the node was created. (RFC 3339 format)
          format: date-time
          example: '2022-03-22T12:34:56.123456Z'
          nullable: true
        updated_at:
          type: string
          description: Date on which the node was last updated. (RFC 3339 format)
          format: date-time
          example: '2022-03-22T12:34:56.123456Z'
          nullable: true
      x-properties-order:
      - id
      - pool_id
      - cluster_id
      - provider_id
      - region
      - name
      - status
      - error_message
      - created_at
      - updated_at
  securitySchemes:
    scaleway:
      in: header
      name: X-Auth-Token
      type: apiKey