Scaleway Images API

Images are backups of your Instances. One image will contain all the volumes of your Instance and can be used to restore your Instance and its data. You can also use it to create a series of Instances with a predefined configuration. To copy not all but only one specified volume of an Instance, you can use the snapshot feature instead.

Business capability
IT Infrastructure Management BC-600.50

Operations 6

GET /instance/v1/zones/{zone}/images List Instance images #
POST /instance/v1/zones/{zone}/images Create an Instance image #
PUT /instance/v1/zones/{zone}/images/{id} Update image #
GET /instance/v1/zones/{zone}/images/{image_id} Get an Instance image #
PATCH /instance/v1/zones/{zone}/images/{image_id} Update image #
DELETE /instance/v1/zones/{zone}/images/{image_id} Delete an Instance image #

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-images-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-images-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Instance Images API
  description: Scaleway Instances are virtual machines in the cloud.
  version: v1
servers:
- url: https://api.scaleway.com
tags:
- name: Images
  description: 'Images are backups of your Instances.

    One image will contain all the volumes of your Instance and can be used to restore your Instance and its data. You can also use it to create a series of Instances with a predefined configuration.

    To copy not all but only one specified volume of an Instance, you can use the snapshot feature instead.'
paths:
  /instance/v1/zones/{zone}/images:
    get:
      tags:
      - Images
      operationId: ListImages
      summary: List Instance images
      description: List all existing Instance images.
      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: organization
        schema:
          $ref: '#/components/schemas/google.protobuf.StringValue'
      - in: query
        name: per_page
        schema:
          type: integer
          format: uint32
      - in: query
        name: page
        schema:
          $ref: '#/components/schemas/google.protobuf.Int32Value'
      - in: query
        name: name
        schema:
          $ref: '#/components/schemas/google.protobuf.StringValue'
      - in: query
        name: public
        schema:
          $ref: '#/components/schemas/google.protobuf.BoolValue'
      - in: query
        name: arch
        schema:
          $ref: '#/components/schemas/google.protobuf.StringValue'
      - in: query
        name: project
        schema:
          $ref: '#/components/schemas/google.protobuf.StringValue'
      - in: query
        name: tags
        schema:
          $ref: '#/components/schemas/google.protobuf.StringValue'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.instance.v1.ListImagesResponse'
      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}/images\""
      - lang: HTTPie
        source: "http GET \"https://api.scaleway.com/instance/v1/zones/{zone}/images\" \\\n  X-Auth-Token:$SCW_SECRET_KEY"
    post:
      tags:
      - Images
      operationId: CreateImage
      summary: Create an Instance image
      description: Create an Instance image from the specified snapshot 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
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.instance.v1.CreateImageResponse'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: Name of the image.
                root_volume:
                  type: string
                  description: UUID of the snapshot.
                arch:
                  type: string
                  description: Architecture of the image.
                  enum:
                  - unknown_arch
                  - x86_64
                  - arm
                  - arm64
                  default: unknown_arch
                extra_volumes:
                  type: object
                  description: Additional volumes of the image.
                  properties:
                    <extra_volumeKey>:
                      type: object
                      description: Additional volumes of the image.
                      properties:
                        id:
                          type: string
                          description: UUID of the volume.
                        name:
                          type: string
                          description: Name of the volume.
                        size:
                          type: integer
                          description: Disk size of the volume, must be a multiple of 512. (in bytes)
                          format: uint64
                        volume_type:
                          type: string
                          description: Type of the volume.
                          enum:
                          - l_ssd
                          - b_ssd
                          - unified
                          - scratch
                          - sbs_volume
                          - sbs_snapshot
                          x-enum-descriptions:
                            values:
                              b_ssd: Deprecated
                              unified: Deprecated
                          default: l_ssd
                        organization:
                          type: string
                          description: Organization ID of the volume.
                          deprecated: true
                          nullable: true
                          x-one-of: ProjectIdentifier
                        project:
                          type: string
                          description: Project ID of the volume.
                          nullable: true
                          x-one-of: ProjectIdentifier
                      x-properties-order:
                      - id
                      - name
                      - size
                      - volume_type
                      - organization
                      - project
                  additionalProperties: true
                organization:
                  type: string
                  description: Organization ID of the image.
                  deprecated: true
                  nullable: true
                  x-one-of: ProjectIdentifier
                project:
                  type: string
                  description: Project ID of the image.
                  nullable: true
                  x-one-of: ProjectIdentifier
                tags:
                  type: array
                  description: Tags of the image.
                  items:
                    type: string
                public:
                  type: boolean
                  description: True to create a public image.
                  nullable: true
              required:
              - root_volume
              - arch
              x-properties-order:
              - name
              - root_volume
              - arch
              - extra_volumes
              - organization
              - project
              - tags
              - public
      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    \"arch\": \"unknown_arch\",\n    \"extra_volumes\": {\n        \"<extra_volumeKey>\": {\n            \"id\": \"string\",\n            \"name\": \"string\",\n            \"organization\": \"string\",\n            \"project\": \"string\",\n            \"size\": 42,\n            \"volume_type\": \"l_ssd\"\n        }\n    },\n    \"name\": \"string\",\n    \"root_volume\": \"string\"\n  }' \\\n  \"https://api.scaleway.com/instance/v1/zones/{zone}/images\""
      - lang: HTTPie
        source: "http POST \"https://api.scaleway.com/instance/v1/zones/{zone}/images\" \\\n  X-Auth-Token:$SCW_SECRET_KEY \\\n  arch=\"unknown_arch\" \\\n  extra_volumes:='{\n    \"<extra_volumeKey>\": {\n        \"id\": \"string\",\n        \"name\": \"string\",\n        \"organization\": \"string\",\n        \"project\": \"string\",\n        \"size\": 42,\n        \"volume_type\": \"l_ssd\"\n    }\n  }' \\\n  name=\"string\" \\\n  root_volume=\"string\""
  /instance/v1/zones/{zone}/images/{id}:
    put:
      tags:
      - Images
      operationId: SetImage
      summary: Update image
      description: Replace all image properties with an image message.
      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: id
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.instance.v1.SetImageResponse'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                arch:
                  $ref: '#/components/schemas/scaleway.instance.v1.Arch'
                creation_date:
                  type: string
                  description: (RFC 3339 format)
                  format: date-time
                  example: '2022-03-22T12:34:56.123456Z'
                  nullable: true
                modification_date:
                  type: string
                  description: (RFC 3339 format)
                  format: date-time
                  example: '2022-03-22T12:34:56.123456Z'
                  nullable: true
                default_bootscript:
                  deprecated: true
                  $ref: '#/components/schemas/scaleway.instance.v1.Bootscript'
                extra_volumes:
                  type: object
                  properties:
                    <extra_volumeKey>:
                      $ref: '#/components/schemas/scaleway.instance.v1.Volume'
                  additionalProperties: true
                from_server:
                  type: string
                organization:
                  type: string
                public:
                  type: boolean
                root_volume:
                  $ref: '#/components/schemas/scaleway.instance.v1.VolumeSummary'
                state:
                  $ref: '#/components/schemas/scaleway.instance.v1.Image.State'
                project:
                  type: string
                tags:
                  $ref: '#/components/schemas/scaleway.std.StringsValue'
              x-properties-order:
              - name
              - arch
              - creation_date
              - modification_date
              - default_bootscript
              - extra_volumes
              - from_server
              - organization
              - public
              - root_volume
              - state
              - project
              - tags
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: "curl -X PUT \\\n  -H \"X-Auth-Token: $SCW_SECRET_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"extra_volumes\": {\n        \"<extra_volumeKey>\": \"\"\n    },\n    \"from_server\": \"string\",\n    \"name\": \"string\",\n    \"organization\": \"string\",\n    \"project\": \"string\",\n    \"public\": false\n  }' \\\n  \"https://api.scaleway.com/instance/v1/zones/{zone}/images/{id}\""
      - lang: HTTPie
        source: "http PUT \"https://api.scaleway.com/instance/v1/zones/{zone}/images/{id}\" \\\n  X-Auth-Token:$SCW_SECRET_KEY \\\n  extra_volumes:='{\n    \"<extra_volumeKey>\": \"\"\n  }' \\\n  from_server=\"string\" \\\n  name=\"string\" \\\n  organization=\"string\" \\\n  project=\"string\" \\\n  public:=false"
  /instance/v1/zones/{zone}/images/{image_id}:
    get:
      tags:
      - Images
      operationId: GetImage
      summary: Get an Instance image
      description: Get details of an image 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: image_id
        description: UUID of the image you want to get.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.instance.v1.GetImageResponse'
      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}/images/{image_id}\""
      - lang: HTTPie
        source: "http GET \"https://api.scaleway.com/instance/v1/zones/{zone}/images/{image_id}\" \\\n  X-Auth-Token:$SCW_SECRET_KEY"
    patch:
      tags:
      - Images
      operationId: UpdateImage
      summary: Update image
      description: Update the properties of an image.
      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: image_id
        description: UUID of the image. (UUID format)
        required: true
        schema:
          type: string
          example: 6170692e-7363-616c-6577-61792e636f6d
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.instance.v1.UpdateImageResponse'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: Name of the image.
                  nullable: true
                arch:
                  type: string
                  description: Architecture of the image.
                  enum:
                  - unknown_arch
                  - x86_64
                  - arm
                  - arm64
                  default: unknown_arch
                extra_volumes:
                  type: object
                  description: Additional snapshots of the image, with extra_volumeKey being the position of the snapshot in the image.
                  properties:
                    <extra_volumeKey>:
                      type: object
                      description: Additional snapshots of the image, with extra_volumeKey being the position of the snapshot in the image.
                      properties:
                        id:
                          type: string
                          description: UUID of the snapshot. (UUID format)
                          example: 6170692e-7363-616c-6577-61792e636f6d
                      required:
                      - id
                      x-properties-order:
                      - id
                  additionalProperties: true
                tags:
                  type: array
                  description: Tags of the image.
                  nullable: true
                  items:
                    type: string
                public:
                  type: boolean
                  description: True to set the image as public.
                  nullable: true
              x-properties-order:
              - name
              - arch
              - extra_volumes
              - tags
              - public
      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 '{\"extra_volumes\":{\"<extra_volumeKey>\":{\"id\":\"6170692e-7363-616c-6577-61792e636f6d\"}}}' \\\n  \"https://api.scaleway.com/instance/v1/zones/{zone}/images/{image_id}\""
      - lang: HTTPie
        source: "http PATCH \"https://api.scaleway.com/instance/v1/zones/{zone}/images/{image_id}\" \\\n  X-Auth-Token:$SCW_SECRET_KEY \\\n  extra_volumes:='{\"<extra_volumeKey>\":{\"id\":\"6170692e-7363-616c-6577-61792e636f6d\"}}'"
    delete:
      tags:
      - Images
      operationId: DeleteImage
      summary: Delete an Instance image
      description: Delete the image 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: image_id
        description: UUID of the image you want 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}/images/{image_id}\""
      - lang: HTTPie
        source: "http DELETE \"https://api.scaleway.com/instance/v1/zones/{zone}/images/{image_id}\" \\\n  X-Auth-Token:$SCW_SECRET_KEY"
components:
  schemas:
    scaleway.instance.v1.Image:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        arch:
          $ref: '#/components/schemas/scaleway.instance.v1.Arch'
        creation_date:
          type: string
          description: (RFC 3339 format)
          format: date-time
          example: '2022-03-22T12:34:56.123456Z'
          nullable: true
        modification_date:
          type: string
          description: (RFC 3339 format)
          format: date-time
          example: '2022-03-22T12:34:56.123456Z'
          nullable: true
        default_bootscript:
          deprecated: true
          $ref: '#/components/schemas/scaleway.instance.v1.Bootscript'
        extra_volumes:
          type: object
          properties:
            <extra_volumeKey>:
              $ref: '#/components/schemas/scaleway.instance.v1.Volume'
          additionalProperties: true
        from_server:
          type: string
        organization:
          type: string
        public:
          type: boolean
        root_volume:
          $ref: '#/components/schemas/scaleway.instance.v1.VolumeSummary'
        state:
          $ref: '#/components/schemas/scaleway.instance.v1.Image.State'
        project:
          type: string
        tags:
          type: array
          items:
            type: string
        zone:
          type: string
          description: The zone you want to target
      x-properties-order:
      - id
      - name
      - arch
      - creation_date
      - modification_date
      - default_bootscript
      - extra_volumes
      - from_server
      - organization
      - public
      - root_volume
      - state
      - project
      - tags
      - zone
    scaleway.instance.v1.CreateImageResponse:
      type: object
      properties:
        image:
          $ref: '#/components/schemas/scaleway.instance.v1.Image'
      x-properties-order:
      - image
    google.protobuf.BoolValue:
      type: boolean
      nullable: true
    scaleway.instance.v1.Bootscript:
      type: object
      properties:
        architecture:
          $ref: '#/components/schemas/scaleway.instance.v1.Arch'
        bootcmdargs:
          type: string
        default:
          type: boolean
        dtb:
          type: string
        id:
          type: string
        initrd:
          type: string
        kernel:
          type: string
        organization:
          type: string
        public:
          type: boolean
        title:
          type: string
        project:
          type: string
        zone:
          type: string
          description: The zone you want to target
      x-properties-order:
      - architecture
      - bootcmdargs
      - default
      - dtb
      - id
      - initrd
      - kernel
      - organization
      - public
      - title
      - project
      - zone
    scaleway.instance.v1.Volume.VolumeType:
      type: string
      enum:
      - l_ssd
      - b_ssd
      - unified
      - scratch
      - sbs_volume
      - sbs_snapshot
      x-enum-descriptions:
        values:
          b_ssd: Deprecated
          unified: Deprecated
      default: l_ssd
    scaleway.instance.v1.UpdateImageResponse:
      type: object
      properties:
        image:
          $ref: '#/components/schemas/scaleway.instance.v1.Image'
      x-properties-order:
      - image
    scaleway.instance.v1.ListImagesResponse:
      type: object
      properties:
        images:
          type: array
          description: List of images.
          items:
            $ref: '#/components/schemas/scaleway.instance.v1.Image'
      x-properties-order:
      - images
    scaleway.instance.v1.VolumeSummary:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        size:
          type: integer
          description: (in bytes)
          format: uint64
        volume_type:
          $ref: '#/components/schemas/scaleway.instance.v1.Volume.VolumeType'
      x-properties-order:
      - id
      - name
      - size
      - volume_type
    scaleway.std.StringsValue:
      type: array
      nullable: true
      items:
        type: string
    scaleway.instance.v1.Arch:
      type: string
      enum:
      - unknown_arch
      - x86_64
      - arm
      - arm64
      default: unknown_arch
    google.protobuf.Int32Value:
      type: integer
      format: int32
      nullable: true
    scaleway.instance.v1.Volume:
      type: object
      properties:
        id:
          type: string
          description: Volume unique ID.
        name:
          type: string
          description: Volume name.
        export_uri:
          type: string
          description: Show the volume NBD export URI (deprecated, will always be empty).
          deprecated: true
        size:
          type: integer
          description: Volume disk size. (in bytes)
          format: uint64
        volume_type:
          type: string
          description: Volume type.
          enum:
          - l_ssd
          - b_ssd
          - unified
          - scratch
          - sbs_volume
          - sbs_snapshot
          x-enum-descriptions:
            values:
              b_ssd: Deprecated
              unified: Deprecated
          default: l_ssd
        creation_date:
          type: string
          description: Volume creation date. (RFC 3339 format)
          format: date-time
          example: '2022-03-22T12:34:56.123456Z'
          nullable: true
        modification_date:
          type: string
          description: Volume modification date. (RFC 3339 format)
          format: date-time
          example: '2022-03-22T12:34:56.123456Z'
          nullable: true
        organization:
          type: string
          description: Volume Organization ID.
        project:
          type: string
          description: Volume Project ID.
        tags:
          type: array
          description: Volume tags.
          items:
            type: string
        server:
          type: object
          description: Instance attached to the volume.
          properties:
            id:
              type: string
            name:
              type: string
          x-properties-order:
          - id
          - name
        state:
          type: string
          description: Volume state.
          enum:
          - available
          - snapshotting
          - fetching
          - saving
          - attaching
          - resizing
          - hotsyncing
          - error
          default: available
        zone:
          type: string
          description: Zone in which the volume is located.
      x-properties-order:
      - id
      - name
      - export_uri
      - size
      - volume_type
      - creation_date
      - modification_date
      - organization
      - project
      - tags
      - server
      - state
      - zone
    scaleway.instance.v1.GetImageResponse:
      type: object
      properties:
        image:
          $ref: '#/components/schemas/scaleway.instance.v1.Image'
      x-properties-order:
      - image
    google.protobuf.StringValue:
      type: string
      nullable: true
    scaleway.instance.v1.SetImageResponse:
      type: object
      properties:
        image:
          $ref: '#/components/schemas/scaleway.instance.v1.Image'
      x-properties-order:
      - image
    scaleway.instance.v1.Image.State:
      type: string
      enum:
      - available
      - creating
      - error
      default: available
  securitySchemes:
    scaleway:
      in: header
      name: X-Auth-Token
      type: apiKey