---
title: "GET /v1/jobs/{jobId}/plate"
description: "Read a job's plate layout"
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 the well rows saved for a job you can read, ordered by row and then column. Each row gives the well, its row and column numbers, the compound label and molecule id, and the volume and concentration. A job with no saved plate returns an empty `rows` array.

If reading the rows fails, the route still returns 200 with an empty `rows` array and an `X-Plate-Error: fetch_failed` header, so check that header before treating an empty result as a job with no plate. A successful read sets `X-Plate-Rows` to the row count.

## Request

#### Path parameters

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

## Responses

### `200` OK

The job's plate rows

Response shape:

- `success` (enum (true)) —

- `rows` (object[]) —

### `400` Bad Request

The job id is missing

Response shape: `object`

### `401` Unauthorized

Authentication required

Response shape: `object`

### `404` Not Found

The job does not exist, you cannot read it, it is outside your API key's project scope, or the id is not a job UUID. All of these return the same body.

Response shape: `object`

### `429` Too Many Requests

Rate limit exceeded

Response shape: `object`

**curl**

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

**JavaScript**

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