---
title: "Check — which published factor is each of your numbers, and is it still right?"
method: POST
path: "/v1/check"
tags: ["Discovery"]
---

# Check — which published factor is each of your numbers, and is it still right?

`POST /v1/check`

## Request

- Base URL: `https://api.greencalculus.com`
- URL: `https://api.greencalculus.com/v1/check`
- Auth: none required

Open (no key), up to 25 rows per request, limited per IP. Send the factors your inventory already uses, each as a description, the value AS TYPED (a string keeps its precision: "0.207" matches anything that rounds to it) and the unit as written. Each row comes back with the published factor it matches (source, edition, line), a status (current, outdated, fix, review, unverifiable, notcomparable), findings such as an old edition, old IPCC warming values, a 1,000x unit slip, net instead of gross calorific value or an upstream (WTT) factor used for combustion, and the current value to use instead. UK government factors carry every edition 2019-2026 except 2021; other sources are current-edition only, so a non-UK value can be identified but not yet called out of date. Nothing is substituted, and the request body is neither logged nor stored.

## Request body

- object
  - `example` boolean: Optional. Marks a request as a demonstration (our own page sends it for its worked example) so it is not counted as a check.
  - `rows` object[], required
    - `description` string, required: As written in your sheet.
    - `value` string, required: As typed. Send a string to keep trailing zeros.
    - `unit` string, required: As written, e.g. kgCO2e/kWh, kg CO2e per litre, kgCO2e/pkm, GWP.

## Response `200`

One verdict per row, a status summary, the index the check ran against and its coverage

- Check: Per-row verdicts for factors you already use: which published factor each value is (source, edition, line), whether it is current, and what is wrong with it.
  - `index` object: What was checked against: build date, MasterBrain version, DEFRA editions held.
  - `coverage` string: Plain statement of which sources carry edition history and which are current-only.
  - `summary` object: Row count per status.
  - `rows` object[]
    - `row` integer
    - `input` object
    - `status` 'current' | 'outdated' | 'fix' | 'review' | 'unverifiable' | 'notcomparable'
    - `findings` object[]
      - `kind` string
      - `text` string
    - `match` object: The published factor the value matched: source ids and names, line, unit, value, a link to that edition (edition_link) and, when the match is on the current edition, its proof page (proof_url).
    - `current` object, nullable: The current value to use instead, with the percentage change and its proof page (proof_url) where we hold the factor. Suggested, never substituted.

## Other responses

- `400`: Body is not JSON, rows is empty, or more than 25 rows
- `429`: Too many checks from this address; Retry-After says when to try again

---

[API](https://skmtc.dev/greencalculus/apis/greencalculus-api.md) · [All operations](https://skmtc.dev/greencalculus/apis/greencalculus-api/llms.txt) · [OpenAPI document](https://skmtc.dev/greencalculus/apis/greencalculus-api/revisions/2f742325958c?raw)
