Scaleway Placement Groups API

Placement groups allow the user to express a preference regarding the physical position of a group of Instances. The feature lets the user choose to either group Instances on the same physical hardware for best network throughput and low latency or to spread Instances across physically distanced hardware to reduce the risk of physical failure. The operating mode is selected by a `policy_type`. Two policy types are available: - `low_latency` will group Instances on the same hypervisors - `max_availability` will spread Instances across physically distanced hypervisors The `policy_type` is set to `max_availability` by default. For each policy types, one of the two `policy_mode` may be selected: - `optional` will start your Instances even if the constraint is not respected - `enforced` guarantees that if the Instance starts, the constraint is respected The `policy_mode` is set by default to `optional`.

Business capability
IT Infrastructure Management BC-600.50

Operations 9

GET /instance/v1/zones/{zone}/placement_groups List placement groups #
POST /instance/v1/zones/{zone}/placement_groups Create a placement group #
GET /instance/v1/zones/{zone}/placement_groups/{placement_group_id} Get a placement group #
PUT /instance/v1/zones/{zone}/placement_groups/{placement_group_id} Set placement group #
PATCH /instance/v1/zones/{zone}/placement_groups/{placement_group_id} Update a placement group #
DELETE /instance/v1/zones/{zone}/placement_groups/{placement_group_id} Delete the specified placement group #
GET /instance/v1/zones/{zone}/placement_groups/{placement_group_id}/servers Get placement group servers #
PUT /instance/v1/zones/{zone}/placement_groups/{placement_group_id}/servers Set placement group servers #
PATCH /instance/v1/zones/{zone}/placement_groups/{placement_group_id}/servers Update placement group servers #

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-placement-groups-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-placement-groups-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Instance Placement Groups API
  description: Scaleway Instances are virtual machines in the cloud.
  version: v1
servers:
- url: https://api.scaleway.com
tags:
- name: Placement Groups
  description: 'Placement groups allow the user to express a preference regarding

    the physical position of a group of Instances.'
paths:
  /instance/v1/zones/{zone}/placement_groups:
    get:
      tags:
      - Placement Groups
      operationId: ListPlacementGroups
      summary: List placement groups
      description: List all placement groups in a specified Availability Zone.
      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: per_page
        description: A positive integer lower or equal to 100 to select the number of items to return.
        schema:
          type: integer
          format: uint32
      - in: query
        name: page
        description: A positive integer to choose the page to return.
        schema:
          type: integer
          format: int32
      - in: query
        name: organization
        description: List only placement groups of this Organization ID.
        schema:
          type: string
      - in: query
        name: project
        description: List only placement groups of this Project ID.
        schema:
          type: string
      - in: query
        name: tags
        description: List placement groups with these exact tags (to filter with several tags, use commas to separate them).
        schema:
          type: string
      - in: query
        name: name
        description: Filter placement groups by name (for eg. "cluster1" will return "cluster100" and "cluster1" but not "foo").
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.instance.v1.ListPlacementGroupsResponse'
      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}/placement_groups\""
      - lang: HTTPie
        source: "http GET \"https://api.scaleway.com/instance/v1/zones/{zone}/placement_groups\" \\\n  X-Auth-Token:$SCW_SECRET_KEY"
    post:
      tags:
      - Placement Groups
      operationId: CreatePlacementGroup
      summary: Create a placement group
      description: Create a new placement group in a specified Availability Zone.
      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.CreatePlacementGroupResponse'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: Name of the placement group.
                organization:
                  type: string
                  description: Organization ID of the placement group.
                  deprecated: true
                  nullable: true
                  x-one-of: ProjectIdentifier
                project:
                  type: string
                  description: Project ID of the placement group.
                  nullable: true
                  x-one-of: ProjectIdentifier
                tags:
                  type: array
                  description: Tags of the placement group.
                  items:
                    type: string
                policy_mode:
                  type: string
                  description: Operating mode of the placement group.
                  enum:
                  - optional
                  - enforced
                  default: optional
                policy_type:
                  type: string
                  description: Policy type of the placement group.
                  enum:
                  - max_availability
                  - low_latency
                  default: max_availability
              x-properties-order:
              - name
              - organization
              - project
              - tags
              - policy_mode
              - policy_type
      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 '{\"name\":\"string\"}' \\\n  \"https://api.scaleway.com/instance/v1/zones/{zone}/placement_groups\""
      - lang: HTTPie
        source: "http POST \"https://api.scaleway.com/instance/v1/zones/{zone}/placement_groups\" \\\n  X-Auth-Token:$SCW_SECRET_KEY \\\n  name=\"string\""
  /instance/v1/zones/{zone}/placement_groups/{placement_group_id}:
    get:
      tags:
      - Placement Groups
      operationId: GetPlacementGroup
      summary: Get a placement group
      description: Get the specified placement group.
      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: placement_group_id
        description: UUID of the placement group you want to get.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.instance.v1.GetPlacementGroupResponse'
      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}/placement_groups/{placement_group_id}\""
      - lang: HTTPie
        source: "http GET \"https://api.scaleway.com/instance/v1/zones/{zone}/placement_groups/{placement_group_id}\" \\\n  X-Auth-Token:$SCW_SECRET_KEY"
    put:
      tags:
      - Placement Groups
      operationId: SetPlacementGroup
      summary: Set placement group
      description: Set all parameters of the specified placement group.
      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: placement_group_id
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.instance.v1.SetPlacementGroupResponse'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                organization:
                  type: string
                policy_mode:
                  $ref: '#/components/schemas/scaleway.instance.v1.PlacementGroup.PolicyMode'
                policy_type:
                  $ref: '#/components/schemas/scaleway.instance.v1.PlacementGroup.PolicyType'
                project:
                  type: string
                tags:
                  $ref: '#/components/schemas/scaleway.std.StringsValue'
              x-properties-order:
              - name
              - organization
              - policy_mode
              - policy_type
              - 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    \"name\": \"string\",\n    \"organization\": \"string\",\n    \"project\": \"string\"\n  }' \\\n  \"https://api.scaleway.com/instance/v1/zones/{zone}/placement_groups/{placement_group_id}\""
      - lang: HTTPie
        source: "http PUT \"https://api.scaleway.com/instance/v1/zones/{zone}/placement_groups/{placement_group_id}\" \\\n  X-Auth-Token:$SCW_SECRET_KEY \\\n  name=\"string\" \\\n  organization=\"string\" \\\n  project=\"string\""
    patch:
      tags:
      - Placement Groups
      operationId: UpdatePlacementGroup
      summary: Update a placement group
      description: Update one or more parameter of the specified placement group.
      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: placement_group_id
        description: UUID of the placement group.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.instance.v1.UpdatePlacementGroupResponse'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: Name of the placement group.
                  nullable: true
                tags:
                  type: array
                  description: Tags of the placement group.
                  nullable: true
                  items:
                    type: string
                policy_mode:
                  type: string
                  description: Operating mode of the placement group.
                  enum:
                  - optional
                  - enforced
                  default: optional
                policy_type:
                  type: string
                  description: Policy type of the placement group.
                  enum:
                  - max_availability
                  - low_latency
                  default: max_availability
              x-properties-order:
              - name
              - tags
              - policy_mode
              - policy_type
      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/instance/v1/zones/{zone}/placement_groups/{placement_group_id}\""
      - lang: HTTPie
        source: "http PATCH \"https://api.scaleway.com/instance/v1/zones/{zone}/placement_groups/{placement_group_id}\" \\\n  X-Auth-Token:$SCW_SECRET_KEY"
    delete:
      tags:
      - Placement Groups
      operationId: DeletePlacementGroup
      summary: Delete the specified placement group
      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: placement_group_id
        description: UUID of the placement group 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}/placement_groups/{placement_group_id}\""
      - lang: HTTPie
        source: "http DELETE \"https://api.scaleway.com/instance/v1/zones/{zone}/placement_groups/{placement_group_id}\" \\\n  X-Auth-Token:$SCW_SECRET_KEY"
  /instance/v1/zones/{zone}/placement_groups/{placement_group_id}/servers:
    get:
      tags:
      - Placement Groups
      operationId: GetPlacementGroupServers
      summary: Get placement group servers
      description: Get all Instances belonging to the specified placement group.
      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: placement_group_id
        description: UUID of the placement group you want to get.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.instance.v1.GetPlacementGroupServersResponse'
      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}/placement_groups/{placement_group_id}/servers\""
      - lang: HTTPie
        source: "http GET \"https://api.scaleway.com/instance/v1/zones/{zone}/placement_groups/{placement_group_id}/servers\" \\\n  X-Auth-Token:$SCW_SECRET_KEY"
    put:
      tags:
      - Placement Groups
      operationId: SetPlacementGroupServers
      summary: Set placement group servers
      description: Set all Instances belonging to the specified placement group.
      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: placement_group_id
        description: UUID of the placement group you want to set.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.instance.v1.SetPlacementGroupServersResponse'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                servers:
                  type: array
                  description: An array of the Instances' UUIDs you want to configure.
                  items:
                    type: string
              required:
              - servers
              x-properties-order:
              - servers
      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 '{\"servers\":[\"string\"]}' \\\n  \"https://api.scaleway.com/instance/v1/zones/{zone}/placement_groups/{placement_group_id}/servers\""
      - lang: HTTPie
        source: "http PUT \"https://api.scaleway.com/instance/v1/zones/{zone}/placement_groups/{placement_group_id}/servers\" \\\n  X-Auth-Token:$SCW_SECRET_KEY \\\n  servers:='[\"string\"]'"
    patch:
      tags:
      - Placement Groups
      operationId: UpdatePlacementGroupServers
      summary: Update placement group servers
      description: Update all Instances belonging to the specified placement group.
      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: placement_group_id
        description: UUID of the placement group you want to update.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.instance.v1.UpdatePlacementGroupServersResponse'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                servers:
                  type: array
                  description: An array of the Instances' UUIDs you want to configure.
                  items:
                    type: string
              required:
              - servers
              x-properties-order:
              - servers
      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 '{\"servers\":[\"string\"]}' \\\n  \"https://api.scaleway.com/instance/v1/zones/{zone}/placement_groups/{placement_group_id}/servers\""
      - lang: HTTPie
        source: "http PATCH \"https://api.scaleway.com/instance/v1/zones/{zone}/placement_groups/{placement_group_id}/servers\" \\\n  X-Auth-Token:$SCW_SECRET_KEY \\\n  servers:='[\"string\"]'"
components:
  schemas:
    scaleway.instance.v1.CreatePlacementGroupResponse:
      type: object
      properties:
        placement_group:
          $ref: '#/components/schemas/scaleway.instance.v1.PlacementGroup'
      x-properties-order:
      - placement_group
    scaleway.instance.v1.PlacementGroupServer:
      type: object
      properties:
        id:
          type: string
          description: Instance UUID.
        name:
          type: string
          description: Instance name.
        policy_respected:
          type: boolean
          description: Defines whether the placement group policy is respected (either 1 or 0).
      x-properties-order:
      - id
      - name
      - policy_respected
    scaleway.instance.v1.PlacementGroup.PolicyMode:
      type: string
      enum:
      - optional
      - enforced
      default: optional
    scaleway.instance.v1.UpdatePlacementGroupServersResponse:
      type: object
      properties:
        servers:
          type: array
          description: Instances attached to the placement group.
          items:
            $ref: '#/components/schemas/scaleway.instance.v1.PlacementGroupServer'
      x-properties-order:
      - servers
    scaleway.instance.v1.GetPlacementGroupServersResponse:
      type: object
      properties:
        servers:
          type: array
          description: Instances attached to the placement group.
          items:
            $ref: '#/components/schemas/scaleway.instance.v1.PlacementGroupServer'
      x-properties-order:
      - servers
    scaleway.instance.v1.SetPlacementGroupServersResponse:
      type: object
      properties:
        servers:
          type: array
          description: Instances attached to the placement group.
          items:
            $ref: '#/components/schemas/scaleway.instance.v1.PlacementGroupServer'
      x-properties-order:
      - servers
    scaleway.instance.v1.SetPlacementGroupResponse:
      type: object
      properties:
        placement_group:
          $ref: '#/components/schemas/scaleway.instance.v1.PlacementGroup'
      x-properties-order:
      - placement_group
    scaleway.instance.v1.PlacementGroup:
      type: object
      properties:
        id:
          type: string
          description: Placement group unique ID.
        name:
          type: string
          description: Placement group name.
        organization:
          type: string
          description: Placement group Organization ID.
        project:
          type: string
          description: Placement group Project ID.
        tags:
          type: array
          description: Placement group tags.
          items:
            type: string
        policy_mode:
          type: string
          description: Select the failure mode when the placement cannot be respected, either optional or enforced.
          enum:
          - optional
          - enforced
          default: optional
        policy_type:
          type: string
          description: Select the behavior of the placement group, either low_latency (group) or max_availability (spread).
          enum:
          - max_availability
          - low_latency
          default: max_availability
        policy_respected:
          type: boolean
          description: 'True if the policy is respected, false otherwise.

            In the server endpoints the value is always false as it is deprecated.

            In the placement group endpoints the value is correct.'
        zone:
          type: string
          description: Zone in which the placement group is located.
      x-properties-order:
      - id
      - name
      - organization
      - project
      - tags
      - policy_mode
      - policy_type
      - policy_respected
      - zone
    scaleway.std.StringsValue:
      type: array
      nullable: true
      items:
        type: string
    scaleway.instance.v1.GetPlacementGroupResponse:
      type: object
      properties:
        placement_group:
          $ref: '#/components/schemas/scaleway.instance.v1.PlacementGroup'
      x-properties-order:
      - placement_group
    scaleway.instance.v1.PlacementGroup.PolicyType:
      type: string
      enum:
      - max_availability
      - low_latency
      default: max_availability
    scaleway.instance.v1.UpdatePlacementGroupResponse:
      type: object
      properties:
        placement_group:
          $ref: '#/components/schemas/scaleway.instance.v1.PlacementGroup'
      x-properties-order:
      - placement_group
    scaleway.instance.v1.ListPlacementGroupsResponse:
      type: object
      properties:
        placement_groups:
          type: array
          description: List of placement groups.
          items:
            $ref: '#/components/schemas/scaleway.instance.v1.PlacementGroup'
      x-properties-order:
      - placement_groups
  securitySchemes:
    scaleway:
      in: header
      name: X-Auth-Token
      type: apiKey