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

# BatchObject

## Fields

| Field | Type | Required | Description |
| - | - | - | - |
| `completion_window` | [components.BatchObjectCompletionWindow](../components/batchobjectcompletionwindow.mdx) | ✅ | N/A |
| `created_at` | *int* | ✅ | N/A |
| `endpoint` | *str* | ✅ | N/A |
| `error` | [Nullable\[components.BatchObjectError\]](../components/batchobjecterror.mdx) | ✅ | N/A |
| `expires_at` | *Nullable\[int]* | ✅ | Unix timestamp after which the assigned provider no longer completes unfinished requests. Derived from the provider's documented batch window, so it can exceed `created_at` plus `completion_window` (Google Vertex can take up to 96 hours). `null` when the provider documents no hard expiry. |
| `finalized_at` | *Nullable\[int]* | ✅ | N/A |
| `id` | *str* | ✅ | N/A |
| `model` | *str* | ✅ | N/A |
| `object` | [components.BatchObjectObjectBatch](../components/batchobjectobjectbatch.mdx) | ✅ | N/A |
| `provider` | *Nullable\[str]* | ✅ | Provider OpenRouter assigned to run the batch, using the same name as the `provider` field of sync responses. |
| `request_counts` | [components.BatchObjectRequestCounts](../components/batchobjectrequestcounts.mdx) | ✅ | N/A |
| `results` | List\[[components.Result](../components/result.mdx)] | ✅ | N/A |
| `status` | [components.BatchObjectStatus](../components/batchobjectstatus.mdx) | ✅ | N/A |
| `usage` | [Nullable\[components.BatchObjectUsage\]](../components/batchobjectusage.mdx) | ✅ | N/A |
