Archil Disk Users API

Manage authorized users on disks

Operations 2

POST /api/disks/{id}/users Add user to disk #
DELETE /api/disks/{id}/users/{userType} Remove user from disk #

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/archil-disk-users-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 email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

archil-disk-users-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Archil Control Plane API Tokens Disk Users API
  description: "The Archil Control Plane API provides programmatic access to manage disks,\nmounts, and API keys in the Archil distributed filesystem platform.\n\nAPI keys authenticate requests to this control plane and are scoped to\nyour account. They are distinct from *disk tokens*, which are per-disk\ncredentials used by clients when mounting a disk.\n\n## Authentication\n\nAll endpoints require an API key:\n\n```\nAuthorization: {API_KEY}\n```\n\nCreate API keys in the [Archil Console](https://console.archil.com) or via the API.\n\n## Response Format\n\nAll responses use a consistent envelope:\n\n```json\n{\n  \"success\": true,\n  \"data\": { ... }\n}\n```\n\nOr on error:\n\n```json\n{\n  \"success\": false,\n  \"error\": \"Error message\"\n}\n```\n"
  version: 1.0.0
  contact:
    email: support@archil.com
    url: https://archil.com
servers:
- url: https://control.green.us-east-1.aws.prod.archil.com
  description: AWS US East (N. Virginia) — aws-us-east-1
- url: https://control.green.eu-west-1.aws.prod.archil.com
  description: AWS EU West (Ireland) — aws-eu-west-1
- url: https://control.green.us-west-2.aws.prod.archil.com
  description: AWS US West (Oregon) — aws-us-west-2
- url: https://control.blue.us-central1.gcp.prod.archil.com
  description: GCP US Central (Iowa) — gcp-us-central1
security:
- ApiKeyAuth: []
tags:
- name: Disk Users
  description: Manage authorized users on disks
paths:
  /api/disks/{id}/users:
    post:
      operationId: addDiskUser
      summary: Add user to disk
      description: 'Adds an authorized user to a disk. Users can authenticate via:

        - **token**: A shared token with a nickname and 4-character suffix

        - **awssts**: AWS STS role assumption with an IAM principal ARN

        '
      tags:
      - Disk Users
      parameters:
      - $ref: '#/components/parameters/DiskId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DiskUser'
      responses:
        '201':
          description: User added successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResponse_AuthorizedUser'
        '400':
          $ref: '#/components/responses/ValidationError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/InternalError'
  /api/disks/{id}/users/{userType}:
    delete:
      operationId: removeDiskUser
      summary: Remove user from disk
      description: Removes an authorized user from a disk.
      tags:
      - Disk Users
      parameters:
      - $ref: '#/components/parameters/DiskId'
      - name: userType
        in: path
        required: true
        description: The type of user authentication
        schema:
          type: string
          enum:
          - token
          - awssts
      - name: identifier
        in: query
        required: false
        description: 'Identifier of the user to remove, as returned in the creation or list response. For awssts users, this is the IAM ARN.

          '
        schema:
          type: string
      - name: principal
        in: query
        required: false
        deprecated: true
        description: Use identifier instead.
        schema:
          type: string
      responses:
        '200':
          description: User removed successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResponse_Message'
        '400':
          $ref: '#/components/responses/ValidationError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/InternalError'
components:
  schemas:
    AwsStsUser:
      type: object
      required:
      - type
      - principal
      properties:
        type:
          type: string
          enum:
          - awssts
        principal:
          type: string
          description: IAM principal ARN
          maxLength: 2048
    ApiResponse_AuthorizedUser:
      type: object
      required:
      - success
      - data
      properties:
        success:
          type: boolean
          example: true
        data:
          $ref: '#/components/schemas/AuthorizedUser'
    TokenUser:
      type: object
      required:
      - type
      - nickname
      properties:
        type:
          type: string
          enum:
          - token
        principal:
          type: string
          maxLength: 2048
          deprecated: true
          description: 'Deprecated. Client-provided token. If omitted, the server generates a cryptographically secure token and returns it in the response.

            '
        nickname:
          type: string
          maxLength: 255
        tokenSuffix:
          type: string
          minLength: 4
          maxLength: 4
          deprecated: true
          description: 'Deprecated. Last 4 characters of the token. Required when principal is provided; ignored when the server generates the token.

            '
    ErrorResponse:
      type: object
      required:
      - success
      - error
      properties:
        success:
          type: boolean
          example: false
        error:
          type: string
          example: Invalid request parameters
    ApiResponse_Message:
      type: object
      required:
      - success
      - data
      properties:
        success:
          type: boolean
          example: true
        data:
          type: object
          properties:
            message:
              type: string
    AuthorizedUser:
      type: object
      properties:
        type:
          type: string
          enum:
          - token
          - awssts
        principal:
          type: string
          deprecated: true
          description: 'Use identifier instead. Only populated for awssts type (the IAM ARN).

            '
        nickname:
          type: string
        tokenSuffix:
          type: string
        token:
          type: string
          description: 'The generated disk token (used by clients when mounting the disk). Only present in the response when the server generates the token (i.e. principal was not provided). This value is shown exactly once and cannot be retrieved again.

            '
        identifier:
          type: string
          description: 'Stable identifier for this user, returned in creation and list responses. Use this value with DELETE /api/disks/{id}/users/{type}?identifier={identifier} to remove the user. For awssts users, this is the IAM ARN.

            '
        createdAt:
          type: string
          format: date-time
    DiskUser:
      oneOf:
      - $ref: '#/components/schemas/TokenUser'
      - $ref: '#/components/schemas/AwsStsUser'
      discriminator:
        propertyName: type
        mapping:
          token: '#/components/schemas/TokenUser'
          awssts: '#/components/schemas/AwsStsUser'
  responses:
    InternalError:
      description: Internal server error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    Unauthorized:
      description: Invalid or missing authentication credentials
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    ValidationError:
      description: Validation error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  parameters:
    DiskId:
      name: id
      in: path
      required: true
      description: Disk ID (format `dsk-{16 hex chars}`)
      schema:
        type: string
        pattern: ^dsk-[0-9a-f]{16}$
        example: dsk-0123456789abcdef
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: Authorization
      description: API key