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

# Issue temporary relay credentials

> Direct machine issuance: mints a short-lived scoped JWT used to connect to MoQ/WebTransport edge relays.
The client must authenticate with an active API key (`X-API-Key`).




## OpenAPI

````yaml /api-reference/openapi.yaml post /v1/credentials
openapi: 3.1.0
info:
  title: Qumo Deploy REST API
  description: >
    The Qumo Deploy REST API provides programmatic control over edge relay
    clusters,

    ephemeral token issuance, tenant lifecycle, bot machine identities, and
    billing.
  version: 1.0.0
servers:
  - url: https://api.qumo-deploy.com
    description: Production Control Plane
  - url: http://localhost:8080
    description: Local Development / Sandbox
security:
  - BearerAuth: []
  - ApiKeyAuth: []
paths:
  /v1/credentials:
    post:
      summary: Issue temporary relay credentials
      description: >
        Direct machine issuance: mints a short-lived scoped JWT used to connect
        to MoQ/WebTransport edge relays.

        The client must authenticate with an active API key (`X-API-Key`).
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IssueCredentialRequest'
      responses:
        '200':
          description: Ephemeral credential with assigned relay endpoints
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IssuedCredential'
        '400':
          description: Invalid request parameters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '402':
          description: Plan connection limit reached
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Scope not permitted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
        - ApiKeyAuth: []
components:
  schemas:
    IssueCredentialRequest:
      type: object
      required:
        - scopes
      properties:
        scopes:
          type: array
          items:
            type: string
            example: relay:session
        ttl_seconds:
          type: integer
          default: 3600
          example: 3600
    IssuedCredential:
      type: object
      required:
        - token
        - expires_at
        - jti
      properties:
        token:
          type: string
          example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
        expires_at:
          type: string
          format: date-time
          example: '2026-09-12T12:00:00Z'
        jti:
          type: string
          example: c0b7e28e-8a5f-4a3e-bfa1-e28373b984d2
        relays:
          type: array
          items:
            $ref: '#/components/schemas/RelayEndpoint'
        fallback:
          type: array
          items:
            type: string
            example: tyo1.relay.qumo.live:4433
    ErrorResponse:
      type: object
      required:
        - error
      properties:
        error:
          type: string
          example: invalid or expired token
    RelayEndpoint:
      type: object
      required:
        - id
        - region
        - host
        - port
        - url
        - status
      properties:
        id:
          type: string
          example: relay-tyo-01
        region:
          type: string
          example: ap-northeast-1
        host:
          type: string
          example: tyo1.relay.qumo.live
        port:
          type: integer
          example: 4433
        url:
          type: string
          example: https://tyo1.relay.qumo.live:4433
        status:
          type: string
          enum:
            - healthy
            - degraded
          example: healthy
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: |
        Bearer token (User session or Bot machine token).
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-API-Key
      description: |
        Project-scoped API key (`qumo_live_...` or `qumo_test_...`).

````