---
title: "GET /v1/jobs/{jobId}/context"
description: "Read a job's context counts"
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).

Returns counts and flags that say which follow-up exports a job supports: poses, plate rows, vendor rows, routes, molecules, extractions, descriptors, BLAST hits and proteins, plus QC, the overall ADMET score, a completeness score and a checkpoint summary. `manifest` is `true` when the job has a manifest and `null` otherwise; the manifest itself is not returned.

The response is cached privately for 30 seconds. A job you cannot read, and a job outside your API key's project scope, both return 403 on this route.

## Request

#### Path parameters

- `jobId` (string (uuid)) —
Job UUID.

## Responses

### `200` OK

The job context

Response shape:

- `jobId` (string (uuid)) —

- `posesCount` (integer) —

- `plateRows` (integer) —

- `vendorRows` (integer) —

- `routesCount` (integer) —

- `moleculesCount` (integer) —

- `qc` (object) —

#### qc properties

- `zprime` (number) —

- `cv` (number) —

- `overallAdmetScore` (number) —

- `manifest` (boolean) —
`true` when the job has a manifest, otherwise `null`.

- `biobertRan` (boolean) —

- `completenessScore` (object) —

#### completenessScore properties

- `total` (number) —

- `categories` (object) —

- `checkpointsSummary` (object) —

#### checkpointsSummary properties

- `completed` (string[]) —

- `failed` (string[]) —

- `pending` (string[]) —

- `running` (string[]) —

- `extractionsCount` (integer) —

- `biobertCount` (integer) —

- `descriptorsCount` (integer) —

- `fingerprintsAvailable` (boolean) —

- `blastHitsCount` (integer) —

- `proteinCount` (integer) —

- `auditEnabled` (boolean) —

### `400` Bad Request

The job id is missing or is not a UUID

Response shape: `object`

### `401` Unauthorized

Authentication required

Response shape: `object`

### `403` Forbidden

You cannot read the job, or it is outside your API key's project scope

Response shape: `object`

### `404` Not Found

The job has no context data yet (`code` `NOT_FOUND`)

Response shape: `object`

### `405`

The method is not GET

Response shape: `object`

### `429` Too Many Requests

Rate limit exceeded

Response shape: `object`

### `500` Internal Server Error

Reading the context failed

Response shape: `object`

**curl**

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

**JavaScript**

```js
const res = await fetch('https://ivybiosciences.com/api/v1/jobs/{jobId}/context', {
  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/{jobId}/context",
    headers={"Authorization": f"Bearer {os.environ['IVY_API_KEY']}"},
)
data = res.json()
```
