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

# Reserve a transcription node

> Release-gated first step for `transcription-v1`. Sends bounded metadata and sample count only; audio remains on the client. A successful response returns the selected node's verified encryption/signing identity, a short-lived reservation token, and a maximum quote. The client must validate the response before sealing PCM. The route is default off and is not available until public discovery returns `whisper-1`.

Reserve one capability-qualified `whisper-1` node using metadata and sample count only. The audio
must remain on the client until it validates the returned node keys and seals the PCM bytes.

Transcription is release-gated and unavailable unless public discovery returns `whisper-1`. For
the complete two-request flow, privacy boundary, pricing, and limits, see
[Speech-to-text transcription](/cloud/grid/transcription.md).


## OpenAPI

````yaml POST /v1/audio/transcriptions/reserve
openapi: 3.1.0
info:
  title: x402 Singularity Layer API
  description: >-
    OpenAPI-backed reference for marketplace discovery, payment routes,
    webhooks, wallet-first auth, agent endpoints, and ERC-8004 flows.
  version: 1.0.0
servers:
  - url: https://api.x402layer.cc
security: []
tags:
  - name: Marketplace
    description: Public discovery and listing lookup
  - name: Public Endpoints
    description: Public endpoint metadata and hosted checkout context
  - name: Public Payment Links
    description: Hosted public payment-link lookup
  - name: Payments
    description: Hosted x402 payment challenge routes
  - name: Receipts
    description: Signed receipt lookup and verification helpers
  - name: Ratings
    description: Public listing ratings and authenticated rating actions
  - name: Webhooks
    description: Seller webhook management API
  - name: Agent Auth
    description: Wallet-first challenge and verification routes
  - name: Agent Endpoints
    description: Create, read, top up, and delete agent endpoints
  - name: ERC-8004
    description: Agent registry and registration lifecycle routes
  - name: Marketplace Agents
    description: Public ERC-8004 marketplace discovery routes
  - name: Compute Catalog
    description: Compute plans, regions, and OS catalog
  - name: Compute Instances
    description: Provision, inspect, extend, and destroy compute instances
  - name: Compute API Keys
    description: API keys for compute agent access
  - name: Fundraiser Campaigns
    description: List, view, create, and edit fundraiser campaigns
  - name: Fundraiser Contributions
    description: Record and list campaign contributions
  - name: Fundraiser Comments
    description: Campaign comment threads
  - name: Fundraiser Media
    description: Campaign image uploads and OG images
  - name: Enterprise
    description: >-
      Enterprise partner configuration, endpoint listing, revenue stats, and
      transaction ledger
  - name: Staking
    description: Agentic $SGL staking
  - name: SGL Grid
    description: >-
      Decentralized, confidential, OpenAI-compatible inference served by
      attested TEE nodes.
  - name: Compute Credits
    description: Prepaid USDC credit balance shared across Machines and Grid.
  - name: Agent Pods
    description: >-
      Deploy and manage hosted agents (Agent Pods), plus the pod's
      OpenAI-compatible adapter for external clients.
  - name: Agent Pods API
    description: >-
      The programmatic `/pods/v1` surface: create, drive and destroy Agent Pods
      with a single `X-API-Key`. Distinct from the Agent Pods dashboard routes,
      which expect a wallet signature or a browser session.
paths:
  /v1/audio/transcriptions/reserve:
    servers:
      - url: https://grid.x402compute.cc
    post:
      tags:
        - SGL Grid
      summary: Reserve a transcription node
      description: >-
        Release-gated first step for `transcription-v1`. Sends bounded metadata
        and sample count only; audio remains on the client. A successful
        response returns the selected node's verified encryption/signing
        identity, a short-lived reservation token, and a maximum quote. The
        client must validate the response before sealing PCM. The route is
        default off and is not available until public discovery returns
        `whisper-1`.
      parameters:
        - name: X-API-Key
          in: header
          required: false
          schema:
            type: string
            example: x402c_...
          description: Compute/Grid API key with `grid:write` scope for prepaid credits.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: false
              required:
                - model
                - transcription_protocol
                - request_id
                - sample_rate
                - channels
                - bits_per_sample
                - sample_count
                - use_credits
                - model_revision
                - model_sha256
              properties:
                model:
                  type: string
                  enum:
                    - whisper-1
                transcription_protocol:
                  type: string
                  enum:
                    - transcription-v1
                request_id:
                  type: string
                  format: uuid
                  description: >-
                    Stable canonical lowercase UUID v4 logical identity bound
                    into reservation, sealed input, result, and billing.
                  pattern: >-
                    ^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
                sample_rate:
                  type: integer
                  enum:
                    - 16000
                channels:
                  type: integer
                  enum:
                    - 1
                bits_per_sample:
                  type: integer
                  enum:
                    - 16
                sample_count:
                  type: integer
                  minimum: 1
                  maximum: 960000
                  description: >-
                    Duration and quote authority. The submit envelope and node
                    independently bind and verify this count.
                language:
                  type: string
                  pattern: ^(auto|[a-z]{2})$
                  default: auto
                use_credits:
                  type: boolean
                node:
                  type: string
                  description: Optional eligible provider node id to pin.
                  format: uuid
                  pattern: >-
                    ^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
                max_price:
                  type: number
                  exclusiveMinimum: 0
                  description: Maximum accepted quote in USD.
                model_revision:
                  type: string
                  enum:
                    - 5359861c739e955e79d9a303bcbc70fb988958b1
                  description: >-
                    Exact immutable candidate pin; mismatches are rejected
                    before reservation.
                model_sha256:
                  type: string
                  enum:
                    - >-
                      1be3a9b2063867b937e64e2ec7483364a79917e157fa98c5d94b5c1fffea987b
                  description: >-
                    Exact immutable candidate pin; mismatches are rejected
                    before reservation.
            example:
              model: whisper-1
              transcription_protocol: transcription-v1
              request_id: 4fc6b6d2-5d2c-4f3b-92d9-3cd1de81f883
              sample_rate: 16000
              channels: 1
              bits_per_sample: 16
              sample_count: 80000
              language: auto
              use_credits: true
              model_revision: 5359861c739e955e79d9a303bcbc70fb988958b1
              model_sha256: 1be3a9b2063867b937e64e2ec7483364a79917e157fa98c5d94b5c1fffea987b
      responses:
        '200':
          description: >-
            Short-lived reservation and maximum quote. No audio was uploaded by
            this step.
          content:
            application/json:
              schema:
                type: object
                additionalProperties: false
                required:
                  - reservation_token
                  - request_id
                  - model
                  - model_revision
                  - model_sha256
                  - transcription_protocol
                  - sample_count
                  - language
                  - node_id
                  - node_x25519_pubkey
                  - node_ed25519_pubkey
                  - node_x25519_pubkey_sig
                  - key_version
                  - expires_in_ms
                  - quote
                  - attestation_verified
                  - tee_type
                properties:
                  reservation_token:
                    type: string
                  request_id:
                    type: string
                    format: uuid
                  model:
                    type: string
                    enum:
                      - whisper-1
                  model_revision:
                    type: string
                    pattern: ^[a-f0-9]{40}$
                    description: >-
                      Immutable Hugging Face commit:
                      `5359861c739e955e79d9a303bcbc70fb988958b1`.
                  model_sha256:
                    type: string
                    pattern: ^[a-f0-9]{64}$
                    description: SHA-256 of the pinned model file.
                  transcription_protocol:
                    type: string
                    enum:
                      - transcription-v1
                  sample_count:
                    type: integer
                    minimum: 1
                    maximum: 960000
                  language:
                    type: string
                    pattern: ^(auto|[a-z]{2})$
                  node_id:
                    type: string
                    format: uuid
                  node_x25519_pubkey:
                    type: string
                    description: >-
                      Base58 X25519 key used by the client to seal the PCM
                      payload.
                  node_ed25519_pubkey:
                    type: string
                    description: >-
                      Base58 Ed25519 identity key used to verify the sealed
                      result signature.
                  node_x25519_pubkey_sig:
                    type: string
                    description: >-
                      Node identity signature binding the current versioned
                      X25519 key.
                  key_version:
                    type: integer
                    minimum: 0
                  tee_type:
                    type:
                      - string
                      - 'null'
                  attestation_verified:
                    type: boolean
                  expires_in_ms:
                    type: integer
                    minimum: 1
                  quote:
                    type: object
                    additionalProperties: false
                    required:
                      - sample_count
                      - audio_seconds
                      - rate_usd_per_second
                      - minimum_charge_usd
                      - price_usd
                      - currency
                    properties:
                      audio_seconds:
                        type: number
                        exclusiveMinimum: 0
                        maximum: 60
                      price_usd:
                        type: number
                        minimum: 0.0001
                        maximum: 0.006
                        description: >-
                          Exact sample-based charge, rounded up to micro-USDC
                          with a $0.0001 minimum: max(100, ceil(sample_count *
                          100 / 16000)) / 1000000. 4.2 seconds costs $0.000420.
                      currency:
                        type: string
                        enum:
                          - USDC
                      sample_count:
                        type: integer
                        minimum: 1
                        maximum: 960000
                      rate_usd_per_second:
                        type: number
                        enum:
                          - 0.0001
                      minimum_charge_usd:
                        type: number
                        enum:
                          - 0.0001
        '400':
          description: >-
            `invalid_request_error`: malformed metadata, unsupported
            model/protocol/language, or sample count outside 1-960,000.
        '401':
          description: '`invalid_api_key` or `invalid_session`.'
        '402':
          description: >-
            `payment_required`, `insufficient_credits`, `pod_cap_reached`, or
            `payment_error`.
        '403':
          description: '`insufficient_scope`: the API key lacks `grid:write`.'
        '404':
          description: >-
            Plain `Not found` while the guarded route is off or a private-canary
            credential is absent.
        '409':
          description: '`price_cap_unmet`: quote exceeds max_price.'
        '413':
          description: Reserve metadata JSON body exceeds 16 KiB.
        '503':
          description: >-
            `model_not_available`, `node_not_available`, `e2e_unavailable`, or
            `server_error`: ready capacity or reservation transport is
            unavailable.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.