> ## Documentation Index
> Fetch the complete documentation index at: https://docs.pruva.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Overview

> Base URL, request and response shape, and conventions shared by every endpoint.

The Pruva API is a small REST API. There are four endpoints: one to run a check, two to read checks back, and a health probe. Everything shares the same base URL, authentication, and response envelope.

## Base URL

```text theme={null}
https://api.pruva.africa
```

All endpoints are versioned under `/v1`. The environment (test or live) comes from your [API key](/get-started/authentication), not the URL.

## Authentication

Send your key in the `X-Pruva-Key` header on every request except the health check.

```bash theme={null}
-H "X-Pruva-Key: pruva_live_YOUR_KEY"
```

See [Authentication](/get-started/authentication) for key formats and safety.

## Request format

Requests that take a body send JSON, with `Content-Type: application/json`. When you run a check, the body **is** that scope's inputs directly, with no wrapper:

```json theme={null}
{ "nin": "12345678901" }
```

## Response envelope

Every response uses the same envelope, so you can parse success and failure the same way every time.

**Success:**

```json theme={null}
{
  "status": true,
  "data": { },
  "meta": { }
}
```

`data` holds the result. `meta` is present on list responses for paging, and absent otherwise.

**Error:**

```json theme={null}
{
  "status": false,
  "error": {
    "code": 402,
    "message": "Your wallet balance is too low for this check"
  }
}
```

`code` mirrors the HTTP status. `message` is a human readable explanation. Some errors add an `error.details` object with extra fields, for example a `reference` and `balanceKobo` on an insufficient funds error.

<Note>
  Check the top level `status` boolean first, then read `data` or `error` accordingly. The HTTP status code and `error.code` always agree.
</Note>

## Endpoints

| Method | Path                            | Purpose                                                 |
| ------ | ------------------------------- | ------------------------------------------------------- |
| `POST` | `/v1/{scope}`                   | [Run a verification](/api-reference/run-verification)   |
| `GET`  | `/v1/verifications/{reference}` | [Get a verification](/api-reference/get-verification)   |
| `GET`  | `/v1/verifications`             | [List verifications](/api-reference/list-verifications) |
| `GET`  | `/v1/health`                    | [Health check](/api-reference/health)                   |

## Amounts

Every monetary value is in **kobo**, the minor unit of the naira. `5000` is ₦50.00. See [Wallet and billing](/concepts/billing).

## Timestamps

Timestamps are ISO 8601 with the West Africa offset, for example `2026-07-27T08:50:00+01:00`.
