---
title: "POST /transcribe/status"
method: POST
path: "/transcribe/status"
---

# POST /transcribe/status

`POST /transcribe/status`

Check the status of an asynchronous transcription job (Elevenlabs-STT). Poll this endpoint to get the transcription results when the job is completed.

## Request body

- TranscribeStatusRequest
  - `runId` string, required — Unique identifier for the transcription job
  - `cost` number — Cost of the transcription (from initial response)
  - `paymentSource` string — Payment source used (from initial response)
  - `isApiRequest` boolean — Whether this is an API request (from initial response)
  - `fileName` string — Original file name (from initial response)
  - `fileSize` integer — File size in bytes (from initial response)
  - `chargedDuration` number — Duration charged for billing (from initial response)
  - `diarize` boolean — Whether speaker diarization is enabled (from initial response)

## Response `200`

Transcription status response

- TranscribeStatusResponse
  - `status` 'pending' | 'processing' | 'completed' | 'failed', required — Current status of the transcription job
  - `transcription` string — The transcribed text (available when status is 'completed')
  - `metadata` object — Transcription metadata (available when status is 'completed')
    - `fileName` string — Original file name
    - `fileSize` integer — File size in bytes
    - `chargedDuration` number — Duration charged for billing (in minutes)
    - `actualDuration` number — Actual audio duration (in minutes)
    - `language` string — Detected language code
    - `cost` number — Cost of the transcription
    - `currency` string — Currency of the cost
    - `model` string — Model used for transcription
  - `words` object[] — Word-level timestamps and speaker information (Elevenlabs-STT only)
    - `text` string — The word or text segment
    - `start` number — Start time in seconds
    - `end` number — End time in seconds
    - `type` 'word' | 'punctuation' — Type of segment
    - `speaker_id` string — Speaker identifier (when diarization is enabled)
  - `diarization` object — Speaker diarization results (when enabled)
    - `segments` object[] — Speaker segments with timestamps
      - `speaker` string — Speaker label (e.g., 'Speaker 1')
      - `text` string — Text spoken by this speaker
      - `start` number — Start time in seconds
      - `end` number — End time in seconds
  - `error` string — Error message (available when status is 'failed')

## Other responses

- `400` — Bad Request - Missing required parameters
- `401` — Unauthorized - Invalid or missing API key
- `404` — Not Found - Transcription job not found
- `500` — Internal Server Error

---

[API](https://skmtc.dev/nano-gpt/apis/nanogpt-api.md) · [All operations](https://skmtc.dev/nano-gpt/apis/nanogpt-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/nano-gpt/nanogpt-api/revisions/584e96d146b0/schema)
