---
title: GET /api/v1/jobs
description: List your jobs
full: true
---

**Auth:** required. Send an `ivy_` API key (`Authorization: Bearer ivy_…` or `X-Ivy-Api-Key`), a Clerk session JWT (`Authorization: Bearer …`) or the Clerk `__session` cookie (browser sessions). See [Authentication](/docs/api/authentication).

Page through the jobs you own or can reach through your projects, newest first. Filters combine; `page` / `pageSize` paginate by offset, and `next_cursor` in the response gives the cursor for the next page.

## Request

#### Query parameters

- `page` (integer) —
1-based page number.

- `pageSize` (integer) —
Jobs per page (capped at 1000).

- `status` (string) —
Comma-separated job statuses to include.

- `type` (string) —
Job type (tool) to include.

- `projectId` (string) —
Only jobs in this project.

- `q` (string) —
Job id (exact) or text matched against the job title.

- `start` (string (date-time)) —
Only jobs submitted at or after this time.

- `end` (string (date-time)) —
Only jobs submitted at or before this time.

- `onlyActive` (boolean) —
Only jobs that have not reached a terminal status.

- `cursorSubmittedAt` (string) —
Cursor from `next_cursor.cursorSubmittedAt`.

- `cursorId` (string) —
Cursor from `next_cursor.cursorId`.

## Responses

### `200` OK

A page of jobs

Response shape:

- `jobs` (object[]) —
Job records, newest first.

- `total_count` (integer) —
Total matching jobs, when known.

- `page` (integer) —
1-based page number.

- `page_size` (integer) —
Jobs per page after the cap.

- `total_pages` (integer) —

- `has_more` (boolean) —

- `next_cursor` (object) —

#### next_cursor properties

- `cursorSubmittedAt` (string) —

- `cursorId` (string) —

### `401` Unauthorized

Missing or invalid credentials

### `429` Too Many Requests

Rate limited

**curl**

```bash
curl -X GET 'https://ivybiosciences.com/api/v1/jobs' \
  -H "Authorization: Bearer $IVY_API_KEY"
```

**JavaScript**

```js
const res = await fetch('https://ivybiosciences.com/api/v1/jobs', {
  method: 'GET',
  headers: {
    'Authorization': `Bearer ${process.env.IVY_API_KEY}`,
  },
});
const data = await res.json();
```

**Python**

```python
import os, requests

res = requests.get(
    "https://ivybiosciences.com/api/v1/jobs",
    headers={"Authorization": f"Bearer {os.environ['IVY_API_KEY']}"},
)
data = res.json()
```
