---
title: "Read a quote against the reader's job"
method: POST
path: "/check/{slug}"
tags: ["Quotes"]
---

# Read a quote against the reader's job

`POST /check/{slug}`

## Request

- Base URL: `https://api.craftquantities.com/v1`
- URL: `https://api.craftquantities.com/v1/check/{slug}`
- Auth: none declared

Money in the quote is taken out before reading and never judged. A difference from a range is a question to ask, not a verdict. Nothing is kept.

## Path parameters

- `slug` string, required: bathroom-quote, plastering-quote, or {takeoff id}-quote

## Query parameters

- `detail` 'full' | 'summary': full (the default): the whole answer. summary: the result lines, the citation line and the page only — fewer tokens to read.
- `format` 'json' | 'md'

## Request body

- object
  - `quote` string, required
  - `measurements` object: Measurement id → value, each length, area or volume with its unit ("12 ft", {"value": 3.6, "unit": "m"}); counts as numbers. Ids are those of the takeoff; any left out opens at the page's own figure.
  - `selection` object: Build-up choice id → option id, the takeoff's own (a stud size, an insulation, a cladding). Choices left out take the page's own for the system.
  - `system` 'metric' | 'imperial': The unit system inputs left out open in, and the one the page link opens in. The answer comes in both.
  - `market` 'US' | 'CA' | 'UK' | 'AU' | 'INTL': Optional. A market whose own opening choice some inputs take (a UK reader's code, an IEC motor), and whose currency symbol prints the caller's own money figures.
  - `inputUnits` 'base': Send "base" to pass bare numbers on dimensioned inputs in base units (m, m², L, kg …), as the published test vectors are written. Without it a length, area or volume must carry its unit.

## Response `200`

The reading.

- union
  - object
    - `engine` object, required
    - `check` object, required
      - `slug` string, required
      - `job` string, required
      - `url` string, required
      - `takeoff` object
    - `system` 'metric' | 'imperial', required
    - `market` string, nullable
    - `measurements` object[], required
    - `lines` object[], required
      - `key` string, required
      - `name` string, required
      - `unit` string, required
      - `low` number, required
      - `high` number, nullable, required: Null where the line is a minimum with no upper end.
      - `minimum` boolean, required
      - `range` string, required: Why the two ends differ.
      - `why` string
      - `calculator` object, required
        - `title` string, required
        - `url` string, required
      - `alternativeTo` string
    - `reading` object, required
      - `rowsRead` integer, required
      - `differs` object[], required
        - `line` object, required
          - `key` string, required
          - `name` string, required
          - `unit` string, required
          - `low` number, required
          - `high` number, nullable, required: Null where the line is a minimum with no upper end.
          - `minimum` boolean, required
          - `range` string, required: Why the two ends differ.
          - `why` string
          - `calculator` object, required
            - `title` string, required
            - `url` string, required
          - `alternativeTo` string
        - `quoted` number, required
        - `outcome` 'above' | 'below', required
        - `difference` number, required
        - `rows` object[], required
          - `text` string, required
          - `quantity` number
          - `unit` string, required
          - `how` string
        - `explanation` string, required
        - `ask` string, required
      - `agrees` object[], required
      - `missing` object[], required
      - `notComparable` object[], required
      - `extras` object[], required
      - `listed` object[], required
      - `headings` string[], required
      - `unmentioned` object[], required
      - `questions` object[], required
    - `rows` object[], required
    - `pricesIgnored` string, required
    - `excludes` string[], required
    - `citation` object, required
      - `author` string, required
      - `title` string, required
      - `version` string, nullable
      - `sourcesChecked` string, nullable
      - `url` string, required
      - `accessDate` string, nullable, required
      - `formats` object, required
        - `plain` string, required
        - `apa` string, required
        - `harvard` string, required
        - `bibtex` string, required
    - `licence` object, required
      - `name` string, required
      - `url` string, required
      - `attribution` string, required
    - `notice` string, required
  - object
    - `detail` 'summary', required
    - `tool` string, required
    - `title` string, required
    - `lines` object[], required: The result lines, as the report's table gives them.
    - `notes` string[], required: What a professional must decide, when to call one, a false-friend warning, that adoption is local: kept in every summary.
    - `citation` string, required: The one citation line, built from the answer's own data.
    - `url` string, nullable, required
    - `open` string, nullable, required
    - `more` string, nullable, required

## Other responses

- `400`: The request was refused; every problem is listed.
- `404`: The request was refused; every problem is listed.
- `413`: The request was refused; every problem is listed.

---

[API](https://skmtc.dev/craftquantities/apis/craft-quantities-engine-api.md) · [All operations](https://skmtc.dev/craftquantities/apis/craft-quantities-engine-api/llms.txt) · [OpenAPI document](https://skmtc.dev/craftquantities/apis/craft-quantities-engine-api/revisions/a69883abc23b?raw)
