---
title: "Retrieve batch results"
method: GET
path: "/batch/{id}/results"
tags: ["batch"]
---

# Retrieve batch results

`GET /batch/{id}/results`

Returns the per-task results for a batch operation. Call this endpoint after polling `/progress` until `status` is `completed`. Each entry in `results` corresponds to one task, with the task outcome in `result` and any error message in `message`.

## Path parameters

- `id` string, required

## Headers

- `Authorization` string, required
- `X-Api-Key` string, required
- `X-API-Version` string

## Response `200`

Successful response with batch results

- BatchResultsResponse
  - `version` string, required
  - `batch_id` string, required — The batch identifier
  - `results` BatchResultsResponseResultsItems[], required — One entry per task in the batch
    - `task` integer, required — Internal task ID
    - `result` unknown
    - `message` string — Error message if the task failed. Null on success.

## Other responses

- `401` — Unauthorized - Authentication required or invalid credentials
- `403` — Forbidden - Access denied or insufficient permissions
- `404` — Not found — no batch with this ID, or it does not belong to the authenticated user (the response is identical either way, by design, so existence of another user's batch is never revealed)

## Changes

- **2026-08-19** `c0b5cf6c7a72` — 1 info
  - added the non-success response with the status `404`
- **2026-08-17** `c231509a03cf` — 2 breaking, 4 info
  - the `message` response's property type/format changed from `string`/`` to ``/`` for status `401`
  - the `message` response's property type/format changed from `string`/`` to ``/`` for status `403`
  - the response property `code` became required for the status `401`
  - the response property `code` became required for the status `403`
  - …2 more
- **2026-08-13** `1f089f3e34d9` — 6 breaking
  - the response property `code` became optional for the status `401`
  - the response property `code` became optional for the status `403`
  - the response property `message` became optional for the status `401`
  - the response property `message` became optional for the status `403`
  - …2 more

[Change history](https://skmtc.dev/ottimate/apis/api-reference/changes/batch/:id/results/get.md)

---

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