Skip to content
OpenRelay is in early access, and the /v1 API is stable. New capabilities ship in the changelog.
API ReferenceInferenceBatches

Get a batch by id

Returns one batch with its status, priority and request counts, plus its usage once any is recorded and the output and error file ids once written. Poll it to track progress.

Required permission

Requires the batch.read permission. See Permissions for the roles and API key permissions that include it.

Command line

The orl CLI wraps this endpoint:

orl batches get <id>
GET
/v1/batches/{id}

Authorization

apiKey
headerAuthorizationBearer <token>

OpenRelay API key. Send it as Authorization: Bearer or_… (legacy vl_… keys still work).

Path Parameters

id*string

Response Body

OK

application/json
  1. response

A batch inference job (OpenAI-compatible).

id*string

Batch id (batch_…).

object*"batch"
Value in"batch"
endpoint*string

The API family every record in the batch calls.

input_file_id*string
completion_window*"24h"
Value in"24h"
priority*string

The scheduling tier this batch runs and is billed at. Batches created before the tier existed read as standard.

Value in"standard""expedited"
status*string

Lifecycle state. validating → in_progress → finalizing → completed | failed | expired; cancelling → cancelled. A batch is in_progress while it waits for GPU capacity too; in_progress_at says when its requests started running.

Value in"validating""in_progress""finalizing""completed""failed""expired""cancelling""cancelled"
model?string

Model id, settled from the input file during validation.

output_file_id?string

Present once results are written; fetch its content for successful records.

error_file_id?string

Present once results are written; fetch its content for failed records.

created_at*integer

Unix timestamp (seconds).

Formatint64
in_progress_at*integer

Unix timestamp (seconds) when the batch's first requests started running. Always present and null until then, so an in_progress batch with a null in_progress_at is still queued for GPU capacity.

Formatint64
expires_at?integer

When the completion window closes (created_at + 24h).

Formatint64
completed_at?integer
Formatint64
failed_at?integer
Formatint64
expired_at?integer
Formatint64
cancelled_at?integer
Formatint64
request_counts*

Progress counters, settled as the batch validates and shards complete.

usage?

Rolled-up token and cost totals, present once any progress is recorded. cost_nano_usd is the price you pay (batch discount applied), in nano-USD so sub-cent batches stay exact.

metadata?

Your key-value pairs, echoed back unchanged.

Example Request
curl -X GET 'https://inference.openrelay.inc/v1/batches/string'
Example Response
{  "id": "string",  "object": "batch",  "endpoint": "string",  "input_file_id": "string",  "completion_window": "24h",  "priority": "standard",  "status": "validating",  "model": "string",  "output_file_id": "string",  "error_file_id": "string",  "created_at": 0,  "in_progress_at": 0,  "expires_at": 0,  "completed_at": 0,  "failed_at": 0,  "expired_at": 0,  "cancelled_at": 0,  "request_counts": {    "total": 0,    "completed": 0,    "failed": 0  },  "usage": {    "input_tokens": 0,    "output_tokens": 0,    "cost_nano_usd": 0  },  "metadata": {    "property1": "string",    "property2": "string"  }}