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

Lists up to 500 vendor-ready rows derived from the job's recorded insights, highest score first. Each row has the compound id, vendor SKU and preferred supplier when the insight recorded them, a label, the insight's source and its score. Send `Accept: application/json` (or `?json=true`) to get JSON; any other request gets the same data as a formatted HTML page. The response is not cached and carries an `X-Items-Count` header.

You need access to the job (its owner, a project member or an administrator). With a project-scoped API key, a job outside the key's projects returns 404. Only `GET` is served.

## Request

#### Path parameters

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

#### Query parameters

- `json` (string) —
Set to `true` to get JSON without sending an `Accept` header.

## Responses

### `200` OK

The job's procurement items

Response shape:

- `items` (object[]) —
Up to 500 rows, highest score first

### `400` Bad Request

The job id is empty

Response shape: `object`

### `401` Unauthorized

Authentication required

Response shape: `object`

### `403` Forbidden

You cannot access the job

Response shape: `object`

### `404` Not Found

The job is outside your API key's project scope

Response shape: `object`

### `405`

The method is not `GET`; the `Allow` header says `GET`

Response shape: `object`

### `429` Too Many Requests

Rate limit exceeded

Response shape: `object`

### `500` Internal Server Error

Reading procurement items failed

Response shape: `object`

**curl**

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

**JavaScript**

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