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

# List Batch Rows

> List the rows of a batch

Lists rows with their state. Use it to find each row's `id` for the upload and fetch calls. Customer numbers are masked, and the query string of `recording_url` is removed.

## Request

### Headers

**Authorization** `string` *required*

Bearer token with your API key: `Bearer sk_...`

### Path

**batchId** `string` *required*

Batch ID (UUID)

### Query

**state** `string`

One of `draft`, `invalid`, `blocked`, `awaiting_asset`, `awaiting_commit`, `queued`, `processing`, `completed`, `needs_attention`, `uncertain`, `cancelled`, `imported`

**limit** `integer` (default: 50)

1–200

**offset** `integer` (default: 0)

Rows to skip

## Response

**200** Each row also has `asset` and `job` (`id`, `status`, `stages`) once audio exists.

```json theme={null}
{
  "success": true,
  "data": [
    {
      "id": "c1d2e3f4-a5b6-4c7d-9e8f-7a6b5c4d3e2f",
      "row_number": 1,
      "state": "draft",
      "external_call_ref": "A-1",
      "file_name": "one.mp3",
      "recording_url": null,
      "customer_number_masked": null,
      "validation": {
        "status": "valid",
        "errors": [],
        "blocked_reason": null
      },
      "committed": false,
      "cancelled": false
    }
  ],
  "pagination": {
    "total": 2,
    "limit": 50,
    "offset": 0
  }
}
```

## Errors

Errors use `{ "success": false, "message": "...", "code": "..." }`. See the [overview](https://docs.60db.ai/api-reference/call-analysis/overview.md#errors) for the codes every route can return.

### This endpoint

| Status | Code | When |
| - | - | - |
| 404 | `NOT_FOUND` | Not a batch of an analyzer in this workspace |

## Example

```bash cURL theme={null}
curl 'https://api.60db.ai/deep-analytics/imports/batches/9b7e6d5c-4b3a-4291-8f0e-1d2c3b4a5968/items?state=draft' \
  -H "Authorization: Bearer your-api-key"
```

```javascript JavaScript theme={null}
const res = await fetch('https://api.60db.ai/deep-analytics/imports/batches/9b7e6d5c-4b3a-4291-8f0e-1d2c3b4a5968/items?state=draft', {
  headers: { Authorization: 'Bearer your-api-key' },
});
const { success, data, message, code } = await res.json();
if (!success) throw new Error(`${code}: ${message}`);
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.