---
title: "GET /v1/jobs/{jobId}/artifacts/list-verifications"
description: "List a job's file verification records"
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 verification records saved for a job you can read, newest first. Records exist only for checks made with `persist=true` on `POST /api/v1/jobs/{job_id}/artifacts/verify`.

All filters are optional and combine. `status` selects `match` (hash equals the expected hash), `mismatch` (it differs), `error` (the check failed) or `unknown` (no expected hash was given); any other value is ignored. `q` matches part of the file key. For the time window, `since` is used when it is given and `hours` only when `since` is empty; an unparseable `since` or `hours` is ignored.

## Request

#### Path parameters

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

#### Query parameters

- `limit` (integer) —
Maximum number of records to return, from 1 to 200. Defaults to 20.

- `status` (enum (&quot;match&quot; | &quot;mismatch&quot; | &quot;error&quot; | &quot;unknown&quot;)) —
Only records with this outcome.

- `q` (string) —
Only records whose file key contains this text, ignoring case.

- `since` (string (date-time)) —
Only records verified at or after this ISO 8601 timestamp.

- `hours` (number) —
Only records verified in the last this many hours. Ignored when `since` is given.

## Responses

### `200` OK

The matching verification records

Response shape:

- `ok` (enum (true)) —

- `items` (object[]) —
Verification records, newest first

### `400` Bad Request

The job id is empty

Response shape: `object`

### `401` Unauthorized

Authentication required

Response shape: `object`

### `404` Not Found

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

Response shape: `object`

### `429` Too Many Requests

Rate limit exceeded

Response shape: `object`

### `500` Internal Server Error

The records could not be read

Response shape: `object`

**curl**

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

**JavaScript**

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