---
title: "Verify a claimed limit against the cited rows held"
method: GET
path: "/verify"
---

# Verify a claimed limit against the cited rows held

`GET /verify`

## Request

- Base URL: `https://passage-data.com/api/v1`
- URL: `https://passage-data.com/api/v1/verify`
- Auth: one of:
  - none
  - HTTP bearer
  - API key in header `x-api-key`

A limit someone stated (in an AI's answer, a report) set beside every row find_limits keeps for it. confirmed: a row prints the same number, in the claim's unit or one that converts exactly (in decimal, by the engine's registry), under the claim's statistic when one is given; quote its cite. contradicted: rows are held and none prints it; held_otherwise gives the number each prints, with its own conditions. not_held: a `refused` block (place.not_held, parameter.unknown, rows.none_held, statistic.none_held) naming every instrument searched and its edition, a statement about our sources and never about whether the claim is true. not_comparable: rows held, none comparable with one number, each with its `why`. Equal is equal as exact decimals: a rounded number is another number. A row worked for water of a stated chemistry confirms the same number and never contradicts another.

## Query parameters

- `parameter` string, required
- `value` string, required
- `unit` string, required
- `place` string
- `medium` 'water_discharge' | 'surface_water' | 'groundwater' | 'drinking_water' | 'soil' | 'ambient_air' | 'air_emission' | 'sediment' | 'leachate'
- `statistic` string
- `sentence` string

## Response `200`

A verdict, or a `refused` block (not_held: place.not_held, parameter.unknown, rows.none_held, statistic.none_held; parameter.ambiguous, statistic.unrecognised, unit.refused, unit.unrecognised)

- Claim
  - `query` object
  - `searched` object
  - `claim` object
    - `parameter` string
    - `place` string, nullable
    - `medium` string, nullable
    - `statistic` string, nullable
    - `value` string
    - `unit` string
  - `verdict` 'confirmed' | 'contradicted' | 'not_held' | 'not_comparable'
  - `says` string
  - `reads_as` string
  - `counts` object
    - `same` integer
    - `differs` integer
    - `not_comparable` integer
  - `not_comparable_by` object
  - `other_statistics` object
  - `confirmed_by` ClaimRow[]
    - `parameter` string
    - `parameter_key` string
    - `value` string
    - `value_num` number, nullable
    - `range` unknown
    - `unit` string, nullable
    - `statistic` string, nullable
    - `direction` string, nullable
    - `kind` string
    - `medium` string
    - `place` string[]
    - `conditions` string[]
    - `cite` Cite
      - `instrument` string
      - `title` string
      - `issuer` string, nullable
      - `edition` string, nullable
      - `section` string, nullable
      - `page` union
        - integer
        - string
      - `quote` string, nullable
      - `source_url` string, nullable
      - `source_sha256` string, nullable
      - `source_status` object: What the daily edition watch last saw at the source: status unchanged, changed (with changed_on and says: the rows are as read from the edition named, not yet re-read) or not verified; checked is the day.
        - `checked` string
        - `status` 'unchanged' | 'changed' | 'not verified'
        - `changed_on` string
        - `says` string
      - `note` string: What the register prints beside the value (e.g. a later or earlier value and its date).
      - `table` string
      - `column` string: The register column the value sits in (e.g. mcl, mclg).
    - `verdict` 'same' | 'differs' | 'not_comparable'
    - `why` object
      - `code` string
      - `says` string
    - `compared` object
      - `value` string
      - `unit` string
      - `value_in_row_unit` string
      - `exact` boolean
      - `held` string
      - `held_unit` string, nullable
  - `held_otherwise` ClaimRow[]
    - `parameter` string
    - `parameter_key` string
    - `value` string
    - `value_num` number, nullable
    - `range` unknown
    - `unit` string, nullable
    - `statistic` string, nullable
    - `direction` string, nullable
    - `kind` string
    - `medium` string
    - `place` string[]
    - `conditions` string[]
    - `cite` Cite
      - `instrument` string
      - `title` string
      - `issuer` string, nullable
      - `edition` string, nullable
      - `section` string, nullable
      - `page` union
        - integer
        - string
      - `quote` string, nullable
      - `source_url` string, nullable
      - `source_sha256` string, nullable
      - `source_status` object: What the daily edition watch last saw at the source: status unchanged, changed (with changed_on and says: the rows are as read from the edition named, not yet re-read) or not verified; checked is the day.
        - `checked` string
        - `status` 'unchanged' | 'changed' | 'not verified'
        - `changed_on` string
        - `says` string
      - `note` string: What the register prints beside the value (e.g. a later or earlier value and its date).
      - `table` string
      - `column` string: The register column the value sits in (e.g. mcl, mclg).
    - `verdict` 'same' | 'differs' | 'not_comparable'
    - `why` object
      - `code` string
      - `says` string
    - `compared` object
      - `value` string
      - `unit` string
      - `value_in_row_unit` string
      - `exact` boolean
      - `held` string
      - `held_unit` string, nullable
  - `not_comparable` ClaimRow[]
    - `parameter` string
    - `parameter_key` string
    - `value` string
    - `value_num` number, nullable
    - `range` unknown
    - `unit` string, nullable
    - `statistic` string, nullable
    - `direction` string, nullable
    - `kind` string
    - `medium` string
    - `place` string[]
    - `conditions` string[]
    - `cite` Cite
      - `instrument` string
      - `title` string
      - `issuer` string, nullable
      - `edition` string, nullable
      - `section` string, nullable
      - `page` union
        - integer
        - string
      - `quote` string, nullable
      - `source_url` string, nullable
      - `source_sha256` string, nullable
      - `source_status` object: What the daily edition watch last saw at the source: status unchanged, changed (with changed_on and says: the rows are as read from the edition named, not yet re-read) or not verified; checked is the day.
        - `checked` string
        - `status` 'unchanged' | 'changed' | 'not verified'
        - `changed_on` string
        - `says` string
      - `note` string: What the register prints beside the value (e.g. a later or earlier value and its date).
      - `table` string
      - `column` string: The register column the value sits in (e.g. mcl, mclg).
    - `verdict` 'same' | 'differs' | 'not_comparable'
    - `why` object
      - `code` string
      - `says` string
    - `compared` object
      - `value` string
      - `unit` string
      - `value_in_row_unit` string
      - `exact` boolean
      - `held` string
      - `held_unit` string, nullable
  - `listed` object
  - `sentence` object
    - `value_printed` boolean
    - `unit_beside` boolean
    - `parameter_named` boolean
    - `says` string
  - `refused` object

## Other responses

- `400`: parameter.missing, value.missing, value.malformed, value.ambiguous, value.negative, value.out_of_range, unit.missing

---

[API](https://skmtc.dev/passage-data/apis/passage-data-cited-environmental-limits.md) · [All operations](https://skmtc.dev/passage-data/apis/passage-data-cited-environmental-limits/llms.txt) · [OpenAPI document](https://skmtc.dev/passage-data/apis/passage-data-cited-environmental-limits/revisions/ba066708bf53?raw)
