Scaleway User Data API

User data is a key/value store you can use to provide your instance with introspective data. As an example of use, Scaleway images contain the `scw-generate-ssh-keys` script, which generates the SSH server’s host keys, then stores their fingerprints as user data under the `ssh-host-fingerprints` key. This way, before connecting to the instance using SSH, one can query the fingerprints to ensure that the remote host is the expected one, thus avoiding any man-in-the-middle attack. There are two ways of accessing user data: - **From within a running Instance**, by requesting the Metadata API at http://169.254.42.42/user_data (or http://[fd00:42::42]/user_data using IPv6). The `scaleway-ecosystem` package, installed by default on all OS images provided by Scaleway, ships with the `scw-userdata` helper command that allows you to easily query the user data from the instance. For security reasons, viewing and editing user data is only allowed to queries originating from a port below 1024 (by default, only the super-user can bind to ports below 1024). To specify the source port with cURL, use the `--local-port` option (e.g. `curl --local-port 1-1023 http://169.254.42.42/user_data`). - **From the Instance API** by using the methods described below.

Operations 4

GET /instance/v1/zones/{zone}/servers/{server_id}/user_data List user data #
GET /instance/v1/zones/{zone}/servers/{server_id}/user_data/{key} Get user data #
PATCH /instance/v1/zones/{zone}/servers/{server_id}/user_data/{key} Add/set user data #
DELETE /instance/v1/zones/{zone}/servers/{server_id}/user_data/{key} Delete user data #

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-user-data-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-user-data-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Instance User Data API
  description: Scaleway Instances are virtual machines in the cloud.
  version: v1
servers:
- url: https://api.scaleway.com
tags:
- name: User Data
  description: User data is a key/value store you can use to provide your instance with introspective data.
paths:
  /instance/v1/zones/{zone}/servers/{server_id}/user_data:
    get:
      tags:
      - User Data
      operationId: ListServerUserData
      summary: List user data
      description: List all user data keys registered on a 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
      - in: path
        name: server_id
        description: UUID of the Instance.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.instance.v1.ListServerUserDataResponse'
      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}/servers/{server_id}/user_data\""
      - lang: HTTPie
        source: "http GET \"https://api.scaleway.com/instance/v1/zones/{zone}/servers/{server_id}/user_data\" \\\n  X-Auth-Token:$SCW_SECRET_KEY"
  /instance/v1/zones/{zone}/servers/{server_id}/user_data/{key}:
    get:
      tags:
      - User Data
      operationId: GetServerUserData
      summary: Get user data
      description: Get the content of a user data with the specified key on an 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
      - in: path
        name: server_id
        description: UUID of the Instance.
        required: true
        schema:
          type: string
      - in: path
        name: key
        description: Key of the user data to get.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.std.File'
      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}/servers/{server_id}/user_data/{key}\""
      - lang: HTTPie
        source: "http GET \"https://api.scaleway.com/instance/v1/zones/{zone}/servers/{server_id}/user_data/{key}\" \\\n  X-Auth-Token:$SCW_SECRET_KEY"
    patch:
      tags:
      - User Data
      operationId: SetServerUserData
      summary: Add/set user data
      description: Add or update a user data with the specified key on an 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
      - in: path
        name: server_id
        description: UUID of the Instance.
        required: true
        schema:
          type: string
      - in: path
        name: key
        description: Key of the user data to set.
        required: true
        schema:
          type: string
      responses:
        '204':
          description: ''
      requestBody:
        required: true
        content:
          '*/*':
            schema:
              type: string
              format: binary
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: "curl -X PATCH \\\n  -H \"X-Auth-Token: $SCW_SECRET_KEY\" \\\n  \"https://api.scaleway.com/instance/v1/zones/{zone}/servers/{server_id}/user_data/{key}\""
      - lang: HTTPie
        source: "http PATCH \"https://api.scaleway.com/instance/v1/zones/{zone}/servers/{server_id}/user_data/{key}\" \\\n  X-Auth-Token:$SCW_SECRET_KEY"
    delete:
      tags:
      - User Data
      operationId: DeleteServerUserData
      summary: Delete user data
      description: Delete the specified key from an Instance's user data.
      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: server_id
        description: UUID of the Instance.
        required: true
        schema:
          type: string
      - in: path
        name: key
        description: Key of the user data 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}/servers/{server_id}/user_data/{key}\""
      - lang: HTTPie
        source: "http DELETE \"https://api.scaleway.com/instance/v1/zones/{zone}/servers/{server_id}/user_data/{key}\" \\\n  X-Auth-Token:$SCW_SECRET_KEY"
components:
  schemas:
    scaleway.instance.v1.ListServerUserDataResponse:
      type: object
      properties:
        user_data:
          type: array
          items:
            type: string
      x-properties-order:
      - user_data
    scaleway.std.File:
      type: object
      properties:
        name:
          type: string
        content_type:
          type: string
        content:
          type: string
      x-properties-order:
      - name
      - content_type
      - content
  securitySchemes:
    scaleway:
      in: header
      name: X-Auth-Token
      type: apiKey