Scaleway Groups API

A group (also known as an IAM group) is a grouping of [users](https://www.scaleway.com/en/docs/iam/concepts/#user) and/or [applications](https://www.scaleway.com/en/docs/iam/concepts/#application). Creating groups allows you to attach [policies](https://www.scaleway.com/en/docs/iam/concepts/#policy) to multiple users and/or applications at the same time.

Business capability
Identity & Access Management BC-620.20

Operations 9

GET /iam/v1alpha1/groups List groups #
POST /iam/v1alpha1/groups Create a group #
GET /iam/v1alpha1/groups/{group_id} Get a group #
PATCH /iam/v1alpha1/groups/{group_id} Update a group #
DELETE /iam/v1alpha1/groups/{group_id} Delete a group #
POST /iam/v1alpha1/groups/{group_id}/add-member Add a user or an application to a group #
POST /iam/v1alpha1/groups/{group_id}/add-members Add multiple users and applications to a group #
PUT /iam/v1alpha1/groups/{group_id}/members Overwrite users and applications of a group #
POST /iam/v1alpha1/groups/{group_id}/remove-member Remove a user or an application from a group #

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-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-groups-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: IAM Groups 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: Groups
  description: A group (also known as an IAM group) is a grouping of users and/or applications. Creating groups allows you to attach policies to multiple users and/or applications at the same time.
paths:
  /iam/v1alpha1/groups:
    get:
      tags:
      - Groups
      operationId: ListGroups
      summary: List groups
      description: List groups. By default, the groups listed are ordered by creation date in ascending order. This can be modified via the `order_by` field. You can define additional parameters to filter your query. Use `user_ids` or `application_ids` to list all groups certain users or applications belong to.
      parameters:
      - in: query
        name: order_by
        description: Sort order of groups.
        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: application_ids
        description: Filter by a list of application IDs.
        schema:
          type: array
          items:
            type: string
      - in: query
        name: user_ids
        description: Filter by a list of user IDs.
        schema:
          type: array
          items:
            type: string
      - in: query
        name: group_ids
        description: Filter by a list of group IDs.
        schema:
          type: array
          items:
            type: string
      - in: query
        name: tag
        description: Filter by tags containing a given string.
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.iam.v1alpha1.ListGroupsResponse'
      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/groups?organization_id=string\""
      - lang: HTTPie
        source: "http GET \"https://api.scaleway.com/iam/v1alpha1/groups\" \\\n  X-Auth-Token:$SCW_SECRET_KEY \\\n  organization_id==string"
    post:
      tags:
      - Groups
      operationId: CreateGroup
      summary: Create a group
      description: Create a new group. You must define the `name` and `organization_id` parameters in the request.
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.iam.v1alpha1.Group'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                organization_id:
                  type: string
                  description: ID of Organization linked to the group.
                name:
                  type: string
                  description: Name of the group to create (max length is 64 chars). MUST be unique inside an Organization.
                description:
                  type: string
                  description: Description of the group to create (max length is 200 chars).
                tags:
                  type: array
                  description: Tags associated with the group (maximum of 10 tags).
                  items:
                    type: string
              required:
              - organization_id
              - name
              x-properties-order:
              - organization_id
              - name
              - description
              - tags
      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    \"description\": \"string\",\n    \"name\": \"string\",\n    \"organization_id\": \"string\"\n  }' \\\n  \"https://api.scaleway.com/iam/v1alpha1/groups\""
      - lang: HTTPie
        source: "http POST \"https://api.scaleway.com/iam/v1alpha1/groups\" \\\n  X-Auth-Token:$SCW_SECRET_KEY \\\n  description=\"string\" \\\n  name=\"string\" \\\n  organization_id=\"string\""
  /iam/v1alpha1/groups/{group_id}:
    get:
      tags:
      - Groups
      operationId: GetGroup
      summary: Get a group
      description: Retrieve information about a given group, specified by the `group_id` parameter. The group's full details, including `user_ids` and `application_ids` are returned in the response.
      parameters:
      - in: path
        name: group_id
        description: ID of the group.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.iam.v1alpha1.Group'
      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/groups/{group_id}\""
      - lang: HTTPie
        source: "http GET \"https://api.scaleway.com/iam/v1alpha1/groups/{group_id}\" \\\n  X-Auth-Token:$SCW_SECRET_KEY"
    patch:
      tags:
      - Groups
      operationId: UpdateGroup
      summary: Update a group
      description: Update the parameters of group, including `name` and `description`.
      parameters:
      - in: path
        name: group_id
        description: ID of the group to update.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.iam.v1alpha1.Group'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: New name for the group (max length is 64 chars). MUST be unique inside an Organization.
                  nullable: true
                description:
                  type: string
                  description: New description for the group (max length is 200 chars).
                  nullable: true
                tags:
                  type: array
                  description: New tags for the group (maximum of 10 tags).
                  nullable: true
                  items:
                    type: string
              x-properties-order:
              - name
              - description
              - tags
      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/groups/{group_id}\""
      - lang: HTTPie
        source: "http PATCH \"https://api.scaleway.com/iam/v1alpha1/groups/{group_id}\" \\\n  X-Auth-Token:$SCW_SECRET_KEY"
    delete:
      tags:
      - Groups
      operationId: DeleteGroup
      summary: Delete a group
      description: Delete a group. Note that this action is irreversible and could delete permissions for group members. Policies attached to users and applications via this group will no longer apply.
      parameters:
      - in: path
        name: group_id
        description: ID of the group 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/iam/v1alpha1/groups/{group_id}\""
      - lang: HTTPie
        source: "http DELETE \"https://api.scaleway.com/iam/v1alpha1/groups/{group_id}\" \\\n  X-Auth-Token:$SCW_SECRET_KEY"
  /iam/v1alpha1/groups/{group_id}/add-member:
    post:
      tags:
      - Groups
      operationId: AddGroupMember
      summary: Add a user or an application to a group
      description: Add a user or an application to a group. You can specify a `user_id` and `application_id` in the body of your request. Note that you can only add one of each per request.
      parameters:
      - in: path
        name: group_id
        description: ID of the group.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.iam.v1alpha1.Group'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                user_id:
                  type: string
                  description: ID of the user to add.
                  nullable: true
                  x-one-of: member
                application_id:
                  type: string
                  description: ID of the application to add.
                  nullable: true
                  x-one-of: member
              x-properties-order:
              - user_id
              - application_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  \"https://api.scaleway.com/iam/v1alpha1/groups/{group_id}/add-member\""
      - lang: HTTPie
        source: "http POST \"https://api.scaleway.com/iam/v1alpha1/groups/{group_id}/add-member\" \\\n  X-Auth-Token:$SCW_SECRET_KEY"
  /iam/v1alpha1/groups/{group_id}/add-members:
    post:
      tags:
      - Groups
      operationId: AddGroupMembers
      summary: Add multiple users and applications to a group
      description: Add multiple users and applications to a group in a single call. You can specify an array of `user_id`s and `application_id`s. Note that any existing users and applications in the group will remain. To add new users/applications and delete pre-existing ones, use the Overwrite users and applications of a group method.
      parameters:
      - in: path
        name: group_id
        description: ID of the group.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.iam.v1alpha1.Group'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                user_ids:
                  type: array
                  description: IDs of the users to add.
                  items:
                    type: string
                application_ids:
                  type: array
                  description: IDs of the applications to add.
                  items:
                    type: string
              x-properties-order:
              - user_ids
              - application_ids
      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/iam/v1alpha1/groups/{group_id}/add-members\""
      - lang: HTTPie
        source: "http POST \"https://api.scaleway.com/iam/v1alpha1/groups/{group_id}/add-members\" \\\n  X-Auth-Token:$SCW_SECRET_KEY"
  /iam/v1alpha1/groups/{group_id}/members:
    put:
      tags:
      - Groups
      operationId: SetGroupMembers
      summary: Overwrite users and applications of a group
      description: Overwrite users and applications configuration in a group. Any information that you add using this command will overwrite the previous configuration.
      parameters:
      - in: path
        name: group_id
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.iam.v1alpha1.Group'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                user_ids:
                  type: array
                  items:
                    type: string
                application_ids:
                  type: array
                  items:
                    type: string
              required:
              - user_ids
              - application_ids
              x-properties-order:
              - user_ids
              - application_ids
      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 '{\"application_ids\":[\"string\"],\"user_ids\":[\"string\"]}' \\\n  \"https://api.scaleway.com/iam/v1alpha1/groups/{group_id}/members\""
      - lang: HTTPie
        source: "http PUT \"https://api.scaleway.com/iam/v1alpha1/groups/{group_id}/members\" \\\n  X-Auth-Token:$SCW_SECRET_KEY \\\n  application_ids:='[\"string\"]' \\\n  user_ids:='[\"string\"]'"
  /iam/v1alpha1/groups/{group_id}/remove-member:
    post:
      tags:
      - Groups
      operationId: RemoveGroupMember
      summary: Remove a user or an application from a group
      description: Remove a user or an application from a group. You can specify a `user_id` and `application_id` in the body of your request. Note that you can only remove one of each per request. Removing a user from a group means that any permissions given to them via the group (i.e. from an attached policy) will no longer apply. Be sure you want to remove these permissions from the user before proceeding.
      parameters:
      - in: path
        name: group_id
        description: ID of the group.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.iam.v1alpha1.Group'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                user_id:
                  type: string
                  description: ID of the user to remove.
                  nullable: true
                  x-one-of: member
                application_id:
                  type: string
                  description: ID of the application to remove.
                  nullable: true
                  x-one-of: member
              x-properties-order:
              - user_id
              - application_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  \"https://api.scaleway.com/iam/v1alpha1/groups/{group_id}/remove-member\""
      - lang: HTTPie
        source: "http POST \"https://api.scaleway.com/iam/v1alpha1/groups/{group_id}/remove-member\" \\\n  X-Auth-Token:$SCW_SECRET_KEY"
components:
  schemas:
    scaleway.iam.v1alpha1.ListGroupsResponse:
      type: object
      properties:
        groups:
          type: array
          description: List of groups.
          items:
            $ref: '#/components/schemas/scaleway.iam.v1alpha1.Group'
        total_count:
          type: integer
          description: Total count of groups.
          format: uint32
      x-properties-order:
      - groups
      - total_count
    scaleway.iam.v1alpha1.Group:
      type: object
      properties:
        id:
          type: string
          description: ID of the group.
        created_at:
          type: string
          description: Date and time of group creation. (RFC 3339 format)
          format: date-time
          example: '2022-03-22T12:34:56.123456Z'
          nullable: true
        updated_at:
          type: string
          description: Date and time of last group update. (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 group.
        name:
          type: string
          description: Name of the group.
        description:
          type: string
          description: Description of the group.
        user_ids:
          type: array
          description: IDs of users attached to this group.
          items:
            type: string
        application_ids:
          type: array
          description: IDs of applications attached to this group.
          items:
            type: string
        tags:
          type: array
          description: Tags associated to the group.
          items:
            type: string
        editable:
          type: boolean
          description: Defines whether or not the group is editable.
        deletable:
          type: boolean
          description: Defines whether or not the group is deletable.
        managed:
          type: boolean
          description: Defines whether or not the group is managed.
      x-properties-order:
      - id
      - created_at
      - updated_at
      - organization_id
      - name
      - description
      - user_ids
      - application_ids
      - tags
      - editable
      - deletable
      - managed
  securitySchemes:
    scaleway:
      in: header
      name: X-Auth-Token
      type: apiKey