Scaleway SSH Keys API

An SSH Key (**S**ecure **Sh**ell Key) allows passwordless connection to an [Instance](https://www.scaleway.com/en/docs/instances/concepts/#instance). An SSH Key is [generated by creating an RSA key pair](https://www.scaleway.com/en/docs/console/my-project/how-to/create-ssh-key/), consisting of a sensitive **identification key**, (aka private key) which must be stored securely, and a **public key** which is uploaded to the Scaleway interface. The public key is kept in your Scaleway account and transferred to the Instance during the boot process, while the identification key is kept securely on your local computer. When connecting to the Instance via SSH, a trusted connection to the machine is established using the key pair.

Business capability
Identity & Access Management BC-620.20

Operations 5

GET /iam/v1alpha1/ssh-keys List SSH keys #
POST /iam/v1alpha1/ssh-keys Create an SSH key #
GET /iam/v1alpha1/ssh-keys/{ssh_key_id} Get an SSH key #
PATCH /iam/v1alpha1/ssh-keys/{ssh_key_id} Update an SSH key #
DELETE /iam/v1alpha1/ssh-keys/{ssh_key_id} Delete an SSH key #

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-ssh-keys-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-ssh-keys-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: IAM SSH Keys API
  description: Identity and Access Management (IAM) allows you to share access to the management of your Scaleway resources and Organization settings, in a controlled and secure manner.
  version: v1alpha1
servers:
- url: https://api.scaleway.com
tags:
- name: SSH Keys
  description: An SSH Key (**S**ecure **Sh**ell Key) allows passwordless connection to an Instance.
paths:
  /iam/v1alpha1/ssh-keys:
    get:
      tags:
      - SSH Keys
      operationId: ListSSHKeys
      summary: List SSH keys
      description: List SSH keys. By default, the SSH keys listed are ordered by creation date in ascending order. This can be modified via the `order_by` field. You can define additional parameters for your query such as `organization_id`, `name`, `project_id` and `disabled`.
      parameters:
      - in: query
        name: order_by
        description: Sort order of the SSH keys.
        schema:
          type: string
          enum:
          - created_at_asc
          - created_at_desc
          - updated_at_asc
          - updated_at_desc
          - name_asc
          - name_desc
          x-enum-descriptions:
            values:
              created_at_asc: Creation date ascending
              created_at_desc: Creation date descending
              updated_at_asc: Update date ascending
              updated_at_desc: Update date descending
              name_asc: Name ascending
              name_desc: Name descending
          default: created_at_asc
      - in: query
        name: page
        description: Requested page number. Value must be greater or equal to 1.
        schema:
          type: integer
          format: int32
      - in: query
        name: page_size
        description: Number of items per page. Value must be between 1 and 100.
        schema:
          type: integer
          format: uint32
      - in: query
        name: organization_id
        description: Filter by Organization ID.
        schema:
          type: string
      - in: query
        name: name
        description: Name of group to find.
        schema:
          type: string
      - in: query
        name: project_id
        description: Filter by Project ID.
        schema:
          type: string
      - in: query
        name: disabled
        description: Defines whether to include disabled SSH keys or not.
        schema:
          type: boolean
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.iam.v1alpha1.ListSSHKeysResponse'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: "curl -X GET \\\n  -H \"X-Auth-Token: $SCW_SECRET_KEY\" \\\n  \"https://api.scaleway.com/iam/v1alpha1/ssh-keys\""
      - lang: HTTPie
        source: "http GET \"https://api.scaleway.com/iam/v1alpha1/ssh-keys\" \\\n  X-Auth-Token:$SCW_SECRET_KEY"
    post:
      tags:
      - SSH Keys
      operationId: CreateSSHKey
      summary: Create an SSH key
      description: Add a new SSH key to a Scaleway Project. You must specify the `name`, `public_key` and `project_id`.
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.iam.v1alpha1.SSHKey'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: Name of the SSH key. Max length is 1000.
                public_key:
                  type: string
                  description: SSH public key. Currently only the ssh-rsa, ssh-dss (DSA), ssh-ed25519 and ecdsa keys with NIST curves are supported. Max length is 65000.
                project_id:
                  type: string
                  description: Project the resource is attributed to.
              required:
              - name
              - public_key
              - project_id
              x-properties-order:
              - name
              - public_key
              - project_id
      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    \"name\": \"string\",\n    \"project_id\": \"string\",\n    \"public_key\": \"string\"\n  }' \\\n  \"https://api.scaleway.com/iam/v1alpha1/ssh-keys\""
      - lang: HTTPie
        source: "http POST \"https://api.scaleway.com/iam/v1alpha1/ssh-keys\" \\\n  X-Auth-Token:$SCW_SECRET_KEY \\\n  name=\"string\" \\\n  project_id=\"string\" \\\n  public_key=\"string\""
  /iam/v1alpha1/ssh-keys/{ssh_key_id}:
    get:
      tags:
      - SSH Keys
      operationId: GetSSHKey
      summary: Get an SSH key
      description: Retrieve information about a given SSH key, specified by the `ssh_key_id` parameter. The SSH key's full details, including `id`, `name`, `public_key`, and `project_id` are returned in the response.
      parameters:
      - in: path
        name: ssh_key_id
        description: ID of the SSH key.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.iam.v1alpha1.SSHKey'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: "curl -X GET \\\n  -H \"X-Auth-Token: $SCW_SECRET_KEY\" \\\n  \"https://api.scaleway.com/iam/v1alpha1/ssh-keys/{ssh_key_id}\""
      - lang: HTTPie
        source: "http GET \"https://api.scaleway.com/iam/v1alpha1/ssh-keys/{ssh_key_id}\" \\\n  X-Auth-Token:$SCW_SECRET_KEY"
    patch:
      tags:
      - SSH Keys
      operationId: UpdateSSHKey
      summary: Update an SSH key
      description: Update the parameters of an SSH key, including `name` and `disable`.
      parameters:
      - in: path
        name: ssh_key_id
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.iam.v1alpha1.SSHKey'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: Name of the SSH key. Max length is 1000.
                  nullable: true
                disabled:
                  type: boolean
                  description: Enable or disable the SSH key.
                  nullable: true
              x-properties-order:
              - name
              - disabled
      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/iam/v1alpha1/ssh-keys/{ssh_key_id}\""
      - lang: HTTPie
        source: "http PATCH \"https://api.scaleway.com/iam/v1alpha1/ssh-keys/{ssh_key_id}\" \\\n  X-Auth-Token:$SCW_SECRET_KEY"
    delete:
      tags:
      - SSH Keys
      operationId: DeleteSSHKey
      summary: Delete an SSH key
      description: Delete a given SSH key, specified by the `ssh_key_id`. Deleting an SSH is permanent, and cannot be undone. Note that you might need to update any configurations that used the SSH key.
      parameters:
      - in: path
        name: ssh_key_id
        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/iam/v1alpha1/ssh-keys/{ssh_key_id}\""
      - lang: HTTPie
        source: "http DELETE \"https://api.scaleway.com/iam/v1alpha1/ssh-keys/{ssh_key_id}\" \\\n  X-Auth-Token:$SCW_SECRET_KEY"
components:
  schemas:
    scaleway.iam.v1alpha1.SSHKey:
      type: object
      properties:
        id:
          type: string
          description: ID of SSH key.
        name:
          type: string
          description: Name of SSH key.
        public_key:
          type: string
          description: Public key of SSH key.
        fingerprint:
          type: string
          description: Fingerprint of the SSH key.
        created_at:
          type: string
          description: Creation date of SSH key. (RFC 3339 format)
          format: date-time
          example: '2022-03-22T12:34:56.123456Z'
          nullable: true
        updated_at:
          type: string
          description: Last update date of SSH key. (RFC 3339 format)
          format: date-time
          example: '2022-03-22T12:34:56.123456Z'
          nullable: true
        organization_id:
          type: string
          description: ID of Organization linked to the SSH key.
        project_id:
          type: string
          description: ID of Project linked to the SSH key.
        disabled:
          type: boolean
          description: SSH key status.
      x-properties-order:
      - id
      - name
      - public_key
      - fingerprint
      - created_at
      - updated_at
      - organization_id
      - project_id
      - disabled
    scaleway.iam.v1alpha1.ListSSHKeysResponse:
      type: object
      properties:
        ssh_keys:
          type: array
          description: List of SSH keys.
          items:
            $ref: '#/components/schemas/scaleway.iam.v1alpha1.SSHKey'
        total_count:
          type: integer
          description: Total count of SSH keys.
          format: uint32
      x-properties-order:
      - ssh_keys
      - total_count
  securitySchemes:
    scaleway:
      in: header
      name: X-Auth-Token
      type: apiKey