---
title: "Poll an async batch"
method: GET
path: "/v1/reflex/asynchronous_batches/{batch_id}"
tags: ["reflex"]
---

# Poll an async batch

`GET /v1/reflex/asynchronous_batches/{batch_id}`

Read a batch's status. `request_counts` advances as the worker drains the queue; `status` moves `queued → in_progress → completed`. Poll on an interval rather than holding a request open.

## Path parameters

- `batch_id` string, required — Identifier returned by the async batch upload.

## Response `200`

Batch status.

- ReflexBatch — Async batch status. `status` moves `queued → in_progress → completed`.
  - `id` string, required — Identifier for the queued batch.
  - `object` string, required — Object type, always `reflex.batch`.
  - `status` 'queued' | 'in_progress' | 'completed', required — Where the batch is in the queue.
  - `request_counts` object, required — Progress counters, advancing as the worker drains the queue.
    - `total` integer, required — Rows accepted into the batch.
    - `completed` integer, required — Rows classified so far.
    - `failed` integer, required — Rows that failed and will not be retried.
  - `created_at` integer, required — Unix timestamp (seconds).

## Other responses

- `400` — Malformed request — missing or invalid fields.
- `401` — Missing or invalid API key.
- `404` — The requested resource does not exist.
- `429` — Rate limited — retry after the interval in the Retry-After header.
- `500` — Internal error — safe to retry with backoff.

---

[API](https://skmtc.dev/morphllm/apis/morph-api.md) · [All operations](https://skmtc.dev/morphllm/apis/morph-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/morphllm/morph-api/revisions/b9a74274b2ab/schema)
