Arcee AI Device Auth API

The Device Auth API from Arcee AI — 5 operation(s) for device auth.

Operations 5

POST /app/v1/device/code Create Device Code #
POST /app/v1/device/token Poll Device Token #
GET /app/v1/device/info Device Info #
POST /app/v1/device/approve Approve Device #
POST /app/v1/device/deny Deny Device #

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/arcee-ai-device-auth-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

arcee-ai-device-auth-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: AFM Access Profiles Device Auth API
  version: 0.1.0
servers:
- url: https://api.arcee.ai
  description: Base URL declared by the provider in apis.yml (roadmap#122).
tags:
- name: Device Auth
paths:
  /app/v1/device/code:
    post:
      tags:
      - Device Auth
      summary: Create Device Code
      description: 'Start a device authorization: issue a device_code + human user_code.'
      operationId: create_device_code_app_v1_device_code_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DeviceCodeRequest'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeviceCodeResponse'
        '400':
          description: OAuth-style error (e.g. authorization_pending, slow_down, access_denied).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeviceAuthErrorResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /app/v1/device/token:
    post:
      tags:
      - Device Auth
      summary: Poll Device Token
      description: Poll for the authorization result. Returns the API key once approved.
      operationId: poll_device_token_app_v1_device_token_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DeviceTokenRequest'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeviceTokenSuccess'
        '400':
          description: OAuth-style error (e.g. authorization_pending, slow_down, access_denied).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeviceAuthErrorResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /app/v1/device/info:
    get:
      tags:
      - Device Auth
      summary: Device Info
      description: Return the requesting client's display name + status for the consent screen.
      operationId: device_info_app_v1_device_info_get
      security:
      - HTTPBearer: []
      parameters:
      - name: user_code
        in: query
        required: true
        schema:
          type: string
          title: User Code
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeviceInfoResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /app/v1/device/approve:
    post:
      tags:
      - Device Auth
      summary: Approve Device
      description: 'Approve a device authorization: mint an API key scoped to the chosen workspace.'
      operationId: approve_device_app_v1_device_approve_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DeviceApproveRequest'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeviceApproveResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
      - HTTPBearer: []
  /app/v1/device/deny:
    post:
      tags:
      - Device Auth
      summary: Deny Device
      description: Deny a device authorization so the polling client stops with access_denied.
      operationId: deny_device_app_v1_device_deny_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DeviceDenyRequest'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeviceDenyResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
      - HTTPBearer: []
components:
  schemas:
    DeviceTokenSuccess:
      properties:
        api_key:
          type: string
          title: Api Key
        base_url:
          type: string
          title: Base Url
        organization_id:
          type: string
          format: uuid
          title: Organization Id
        workspace_name:
          type: string
          title: Workspace Name
        token_type:
          type: string
          title: Token Type
          default: api_key
      type: object
      required:
      - api_key
      - base_url
      - organization_id
      - workspace_name
      title: DeviceTokenSuccess
    DeviceCodeResponse:
      properties:
        device_code:
          type: string
          title: Device Code
        user_code:
          type: string
          title: User Code
        verification_uri:
          type: string
          title: Verification Uri
        verification_uri_complete:
          type: string
          title: Verification Uri Complete
        interval:
          type: integer
          title: Interval
        expires_in:
          type: integer
          title: Expires In
      type: object
      required:
      - device_code
      - user_code
      - verification_uri
      - verification_uri_complete
      - interval
      - expires_in
      title: DeviceCodeResponse
    DeviceDenyResponse:
      properties:
        status:
          type: string
          title: Status
          default: denied
      type: object
      title: DeviceDenyResponse
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    DeviceApproveResponse:
      properties:
        status:
          type: string
          title: Status
          default: approved
        workspace_name:
          type: string
          title: Workspace Name
        organization_id:
          type: string
          format: uuid
          title: Organization Id
      type: object
      required:
      - workspace_name
      - organization_id
      title: DeviceApproveResponse
    DeviceApproveRequest:
      properties:
        user_code:
          type: string
          title: User Code
        organization_id:
          type: string
          format: uuid
          title: Organization Id
      type: object
      required:
      - user_code
      - organization_id
      title: DeviceApproveRequest
    DeviceAuthErrorResponse:
      properties:
        error:
          type: string
          title: Error
        error_description:
          anyOf:
          - type: string
          - type: 'null'
          title: Error Description
      type: object
      required:
      - error
      title: DeviceAuthErrorResponse
      description: 'RFC 8628 OAuth-style error body returned (with HTTP 400) by the

        unauthenticated device endpoints.'
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
            - type: string
            - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
      - loc
      - msg
      - type
      title: ValidationError
    DeviceTokenRequest:
      properties:
        device_code:
          type: string
          title: Device Code
        client_id:
          type: string
          title: Client Id
      type: object
      required:
      - device_code
      - client_id
      title: DeviceTokenRequest
    DeviceCodeRequest:
      properties:
        client_id:
          type: string
          title: Client Id
      type: object
      required:
      - client_id
      title: DeviceCodeRequest
    DeviceInfoResponse:
      properties:
        client_id:
          type: string
          title: Client Id
        client_display_name:
          type: string
          title: Client Display Name
        status:
          type: string
          title: Status
        expires_in:
          type: integer
          title: Expires In
      type: object
      required:
      - client_id
      - client_display_name
      - status
      - expires_in
      title: DeviceInfoResponse
    DeviceDenyRequest:
      properties:
        user_code:
          type: string
          title: User Code
      type: object
      required:
      - user_code
      title: DeviceDenyRequest
  securitySchemes:
    HTTPBearer:
      type: http
      scheme: bearer