# List Jobs


GET /jobs

```
GET /jobs
```

Returns a paginated list of jobs. Use filters to find jobs by kind, status, or input URL. For the CLI equivalent, see [`ittybit jobs list`](/cli/jobs).

## Parameters

| Param    | Type    | Description                                                            |
| -------- | ------- | ---------------------------------------------------------------------- |
| `kind`   | string  | Filter: `video` · `audio` · `image` · `animation` · `adaptive_video`   |
| `status` | string  | Filter: `queued` · `processing` · `succeeded` · `failed` · `cancelled` |
| `input`  | string  | Filter by input URL (exact match)                                      |
| `limit`  | integer | 1–100 (default 20)                                                     |
| `after`  | string  | Cursor — items after this ID                                           |
| `before` | string  | Cursor — items before this ID                                          |
| `order`  | string  | `asc` · `desc` (default `desc`)                                        |

## Examples

List recent video jobs:

<CodeGroup labels={["CLI", "TypeScript", "Python", "curl"]}>
```bash
ittybit jobs \
  --kind video \
  --limit 10
```

```typescript
const res = await fetch('https://api.ittybit.com/jobs?kind=video&limit=10', {
  headers: {
    Authorization: `Bearer ${process.env.ITTYBIT_API_KEY}`,
  },
});
const data = await res.json();
```

```python

res = requests.get(
    "https://api.ittybit.com/jobs?kind=video&limit=10",
    headers={"Authorization": f"Bearer {api_key}"},
)
data = res.json()
```

```bash
curl "https://api.ittybit.com/jobs?kind=video&limit=10" \
  -H "Authorization: Bearer $ITTYBIT_API_KEY"
```

</CodeGroup>

List failed jobs:

<CodeGroup labels={["CLI", "TypeScript", "Python", "curl"]}>
```bash
ittybit jobs \
  --status failed \
  --limit 20
```

```typescript
const res = await fetch('https://api.ittybit.com/jobs?status=failed&limit=20', {
  headers: {
    Authorization: `Bearer ${process.env.ITTYBIT_API_KEY}`,
  },
});
const data = await res.json();
```

```python

res = requests.get(
    "https://api.ittybit.com/jobs?status=failed&limit=20",
    headers={"Authorization": f"Bearer {api_key}"},
)
data = res.json()
```

```bash
curl "https://api.ittybit.com/jobs?status=failed&limit=20" \
  -H "Authorization: Bearer $ITTYBIT_API_KEY"
```

</CodeGroup>

## Response `200`

```json
[
  {
    "id": "job_abc123",
    "object": "job",
    "kind": "video",
    "input": "https://example.com/video.mp4",
    "output": "https://store.ittybit.net/org_123/video.mp4",
    "options": { "format": "mp4", "quality": "high" },
    "metadata": {},
    "status": "succeeded",
    "error": null,
    "created_at": 1711900000000,
    "started_at": 1711900001000,
    "finished_at": 1711900045000,
    "updated_at": 1711900045000
  }
]
```

## See also

- [Create Job](/api/create-job) — start a new processing job
- [Get Job](/api/get-job) — get full details and task results for a single job
- [CLI `jobs list`](/cli/jobs) — list jobs from the command line