> ## Documentation Index
> Fetch the complete documentation index at: https://docs.orquestr.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# List devices for a license

> Returns every non-deleted device bound to the license (`pending`, `enrolled`, and `revoked`) unless filtered with `status`. Requires `devices.read` (or a product key for that license).



## OpenAPI

````yaml /openapi.json get /v1/licenses/{id}/devices
openapi: 3.0.3
info:
  title: Orquestr Cloud API
  version: 1.0.0
  description: Orquestr Cloud API — devices, functions, and API keys.
servers:
  - url: https://sand-api.orquestr.dev/cloud
    description: Production
security: []
tags:
  - name: Customers
    description: Customers and members
  - name: Licenses
    description: Issue and revoke licenses
  - name: Devices
    description: Devices and command history
  - name: Functions
    description: List and invoke device functions
  - name: Saved SQL
    description: Org saved read-only queries
paths:
  /v1/licenses/{id}/devices:
    get:
      tags:
        - Licenses
      summary: List devices for a license
      description: >-
        Returns every non-deleted device bound to the license (`pending`,
        `enrolled`, and `revoked`) unless filtered with `status`. Requires
        `devices.read` (or a product key for that license).
      operationId: get_v1_licenses_id_devices
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: License UUID
        - name: status
          in: query
          required: false
          schema:
            type: string
            enum:
              - pending
              - enrolled
              - revoked
          description: Filter by device status. Omit to return all statuses.
        - name: page
          in: query
          required: false
          schema:
            type: integer
            minimum: 1
          description: >-
            Page number (1-based). If both page and per_page are omitted, the
            full set is returned.
        - name: per_page
          in: query
          required: false
          schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 20
          description: >-
            Items per page (max 100). If both page and per_page are omitted, the
            full set is returned.
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
              example:
                data:
                  - id: d7777777-7777-7777-7777-777777777777
                    customer_id: o2222222-2222-2222-2222-222222222222
                    license_id: l6666666-6666-6666-6666-666666666666
                    adapter: sicarv4
                    name: Caja 1
                    status: enrolled
                    last_seen_at: '2026-09-15T17:55:00.000Z'
                    created_at: '2026-09-15T18:00:00.000Z'
                    updated_at: '2026-09-15T17:55:00.000Z'
                    external_device_id: caja-1
                  - id: d8888888-8888-8888-8888-888888888888
                    customer_id: o2222222-2222-2222-2222-222222222222
                    license_id: l6666666-6666-6666-6666-666666666666
                    adapter: sicarv4
                    name: Caja vieja
                    status: revoked
                    revoked_at: '2026-09-01T18:22:00.000Z'
                    created_at: '2026-08-01T12:00:00.000Z'
                    updated_at: '2026-09-01T18:22:00.000Z'
                    external_device_id: caja-old
                meta:
                  page: 1
                  per_page: 2
                  total_pages: 1
                  total_count: 2
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
      security:
        - bearerAuth: []
components:
  responses:
    BadRequest:
      description: Validation or client error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              code: bad_request
              message: Invalid body
    Unauthorized:
      description: Missing or invalid API key
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              code: unauthorized
              message: Unauthorized
    NotFound:
      description: Resource not found (or hidden)
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              code: not_found
              message: Not found
  schemas:
    Error:
      type: object
      required:
        - error
      properties:
        error:
          type: object
          required:
            - code
            - message
          properties:
            code:
              type: string
              example: bad_request
            message:
              type: string
              example: Invalid body
            details:
              type: object
              additionalProperties: true
      example:
        error:
          code: bad_request
          message: Invalid body
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: API key
      description: 'API key (`sk_live_…`). Send as `Authorization: Bearer <api_key>`.'
      x-default: <api_key>

````