# List adhoc ID checks

`GET /adhoc-id-checks`

- Base: `GET https://portal.watcheye.com.au/api/v1/adhoc-id-checks`

Returns quick (adhoc) identification checks for the calling account. These are one-off
checks not tied to a program or entity record.

Actor attribution is via the `created_by` discriminator (`user` for a portal launch or
`api_key` for an API launch). Filter by `created_by`, `created_by_user_uuid` or
`created_by_api_key_uuid` to narrow results.

## Parameters

| Name | In | Type | Description |
|------|----|------|-------------|
| `page` | query | integer | The page of results to return, starting at 1. Example: `1` |
| `per_page` | query | integer | The number of records per page (defaults to 30, max 500). Example: `30` |
| `filter[id_type]` | query | string | Only ID checks of the given document type. |
| `filter[check_type]` | query | string | Only records of the given check type. The endpoint description lists the values. |
| `filter[outcome]` | query | string | Only records with the given outcome. The endpoint description lists the values. Enum: `pass`, `fail`, `pending` |
| `filter[created_by]` | query | string | Only records created by the given kind of actor: `user` (a portal user) or `api_key`. Enum: `user`, `api_key` |
| `filter[created_by_user_uuid]` | query | string (uuid) | Only records created by the given portal user. |
| `filter[created_by_api_key_uuid]` | query | string (uuid) | Only records created by the given API key. |
| `filter[checked_after]` | query | string (date-time) | Inclusive lower bound on `checked_at` (ISO 8601). |
| `filter[checked_before]` | query | string (date-time) | Inclusive upper bound on `checked_at` (ISO 8601). |
| `sort` | query | string | The field to sort by, prefixed with `-` for descending order. The endpoint description lists the supported fields. Example: `-checked_at` |

## Responses

### 200 Paginated adhoc ID check list

Content type: `application/json`

| Field | Type | Description |
|-------|------|-------------|
| `data` | array of objects |  |
| `data[].uuid` | string (uuid) |  |
| `data[].check_number` | string |  |
| `data[].id_type` | string |  |
| `data[].id_type_name` | string |  |
| `data[].check_type` | string |  |
| `data[].check_type_name` | string |  |
| `data[].outcome` | string | Enum: `pass`, `fail`, `pending` |
| `data[].outcome_summary` | string or null |  |
| `data[].data_summary` | string or null |  |
| `data[].checked_at` | string (date-time) or null |  |
| `data[].created_by` | object or null | Identifies who launched the adhoc ID check. The `type` discriminator picks the shape of the remaining fields: * `{ type: "user", uuid, username }` - a portal user launched the check. * `{ type: "api_key", uuid, label }` - an API key on this account launched the check. * `null` - rare legacy rows from before actor attribution was recorded. |
| `data[].created_by.type` | string | Discriminator for the actor type. Enum: `user`, `api_key` |
| `data[].created_by.uuid` | string (uuid) | UUID of the user or API key that launched the check. |
| `data[].created_by.username` | string | Username of the portal user. Present only when `type` is `user`. |
| `data[].created_by.label` | string | Label of the API key. Present only when `type` is `api_key`. |
| `data[].idpass` | object | Present only when `id_type` is `idpass`. A lightweight shell of the linked IDPass plus `idpass_url`, the path to the full IDPass resource. |
| `data[].idpass.uuid` | string (uuid) | The IDPass identifier. Use it with the show, image and PDF endpoints. Example: `5b1c7c8e-0b6e-4f0a-9b3a-1f2e3d4c5b6a` |
| `data[].idpass.status` | string | Where the individual is in the hosted flow: * `new` - the link has not been opened * `opened` - the welcome page was passed * `in_progress` - consent was given and documents are being submitted * `complete` - the verification finished; read `verification_status` for the outcome * `expired` - `link_validity_days` elapsed before completion * `failed` - the verification could not be completed * `cancelled` - cancelled in the portal The last four are terminal. See the [IDPass](/docs/guides/watcheye_api/idpass#lifecycle-and-status) section of the guide. Enum: `new`, `opened`, `in_progress`, `complete`, `expired`, `failed`, `cancelled` Example: `in_progress` |
| `data[].idpass.verification_status` | string or null | The outcome once `status` is terminal, null until then: * `passed` - the identity was verified * `review` - the identity was verified but flagged for review in the portal; treat it as not yet passed * `failed` - the identity was not verified (including an expired or cancelled IDPass) Enum: `passed`, `review`, `failed` Example: `passed` |
| `data[].idpass.idpass_link` | string or null | The hosted link the individual opens to complete their verification. Treat it as opaque - pass it on as-is and do not parse or rebuild it. Example: `https://idpass.globaldata.net.au/idpass?token=abcd123456` |
| `data[].idpass.idpass_url` | string | Path to the full IDPass resource (GET /v1/idpasses/{uuid}). Example: `/v1/idpasses/5b1c7c8e-0b6e-4f0a-9b3a-1f2e3d4c5b6a` |
| `meta` | object |  |
| `meta.current_page` | integer |  |
| `meta.per_page` | integer |  |
| `meta.total` | integer |  |
| `meta.last_page` | integer |  |
| `api_reference` | string (uuid) |  |

**Sample response**

```json
{
    "data": [
        {
            "uuid": "00000000-0000-0000-0000-000000000000",
            "check_number": "string",
            "id_type": "string",
            "id_type_name": "string",
            "check_type": "string",
            "check_type_name": "string",
            "outcome": "pass",
            "outcome_summary": "string",
            "data_summary": "string",
            "checked_at": "2024-01-01T00:00:00Z",
            "created_by": {
                "type": "user",
                "uuid": "00000000-0000-0000-0000-000000000000",
                "username": "string",
                "label": "string"
            },
            "idpass": {
                "uuid": "5b1c7c8e-0b6e-4f0a-9b3a-1f2e3d4c5b6a",
                "status": "in_progress",
                "verification_status": "passed",
                "idpass_link": "https://idpass.globaldata.net.au/idpass?token=abcd123456",
                "idpass_url": "/v1/idpasses/5b1c7c8e-0b6e-4f0a-9b3a-1f2e3d4c5b6a"
            }
        }
    ],
    "meta": {
        "current_page": 0,
        "per_page": 0,
        "total": 0,
        "last_page": 0
    },
    "api_reference": "00000000-0000-0000-0000-000000000000"
}
```

Standard error responses: 401, 403, 429, 5XX (see [Common error responses](/docs/reference/general/common-error-responses.md))

