List the current user's batches with pagination.
GET /api/v1/forward/batches
Returns the Batches created by the owner associated with the current credential, sorted by creation time in descending order.
Headers
| Header | Required | Description |
|---|---|---|
Authorization | Yes | Bearer <PAT or SAT> |
Query parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
status | string | No | - | Filter by status. |
limit | integer | No | 20 | Page size. Maximum 100. |
after_id | string | No | - | Cursor for forward pagination. |
before_id | string | No | - | Cursor for backward pagination. |
Example request
Example response
HTTP 200 OK
Response fields
| Field | Type | Description |
|---|---|---|
object | string | Always list. |
data | array | Batch objects on the current page. |
first_id | string | ID of the first record on the page. |
last_id | string | ID of the last record on the page. |
has_more | boolean | Whether more records are available. |
data always returns ignore_idle_window as a boolean. Historical Batches and Batches created without the field use false. queue_reason is an optional string that may appear only in validating or queued.
Scheduling fields
owner is the business ownership scope associated with the credential: a PAT is scoped to the current user, while an administrator SAT is scoped to its organization and workspace.
ignore_idle_window=true makes the Batch eligible outside the idle window; it does not mean immediate execution or higher priority. Per-owner mutual exclusion, global Batch capacity, global Task capacity, the validating → queued gate, and FIFO ordering still apply. Inside the idle window, regular Batches and Batches that ignore the window share FIFO order by created_at and ID; ignoring the window does not move a Batch ahead. completion_window still starts at created_at and includes validation, queueing, and execution time; it is not extended or reset.
For the entire page, queue_reason is a dynamic snapshot based on the same scheduling state at read time. It is not persisted and may change immediately after the response. If the snapshot cannot be loaded, the field is omitted without affecting a successful list response. The first matching reason in the following priority order is returned:
| Priority | Value | Meaning |
|---|---|---|
| 1 | idle_window | The current time is outside the idle window and this Batch does not ignore it. |
| 2 | owner_processing | Another Batch for the same owner is already processing. |
| 3 | global_capacity | The global number of processing Batches has reached capacity. |
| 4 | scheduler_pending | The Batch is queued, none of the first three conditions blocks it, and it is waiting for Scheduler activation. |
validating, only the first three confirmed external blockers can be returned. When none applies, the field is omitted; scheduler_pending is not returned. queue_reason is omitted for processing, finalizing, cancelling, expiring, and all terminal states. Reaching global capacity does not prevent Create Batch from returning validating; subsequent waiting can be represented by global_capacity.
Error codes
| HTTP | Type | Code | Trigger |
|---|---|---|---|
| 400 | invalid_request_error | invalid_pagination | Pagination parameters are invalid. |
| 401 | authentication_error | authentication_required | PAT or SAT is invalid or expired. |
Notes
- When
has_more=true, uselast_idasafter_idto continue paging. output_file_idanderror_file_idonly appear after a terminal state is reached.error_messageonly appears whenstatusisfailed.usagefollows the same definition as batch details. It returns the current aggregatetotal_creditsafter at least one subtask has valid CAS Session usage; otherwise it isnull. The unit is CAS Credit, not tokens or currency.- Only Batches created by the current owner are returned. PATs are isolated by current user; administrator SATs are isolated by organization and workspace.

