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

# Get Job Status

> Get batch job status and progress counters.

## Overview

Get the current status and progress of a batch job.

This response does **not** include transcript text. After a terminal status, call [Get Job Files](/api/STTBatch/Get_Job_Files), then `GET` each `transcript_url`.

## Authentication

| Header         | Required | Description                    |
| -------------- | -------- | ------------------------------ |
| `X-API-Key-ID` | Yes      | Your Gnani Prisma v2.5 API key |

## Path Parameters

<Warning>
  In **Try it**, paste a real `job_id` from [Create Job](/api/STTBatch/Create_Job) before clicking Send. Leaving the placeholder `{job_id}` in the URL returns `422`.
</Warning>

<ParamField path="job_id" type="string" required default="019fa854-1db0-7e45-a026-7a6b09ff6d7c">
  Job ID returned by [Create Job](/api/STTBatch/Create_Job). Replace with your own `job_id` before sending.
</ParamField>

## Polling guidance

Live lifecycle observed:

```text theme={null}
CREATED → STARTING → QUEUED → IN_PROGRESS → COMPLETED
```

| Status            | Terminal | Next step                                     |
| ----------------- | -------- | --------------------------------------------- |
| `COMPLETED`       | Yes      | Call `/files`, then GET each `transcript_url` |
| `PARTIAL_FAILURE` | Yes      | Same — fetch successful files via `/files`    |
| `FAILED`          | Yes      | Inspect `/files` + `error_message`            |
| `START_FAILED`    | Yes      | Read `cancel_reason`                          |
| `CANCELLED`       | Yes      | Done                                          |

Poll no faster than every **10 seconds**. For 100+ file jobs, prefer every **30 seconds**.

## Example cURL

```bash theme={null}
curl --request GET \
  --url https://api.vachana.ai/stt/v3/batch/jobs/019fa79e-81f9-7a8a-a446-6eff16ddec30 \
  --header 'X-API-Key-ID: <YOUR_API_KEY>'
```

## Response

### Success — completed (`200`)

```json theme={null}
{
  "job_id": "019fa79e-81f9-7a8a-a446-6eff16ddec30",
  "status": "COMPLETED",
  "config": {
    "model": "gnani-prisma-v2.5",
    "mode": "transcribe",
    "language_code": "en-IN",
    "with_diarization": false,
    "num_speakers": null,
    "is_multi_channel": false
  },
  "progress": {
    "total_files": 1,
    "completed_files": 1,
    "failed_files": 0,
    "in_progress_files": 0,
    "queued_files": 0,
    "cancelled_files": 0
  },
  "cancel_reason": null,
  "created_at": "2026-07-28T07:26:50.926489Z",
  "started_at": "2026-07-28T07:26:52.421366Z",
  "completed_at": "2026-07-28T07:27:24.621462Z",
  "cancelled_at": null,
  "updated_at": "2026-07-28T07:27:24.621676Z"
}
```

### Success — start failed (`200`)

Returned when public URLs cannot be fetched:

```json theme={null}
{
  "job_id": "019fa79c-ec88-770c-b498-371fc21fb40e",
  "status": "START_FAILED",
  "config": {
    "model": "gnani-prisma-v2.5",
    "mode": "transcribe",
    "language_code": "en-IN",
    "with_diarization": false,
    "num_speakers": null,
    "is_multi_channel": false
  },
  "progress": {
    "total_files": 0,
    "completed_files": 0,
    "failed_files": 0,
    "in_progress_files": 0,
    "queued_files": 0,
    "cancelled_files": 0
  },
  "cancel_reason": "All provided paths were invalid — nothing to process.",
  "created_at": "2026-07-28T07:25:07.137907Z",
  "started_at": null,
  "completed_at": null,
  "cancelled_at": null,
  "updated_at": "2026-07-28T07:27:28.390415Z"
}
```

### Error responses

**404 Job not found**

```json theme={null}
{
  "error": "JOB_NOT_FOUND",
  "message": "Job 01900000-0000-7000-8000-000000000000 not found"
}
```

<ResponseField name="status" type="string">
  Current job status (`CREATED`, `QUEUED`, `IN_PROGRESS`, `COMPLETED`, `START_FAILED`, …).
</ResponseField>

<ResponseField name="progress" type="object">
  Per-file counters: total, completed, failed, in progress, queued, cancelled.
</ResponseField>

<ResponseField name="cancel_reason" type="string">
  Present for failures such as `START_FAILED`.
</ResponseField>

## Use Cases

* Polling until a job reaches a terminal status
* Debugging `START_FAILED` via `cancel_reason`

Next: [Get Job Files](/api/STTBatch/Get_Job_Files)


## OpenAPI

````yaml STTBatch.yml GET /stt/v3/batch/jobs/{job_id}
openapi: 3.1.0
info:
  title: Gnani Speech-to-Text Batch API
  version: 3.0.0
  description: >
    Batch STT Jobs API for asynchronous transcription of long or multiple audio
    files.


    Authenticate every request with the `X-API-Key-ID` header.
servers:
  - url: https://api.vachana.ai
    description: Production
security:
  - ApiKeyAuth: []
paths:
  /stt/v3/batch/jobs/{job_id}:
    get:
      tags:
        - Speech-to-Text (Batch)
      summary: Get Job Status
      description: >-
        Get batch job status and progress counters. Does not include transcript
        text.
      operationId: get_batch_job
      parameters:
        - $ref: '#/components/parameters/JobId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
              example:
                job_id: 019fa79e-81f9-7a8a-a446-6eff16ddec30
                status: COMPLETED
                config:
                  model: gnani-prisma-v2.5
                  mode: transcribe
                  language_code: en-IN
                  with_diarization: false
                  num_speakers: null
                  is_multi_channel: false
                progress:
                  total_files: 1
                  completed_files: 1
                  failed_files: 0
                  in_progress_files: 0
                  queued_files: 0
                  cancelled_files: 0
components:
  parameters:
    JobId:
      name: job_id
      in: path
      required: true
      description: >-
        Job ID returned by Create Job. Paste the UUID from the Create Job
        response.
      schema:
        type: string
        default: 019fa854-1db0-7e45-a026-7a6b09ff6d7c
      example: 019fa854-1db0-7e45-a026-7a6b09ff6d7c
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-API-Key-ID
      description: Your Gnani Prisma v2.5 API key

````