Skip to main content
GET
Get a batch
Use this endpoint to poll a batch until it reaches completed, cancelled, or expired. When the batch completes, resultsUrl holds a short-lived presigned URL for the JSONL results file; re-fetch the batch to get a fresh URL.

Get your Exa API key

Authorizations

x-api-key
string
header
required

Pass your Exa API key in the x-api-key header. You can also authenticate with Authorization: Bearer .

Headers

Exa-Beta
enum<string>
required

Required beta token for the Batch API.

Available options:
batches-2026-06-06

Path Parameters

id
string
required

Batch ID.

Minimum string length: 1
Example:

"batch_01j7x9v0m2n4p6q8r0s2t4v6w8"

Response

OK

id
string
required

Batch ID. New batch IDs are returned with the batch_ prefix.

Example:

"batch_01j7x9v0m2n4p6q8r0s2t4v6w8"

object
string
required

The object type, always batch.

Allowed value: "batch"
status
enum<string>
required

Lifecycle status of the batch.

Available options:
in_progress,
completed,
cancelling,
cancelled,
expired
requestCounts
object
required
createdAt
string<date-time>
required

When the batch was created.

expiresAt
string<date-time>
required

When the batch expires, or null if it does not expire.

endedAt
string<date-time>
required

When the batch reached a terminal status, or null while it is still running.

resultsUrl
string | null
required

Short-lived presigned download URL for the batch results file (JSONL), or null until the batch completes. This is a direct object-store download link, not an API route; fetch it as-is and re-fetch the batch to mint a fresh URL once it expires.

metadata
object
required

Caller-provided key-value metadata for your own tracking.

Example: