Dust Identity Org Admin API

Org-admin management of teams and memberships

Operations 7

POST /api/v1/org/teams Create one or more teams #
GET /api/v1/org/teams List all teams in the organization #
PATCH /api/v1/org/teams/{team_id} Update a team #
DELETE /api/v1/org/teams/{team_id} Delete a team #
POST /api/v1/org/teams/members Add/Update memberships #
DELETE /api/v1/org/teams/members Remove memberships #
GET /api/v1/org/teams/members List memberships #

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/dust-identity-org-admin-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

dust-identity-org-admin-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: DUST Org Admin API
  description: DUST Platform API
  version: 2026.7.4
servers:
- url: https://apid.dustid.io
  description: DUST API for trusted provenance.
security:
- Bearer: []
tags:
- name: Org Admin
  description: Org-admin management of teams and memberships
paths:
  /api/v1/org/teams:
    post:
      operationId: org.teams.create
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/TeamCreate'
      summary: Create one or more teams
      tags:
      - Org Admin
      responses:
        '201':
          description: Team created successfully
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    createdAt:
                      type: string
                    description:
                      anyOf:
                      - type: string
                      - type: 'null'
                    detail:
                      anyOf:
                      - type: string
                      - type: 'null'
                    logo:
                      anyOf:
                      - type: string
                      - type: 'null'
                    name:
                      anyOf:
                      - type: string
                      - type: 'null'
                    orgId:
                      type: string
                      description: a RFC-4122-compliant UUID
                      pattern: ^[\da-f]{8}(?:-[\da-f]{4}){3}-[\da-f]{12}$
                    teamId:
                      type: string
                      description: a RFC-4122-compliant UUID
                      pattern: ^[\da-f]{8}(?:-[\da-f]{4}){3}-[\da-f]{12}$
                    updatedAt:
                      type: string
                    depth:
                      type: number
                    num_members:
                      type: number
                    org:
                      type: object
                      properties:
                        name:
                          type: string
                        orgId:
                          type: string
                      required:
                      - name
                      - orgId
                    path:
                      type: string
                  required:
                  - createdAt
                  - description
                  - detail
                  - logo
                  - name
                  - orgId
                  - teamId
                  - updatedAt
        '400':
          description: Invalid Request
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    const: INVALID_REQUEST
                  message:
                    type: string
                  status:
                    const: 400
                  detail:
                    type: object
                    description: Extra context information specific to this error
                required:
                - code
                - message
                - status
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    const: UNAUTHORIZED
                  message:
                    type: string
                  status:
                    const: 401
                  detail:
                    type: object
                    description: Extra context information specific to this error
                required:
                - code
                - message
                - status
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    const: FORBIDDEN
                  message:
                    type: string
                  status:
                    const: 403
                  detail:
                    type: object
                    description: Extra context information specific to this error
                required:
                - code
                - message
                - status
        '500':
          description: Unknown error occurred
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    const: UNKNOWN_ERROR
                  message:
                    type: string
                  status:
                    const: 500
                  detail:
                    type: object
                    description: Extra context information specific to this error
                required:
                - code
                - message
                - status
      x-required-role: org-admin
    get:
      operationId: org.teams.list
      parameters:
      - in: query
        name: excludeIds
        schema:
          type: array
          items:
            anyOf:
            - type: string
              description: a UUID
              format: uuid
              pattern: '[\da-f]{8}-[\da-f]{4}-[1-8][\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}'
            - const: 00000000-0000-0000-0000-000000000000
              description: a UUID
              format: uuid
            - const: ffffffff-ffff-ffff-ffff-ffffffffffff
              description: a UUID
              format: uuid
            description: a UUID
            format: uuid
      - in: query
        name: includeLinked
        schema:
          enum:
          - 'false'
          - 'true'
      - in: query
        name: order
        schema:
          enum:
          - asc
          - desc
      - in: query
        name: pageIndex
        schema:
          anyOf:
          - type: number
          - type: string
            pattern: ^(?:(?!^-0\.?0*$)(?:-?(?:(?:0|[1-9]\d*)(?:\.\d+)?)|\.\d+?))$
      - in: query
        name: pageSize
        schema:
          anyOf:
          - type: number
          - type: string
            pattern: ^(?:(?!^-0\.?0*$)(?:-?(?:(?:0|[1-9]\d*)(?:\.\d+)?)|\.\d+?))$
      - in: query
        name: q
        schema:
          type: string
      - in: query
        name: role
        schema:
          enum:
          - admin
          - member
      - in: query
        name: rootId
        schema:
          anyOf:
          - type: string
            description: a UUID
            format: uuid
            pattern: '[\da-f]{8}-[\da-f]{4}-[1-8][\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}'
          - const: 00000000-0000-0000-0000-000000000000
            description: a UUID
            format: uuid
          - const: ffffffff-ffff-ffff-ffff-ffffffffffff
            description: a UUID
            format: uuid
          format: uuid
        description: a UUID
      summary: List all teams in the organization
      description: List every team in the active organization matching the query, including teams the caller is not a member of.
      tags:
      - Org Admin
      responses:
        '200':
          description: List of matching teams
          content:
            application/json:
              schema:
                type: object
                properties:
                  teams:
                    type: array
                    items:
                      type: object
                      properties:
                        createdAt:
                          type: string
                        description:
                          anyOf:
                          - type: string
                          - type: 'null'
                        detail:
                          anyOf:
                          - type: string
                          - type: 'null'
                        logo:
                          anyOf:
                          - type: string
                          - type: 'null'
                        name:
                          anyOf:
                          - type: string
                          - type: 'null'
                        orgId:
                          type: string
                          description: a RFC-4122-compliant UUID
                          pattern: ^[\da-f]{8}(?:-[\da-f]{4}){3}-[\da-f]{12}$
                        teamId:
                          type: string
                          description: a RFC-4122-compliant UUID
                          pattern: ^[\da-f]{8}(?:-[\da-f]{4}){3}-[\da-f]{12}$
                        updatedAt:
                          type: string
                        depth:
                          type: number
                        num_members:
                          type: number
                        org:
                          type: object
                          properties:
                            name:
                              type: string
                            orgId:
                              type: string
                          required:
                          - name
                          - orgId
                        path:
                          type: string
                      required:
                      - createdAt
                      - description
                      - detail
                      - logo
                      - name
                      - orgId
                      - teamId
                      - updatedAt
                  total:
                    type: number
                required:
                - teams
                - total
        '400':
          description: Invalid Request
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    const: INVALID_REQUEST
                  message:
                    type: string
                  status:
                    const: 400
                  detail:
                    type: object
                    description: Extra context information specific to this error
                required:
                - code
                - message
                - status
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    const: UNAUTHORIZED
                  message:
                    type: string
                  status:
                    const: 401
                  detail:
                    type: object
                    description: Extra context information specific to this error
                required:
                - code
                - message
                - status
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    const: FORBIDDEN
                  message:
                    type: string
                  status:
                    const: 403
                  detail:
                    type: object
                    description: Extra context information specific to this error
                required:
                - code
                - message
                - status
        '500':
          description: Unknown error occurred
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    const: UNKNOWN_ERROR
                  message:
                    type: string
                  status:
                    const: 500
                  detail:
                    type: object
                    description: Extra context information specific to this error
                required:
                - code
                - message
                - status
      x-badges:
      - name: New
        color: rgb(0, 200, 190)
        position: after
      x-scalar-stability: experimental
      x-required-role: org-admin
  /api/v1/org/teams/{team_id}:
    patch:
      operationId: org.teams.update
      parameters:
      - in: path
        name: team_id
        schema:
          anyOf:
          - type: string
            description: a UUID
            format: uuid
            pattern: '[\da-f]{8}-[\da-f]{4}-[1-8][\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}'
          - const: 00000000-0000-0000-0000-000000000000
            description: a UUID
            format: uuid
          - const: ffffffff-ffff-ffff-ffff-ffffffffffff
            description: a UUID
            format: uuid
          format: uuid
        required: true
        description: a UUID
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                childOfId:
                  anyOf:
                  - type: string
                  - type: 'null'
                description:
                  type: string
                logo:
                  anyOf:
                  - type: string
                  - type: 'null'
                name:
                  type: string
      summary: Update a team
      tags:
      - Org Admin
      responses:
        '200':
          description: Updated team
          content:
            application/json:
              schema:
                type: object
                properties:
                  createdAt:
                    type: string
                  description:
                    anyOf:
                    - type: string
                    - type: 'null'
                  detail:
                    anyOf:
                    - type: string
                    - type: 'null'
                  logo:
                    anyOf:
                    - type: string
                    - type: 'null'
                  name:
                    anyOf:
                    - type: string
                    - type: 'null'
                  orgId:
                    type: string
                    description: a RFC-4122-compliant UUID
                    pattern: ^[\da-f]{8}(?:-[\da-f]{4}){3}-[\da-f]{12}$
                  teamId:
                    type: string
                    description: a RFC-4122-compliant UUID
                    pattern: ^[\da-f]{8}(?:-[\da-f]{4}){3}-[\da-f]{12}$
                  updatedAt:
                    type: string
                  depth:
                    type: number
                  num_members:
                    type: number
                  org:
                    type: object
                    properties:
                      name:
                        type: string
                      orgId:
                        type: string
                    required:
                    - name
                    - orgId
                  path:
                    type: string
                required:
                - createdAt
                - description
                - detail
                - logo
                - name
                - orgId
                - teamId
                - updatedAt
        '400':
          description: Invalid Request
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    const: INVALID_REQUEST
                  message:
                    type: string
                  status:
                    const: 400
                  detail:
                    type: object
                    description: Extra context information specific to this error
                required:
                - code
                - message
                - status
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    const: UNAUTHORIZED
                  message:
                    type: string
                  status:
                    const: 401
                  detail:
                    type: object
                    description: Extra context information specific to this error
                required:
                - code
                - message
                - status
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    const: FORBIDDEN
                  message:
                    type: string
                  status:
                    const: 403
                  detail:
                    type: object
                    description: Extra context information specific to this error
                required:
                - code
                - message
                - status
        '500':
          description: Unknown error occurred
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    const: UNKNOWN_ERROR
                  message:
                    type: string
                  status:
                    const: 500
                  detail:
                    type: object
                    description: Extra context information specific to this error
                required:
                - code
                - message
                - status
      x-required-role: org-admin
    delete:
      operationId: org.teams.delete
      parameters:
      - in: path
        name: team_id
        schema:
          anyOf:
          - type: string
            description: a UUID
            format: uuid
            pattern: '[\da-f]{8}-[\da-f]{4}-[1-8][\da-f]{3}-[89ab][\da-f]{3}-[\da-f]{12}'
          - const: 00000000-0000-0000-0000-000000000000
            description: a UUID
            format: uuid
          - const: ffffffff-ffff-ffff-ffff-ffffffffffff
            description: a UUID
            format: uuid
          format: uuid
        required: true
        description: a UUID
      summary: Delete a team
      description: Delete a team by its ID. This is a soft delete, the team will be marked as deleted but not removed from the database.
      tags:
      - Org Admin
      responses:
        '200':
          description: Deleted team
          content:
            application/json:
              schema:
                type: object
                properties:
                  createdAt:
                    type: string
                  description:
                    anyOf:
                    - type: string
                    - type: 'null'
                  detail:
                    anyOf:
                    - type: string
                    - type: 'null'
                  logo:
                    anyOf:
                    - type: string
                    - type: 'null'
                  name:
                    anyOf:
                    - type: string
                    - type: 'null'
                  orgId:
                    type: string
                    description: a RFC-4122-compliant UUID
                    pattern: ^[\da-f]{8}(?:-[\da-f]{4}){3}-[\da-f]{12}$
                  teamId:
                    type: string
                    description: a RFC-4122-compliant UUID
                    pattern: ^[\da-f]{8}(?:-[\da-f]{4}){3}-[\da-f]{12}$
                  updatedAt:
                    type: string
                  depth:
                    type: number
                  num_members:
                    type: number
                  org:
                    type: object
                    properties:
                      name:
                        type: string
                      orgId:
                        type: string
                    required:
                    - name
                    - orgId
                  path:
                    type: string
                required:
                - createdAt
                - description
                - detail
                - logo
                - name
                - orgId
                - teamId
                - updatedAt
        '400':
          description: Invalid Request
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    const: INVALID_REQUEST
                  message:
                    type: string
                  status:
                    const: 400
                  detail:
                    type: object
                    description: Extra context information specific to this error
                required:
                - code
                - message
                - status
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    const: UNAUTHORIZED
                  message:
                    type: string
                  status:
                    const: 401
                  detail:
                    type: object
                    description: Extra context information specific to this error
                required:
                - code
                - message
                - status
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    const: FORBIDDEN
                  message:
                    type: string
                  status:
                    const: 403
                  detail:
                    type: object
                    description: Extra context information specific to this error
                required:
                - code
                - message
                - status
        '500':
          description: Unknown error occurred
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    const: UNKNOWN_ERROR
                  message:
                    type: string
                  status:
                    const: 500
                  detail:
                    type: object
                    description: Extra context information specific to this error
                required:
                - code
                - message
                - status
      x-scalar-stability: experimental
      x-required-role: org-admin
  /api/v1/org/teams/members:
    post:
      operationId: org.teams.members_upsert
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                memberships:
                  type: array
                  items:
                    type: object
                    properties:
                      role:
                        enum:
                        - admin
                        - member
                      teamId:
                        type: string
                      userId:
                        type: string
                      metadata:
                        type: object
                    required:
                    - role
                    - teamId
                    - userId
              required:
              - memberships
      summary: Add/Update memberships
      description: Add or update memberships for a team. This will create memberships if they don't exist, or update metadata if they do.
      tags:
      - Org Admin
      responses:
        '200':
          description: Updated memberships
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    createdAt:
                      type: string
                    metadata:
                      anyOf:
                      - type: number
                      - type: object
                      - type: string
                      - type: boolean
                      - type: 'null'
                    role:
                      type: string
                    teamId:
                      type: string
                      description: a RFC-4122-compliant UUID
                      pattern: ^[\da-f]{8}(?:-[\da-f]{4}){3}-[\da-f]{12}$
                    updatedAt:
                      type: string
                    userId:
                      type: string
                      description: a RFC-4122-compliant UUID
                      pattern: ^[\da-f]{8}(?:-[\da-f]{4}){3}-[\da-f]{12}$
                    depth:
                      type: number
                    org:
                      type: object
                      properties:
                        createdAt:
                          type: string
                        logo:
                          anyOf:
                          - type: string
                          - type: 'null'
                        name:
                          type: string
                        orgId:
                          type: string
                          description: a RFC-4122-compliant UUID
                          pattern: ^[\da-f]{8}(?:-[\da-f]{4}){3}-[\da-f]{12}$
                        slug:
                          anyOf:
                          - type: string
                          - type: 'null'
                        updatedAt:
                          type: string
                        website:
                          anyOf:
                          - type: string
                          - type: 'null'
                      required:
                      - createdAt
                      - logo
                      - name
                      - orgId
                      - slug
                      - updatedAt
                      - website
                    path:
                      type: string
                    team:
                      type: object
                      properties:
                        createdAt:
                          type: string
                        description:
                          anyOf:
                          - type: string
                          - type: 'null'
                        detail:
                          anyOf:
                          - type: string
                          - type: 'null'
                        logo:
                          anyOf:
                          - type: string
                          - type: 'null'
                        name:
                          anyOf:
                          - type: string
                          - type: 'null'
                        orgId:
                          type: string
                          description: a RFC-4122-compliant UUID
                          pattern: ^[\da-f]{8}(?:-[\da-f]{4}){3}-[\da-f]{12}$
                        teamId:
                          type: string
                          description: a RFC-4122-compliant UUID
                          pattern: ^[\da-f]{8}(?:-[\da-f]{4}){3}-[\da-f]{12}$
                        updatedAt:
                          type: string
                        depth:
                          type: number
                        num_members:
                          type: number
                        org:
                          type: object
                          properties:
                            name:
                              type: string
                            orgId:
                              type: string
                          required:
                          - name
                          - orgId
                        path:
                          type: string
                      required:
                      - createdAt
                      - description
                      - detail
                      - logo
                      - name
                      - orgId
                      - teamId
                      - updatedAt
                    user:
                      $ref: '#/components/schemas/User'
                  required:
                  - createdAt
                  - metadata
                  - role
                  - teamId
                  - updatedAt
                  - userId
        '400':
          description: Invalid Request
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    const: INVALID_REQUEST
                  message:
                    type: string
                  status:
                    const: 400
                  detail:
                    type: object
                    description: Extra context information specific to this error
                required:
                - code
                - message
                - status
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    const: UNAUTHORIZED
                  message:
                    type: string
                  status:
                    const: 401
                  detail:
                    type: object
                    description: Extra context information specific to this error
                required:
                - code
                - message
                - status
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    const: FORBIDDEN
                  message:
                    type: string
                  status:
                    const: 403
                  detail:
                    type: object
                    description: Extra context information specific to this error
                required:
                - code
                - message
                - status
        '500':
          description: Unknown error occurred
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    const: UNKNOWN_ERROR
                  message:
                    type: string
                  status:
                    const: 500
                  detail:
                    type: object
                    description: Extra context information specific to this error
                required:
                - code
                - message
                - status
      x-required-role: org-admin
    delete:
      operationId: org.teams.members_delete
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                memberships:
                  type: array
                  items:
                    type: object
                    properties:
                      teamId:
                        type: string
                      userId:
                        type: string
                    required:
                    - teamId
                    - userId
              required:
              - memberships
      summary: Remove memberships
      description: Remove memberships for a team. This will remove the specified users from the team. If a specified user is not a member of the team, it will be ignored.
      tags:
      - Org Admin
      responses:
        '200':
          description: Removed memberships
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    createdAt:
        

# --- truncated at 32 KB (53 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/dust-identity/refs/heads/main/openapi/dust-identity-org-admin-api-openapi.yml