> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.adid.dev/llms.txt.
> For full documentation content, see https://docs.adid.dev/llms-full.txt.

# Verification History

#### When to use

You want a per-event audit trail of your verifier activity for compliance, billing, or anti-abuse triage.

#### Before you begin

* Verifier role.
* Some history (i.e., you have run verifications).

#### Steps

1. Navigate to `/verifier/history`.
   2\. Filter by:
   * **Outcome** — verified / failed.
   * **Issuer** — DID type-ahead.
   * **Schema**.
   * **Date range**.
2. Click any row for the full request/response envelope.

#### API

```bash
curl "https://adid.dev/api/v1/verifications/history?limit=50&offset=0" \
  -H "Authorization: Bearer $ACCESS_TOKEN"
```

(`verifier.go:32`, registered at `router.go:161`.)

Response:

```json
{
  "data":[
    { "id":"ver-uuid-1", "ts":"2026-04-26T11:00:00Z", "verified":true, "holderDid":"...", "issuerDid":"...", "schemaId":"...", "reasons":[] },
    { "id":"ver-uuid-2", "ts":"2026-04-26T11:01:00Z", "verified":false, "holderDid":"...", "issuerDid":"...", "schemaId":"...", "reasons":[{"code":"REVOKED"}] }
  ],
  "total": 2
}
```

The companion endpoint `GET /api/v1/verifications/stats` (`verifier.go:123`, `router.go:162`) returns aggregate counters for dashboards.

#### Adding a record manually

Verifiers can record verifications performed by their own off-platform infrastructure:

```bash
curl -X POST https://adid.dev/api/v1/verifications \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "holderDid":"did:adi:0x9a2c...",
    "issuerDid":"did:adi:0xUniv...",
    "schemaId":"schema-uuid-1",
    "verified":true,
    "reasons":[]
  }'
```

(`verifier.go:325`, `router.go:163` — guarded by `RequireRoles("verifier")`.)

#### Export

Click **Download CSV** for an export of the current filtered slice.

#### Troubleshooting

| Symptom         | Cause                                                     | Fix                                                                                                                    |
| --------------- | --------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- |
| History empty   | All verifications used the *public* endpoint without auth | The platform doesn't track unauthenticated verifications by default. Use the verifier-scoped endpoints to record them. |
| Counts disagree | Time-zone                                                 | All timestamps are UTC.                                                                                                |