> ## 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.

# Submit a sealed transcription

> Submit a valid reservation token and one client-sealed JSON envelope. This route never accepts multipart form data, plaintext audio, filenames, URLs, containers, streaming chunks, or legacy/base58 ciphertext. The client must verify the reserved node's key binding before sealing and verify its signature over the sealed result before decryption. Transcription is default off and unavailable until public discovery returns `whisper-1`.

Submit a valid reservation token and the client-sealed JSON audio envelope. The endpoint rejects
plain audio, multipart form data, paths, URLs, and legacy encryption formats.

Use the TypeScript or Python SDK helper. It verifies the reserved node key binding, seals the PCM,
checks the node signature over the encrypted result, decrypts it, and validates every result
binding before returning the transcript.

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


## OpenAPI

````yaml POST /v1/audio/transcriptions
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:
    servers:
      - url: https://grid.x402compute.cc
    post:
      tags:
        - SGL Grid
      summary: Submit a sealed transcription
      description: >-
        Submit a valid reservation token and one client-sealed JSON envelope.
        This route never accepts multipart form data, plaintext audio,
        filenames, URLs, containers, streaming chunks, or legacy/base58
        ciphertext. The client must verify the reserved node's key binding
        before sealing and verify its signature over the sealed result before
        decryption. Transcription is default off and unavailable until public
        discovery returns `whisper-1`.
      parameters:
        - name: X-API-Key
          in: header
          required: false
          schema:
            type: string
            example: x402c_...
          description: Use the same credit/payment identity as the reservation.
        - name: X-Payment
          in: header
          required: false
          schema:
            type: string
          description: x402 payment payload bound to the reserved request.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: false
              required:
                - reservation_token
                - enc
              properties:
                reservation_token:
                  type: string
                enc:
                  type: object
                  additionalProperties: false
                  required:
                    - ciphertext
                    - client_ephemeral_pubkey
                    - client_response_pubkey
                    - algorithm
                    - encoding
                  properties:
                    ciphertext:
                      type: string
                      description: >-
                        Canonical base64 of nonce, ciphertext, and AEAD tag. The
                        decrypted payload contains the bound raw PCM.
                    client_ephemeral_pubkey:
                      type: string
                      description: Base58 X25519 ephemeral public key.
                    client_response_pubkey:
                      type: string
                      description: >-
                        Base58 X25519 response key bound into input AEAD and
                        used by the node to seal its result.
                    algorithm:
                      type: string
                      enum:
                        - x25519-xchacha20poly1305-hkdf-v2
                    encoding:
                      type: string
                      enum:
                        - base64
      responses:
        '200':
          description: >-
            A node-signed encrypted result plus validated usage. SDKs verify the
            signature before decrypting and expose the final typed transcript
            only after all bindings validate.
          content:
            application/json:
              schema:
                type: object
                required:
                  - job_id
                  - sealed_result
                  - result_envelope_signature
                  - result_envelope_version
                  - usage
                properties:
                  object:
                    type: string
                  job_id:
                    type: string
                    format: uuid
                  sealed_result:
                    type: object
                    additionalProperties: false
                    required:
                      - algorithm
                      - encoding
                      - ephemeral_public_key
                      - ciphertext
                    properties:
                      algorithm:
                        type: string
                        enum:
                          - x25519-xchacha20poly1305-hkdf-v2
                      encoding:
                        type: string
                        enum:
                          - base64
                      ephemeral_public_key:
                        type: string
                        description: Base58 node X25519 ephemeral public key.
                      ciphertext:
                        type: string
                        description: Canonical base64 sealed result.
                  result_envelope_signature:
                    type: string
                    description: >-
                      Base58 Ed25519 signature by the reserved node over the
                      public result envelope.
                  result_envelope_version:
                    type: string
                    enum:
                      - v1
                  usage:
                    type: object
                    additionalProperties: false
                    required:
                      - audio_seconds
                      - cost_usd
                    properties:
                      audio_seconds:
                        type: number
                        minimum: 0
                        maximum: 60
                        description: >-
                          Exact duration derived from authenticated PCM sample
                          count / 16000; never rounded to whole seconds.
                      cost_usd:
                        type: number
                        minimum: 0.0001
                        maximum: 0.006
                  billing_pending:
                    type: boolean
                    description: >-
                      Payment settlement or accounting needs reconciliation,
                      including an unknown settlement outcome. Do not resubmit;
                      reconcile by job/payment identity.
        '400':
          description: >-
            `invalid_request_error` or `transcription_input_invalid`; malformed
            audio is not charged.
        '401':
          description: '`invalid_api_key` or `invalid_session`.'
        '402':
          description: >-
            `payment_required`, `insufficient_credits`, `pod_cap_reached`, or a
            definitive `payment_error`.
        '403':
          description: '`insufficient_scope`: the API key lacks `grid:write`.'
        '404':
          description: Plain `Not found` while the guarded route is off.
        '409':
          description: >-
            Reservation or payment state cannot be safely retried. Reconcile the
            returned request/job/payment identity.
        '413':
          description: Encoded JSON body exceeds 8 MiB.
        '500':
          description: >-
            `server_error`: dispatch or billing finalization failed. Follow the
            response's charge/retry statement.
        '502':
          description: >-
            `inference_error`: a node failed or returned an unreadable,
            unsigned, or invalid result. No invalid transcript is returned or
            billed.
        '503':
          description: >-
            `model_not_available` or `node_not_available`:
            release/capability/confidential transport is unavailable.
        '504':
          description: >-
            `timeout`: transcription timed out. Reconcile the job state before
            creating a new reservation; there is no automatic submit retry.

````

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