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

# Poll a long-audio transcription

> Poll every 10–30 seconds until `status` is `completed`. Use the same API key
that started the operation. Results are kept for 24 hours.




## OpenAPI

````yaml /openapi-stt.yaml get /batch/{operationId}
openapi: 3.0.0
info:
  title: Omnia Speech-to-Text API
  description: >
    Standalone transcription. Send audio in, get text back — no agent involved.


    Three modes:

    - `POST /transcribe` — files up to 60 seconds, synchronous.

    - `POST /batch` — long audio up to 8 hours, asynchronous with polling.

    - `wss://stt.omnia-voice.com/stream` and `/v2/stream` — live audio.
    WebSocket
      endpoints are documented on the [Streaming protocol](/api-reference/speech-to-text/streaming) page.

    Authenticate with your Omnia API key in the `X-API-Key` header.
  version: 2.1.0
  contact:
    email: support@omnia-voice.com
servers:
  - url: https://stt.omnia-voice.com
    description: Production
security:
  - ApiKeyAuth: []
tags:
  - name: Transcription
    description: File and long-audio transcription
  - name: Languages
    description: Supported languages
paths:
  /batch/{operationId}:
    get:
      tags:
        - Transcription
      summary: Poll a long-audio transcription
      description: >
        Poll every 10–30 seconds until `status` is `completed`. Use the same API
        key

        that started the operation. Results are kept for 24 hours.
      operationId: getBatch
      parameters:
        - $ref: '#/components/parameters/OperationId'
      responses:
        '200':
          description: Current state of the operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  operationId:
                    type: string
                  status:
                    type: string
                    enum:
                      - awaiting_upload
                      - processing
                      - completed
                      - error
                  progressPercent:
                    type: integer
                    description: While processing.
                  transcript:
                    type: string
                    description: When completed.
                  segments:
                    type: array
                    items:
                      $ref: '#/components/schemas/Segment'
                  speakerTurns:
                    type: array
                    description: When completed with diarization.
                    items:
                      $ref: '#/components/schemas/SpeakerTurn'
                  audioBytes:
                    type: integer
                  durationMs:
                    type: integer
                    description: Billed audio duration in milliseconds.
                  sessionId:
                    type: string
                  error:
                    type: string
                    description: When status is `error`.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          description: Unknown operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  parameters:
    OperationId:
      name: operationId
      in: path
      required: true
      schema:
        type: string
        example: batch_a1b2c3d4-0000-0000-0000-000000000000
  schemas:
    Segment:
      type: object
      properties:
        transcript:
          type: string
        confidence:
          type: number
          description: Not populated by the engine; always 0.
        language:
          type: string
          description: Detected language of this segment (BCP-47).
          example: fi-FI
        isFinal:
          type: boolean
    SpeakerTurn:
      type: object
      properties:
        speaker:
          type: string
          description: Speaker number, in order of first appearance.
          example: '1'
        transcript:
          type: string
    Error:
      type: object
      properties:
        error:
          type: string
          description: Human-readable description.
        message:
          type: string
          description: Same text as `error`.
        code:
          type: string
          description: Machine-readable code.
          example: INVALID_API_KEY
  responses:
    Unauthorized:
      description: Missing or invalid API key
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-API-Key
      description: Your Omnia API key (`om_…` or `ck_…`)

````