---
title: "Get one record's field-level verification history"
method: GET
path: "/api/v1/verification"
---

# Get one record's field-level verification history

`GET /api/v1/verification`

## Request

- Base URL: `https://andrewsfreebies.com`
- URL: `https://andrewsfreebies.com/api/v1/verification`
- Auth: none declared

Returns append-only verification events and run metadata. Catalog status and field-level audit outcome are separate concepts. Audits never remove, hide, or modify catalog records.

## Query parameters

- `record_id` string, required
- `record_type` 'trial' | 'entitlement'
- `limit` integer

## Response `200`

Append-only audit history for the record

- VerificationHistory
  - `api_version` '1.9', required
  - `record` object, required
    - `record_id` string
    - `record_type` 'trial' | 'entitlement'
    - `name` string
    - `web_url` string
  - `count` integer, required
  - `items` VerificationEvent[], required
    - `record_id` string, required
    - `record_type` 'trial' | 'entitlement', required
    - `category` string: Optional; when present it must match the canonical record category.
    - `url` string, uri, required
    - `url_role` string, required
    - `checked_at` string, date-time: Defaults to generated_at.
    - `method` string: Defaults to run.method.
    - `outcome` 'confirmed-exact' | 'confirmed-partial' | 'terms-changed' | 'explicitly-expired' | 'moved' | 'blocked' | 'fetch-error' | 'not-found' | 'unknown', required: Conservative field-level audit result. blocked, fetch-error, not-found, and unknown do not establish expiration.
    - `content_hash` string
    - `evidence_excerpt` string
    - `matched_fields` string[]
    - `unmatched_fields` string[]
    - `url_health` object, required: Structured status, redirect, and reachability observations.
    - `offer_existence` object, required: Structured evidence for whether the provider currently describes the offer.
    - `terms_match` object, required: Matched, unmatched, and contradicted normalized fields.
    - `redemption_path` object, required: Structured activation, application, or claim-path result.
    - `evidence_quality` object, required: Evidence ownership, authority, and sufficiency.
    - `freshness` object, required: Audit age and next-check scheduling fields.
    - `id` string, uuid
    - `run_id` string, uuid
    - `created_at` string, date-time
    - `run` object
      - `schema_version` string
      - `generated_at` string, date-time
      - `method` string
      - `verifier` string, nullable
      - `started_at` string, date-time
      - `completed_at` string, date-time
  - `append_only` true, required

## Other responses

- `400`: Invalid filter
- `404`: Catalog record not found
- `503`: Verification ledger unavailable

---

[API](https://skmtc.dev/andrewsfreebies/apis/andrew-s-freebies-api.md) · [All operations](https://skmtc.dev/andrewsfreebies/apis/andrew-s-freebies-api/llms.txt) · [OpenAPI document](https://skmtc.dev/andrewsfreebies/apis/andrew-s-freebies-api/revisions/2e23a7a12f7a?raw)
