---
title: "A page of the Construction Quantities Benchmark, or one calculator's items"
method: GET
path: "/benchmark"
tags: ["Benchmark"]
---

# A page of the Construction Quantities Benchmark, or one calculator's items

`GET /benchmark`

## Request

- Base URL: `https://api.craftquantities.com/v1`
- URL: `https://api.craftquantities.com/v1/benchmark`
- Auth: none declared

## Query parameters

- `page` integer: Which page of the benchmark, from 1: each page holds the items of a few calculators, in slug order. 1 when left out.
- `calculator` string: One calculator's items only, by its slug, such as concrete-calculator.
- `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'

## Response `200`

The dataset's edition, download and citation, and the page's items.

- union
  - object
    - `engine` object, required
    - `dataset` object, required
      - `name` string, required
      - `id` string, required
      - `version` string, required: The method and fields version.
      - `edition` string, required: The first twelve hex digits of the JSONL file's SHA-256: which content a citation means.
      - `currentTo` string
      - `items` number, required
      - `calculators` number
      - `vectors` number
      - `excluded` object: Vectors left out, by reason: money (the calculator takes or returns a price), partial-vector (its figure needs an input left undefined), refused, no-figure.
        - `money` number
        - `partial-vector` number
        - `refused` number
        - `no-figure` number
      - `pages` number, required
      - `pageSize` string
      - `download` object, required
        - `jsonl` string, required
        - `manifest` string, required
        - `bytes` number
        - `sha256` string
      - `method` string, required
      - `scoring` string, required
      - `licence` object, required
        - `name` string, required
        - `url` string, required
        - `attribution` string, required
      - `status` 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
    - `page` integer, nullable
    - `nextPage` integer
    - `calculator` string
    - `calculators` string[]
    - `items` object[], required
      - `id` string, required: The calculator's slug and the vector's position among its test cases, such as concrete-calculator/1.
      - `dataset` string, required
      - `calculator` object, required
        - `slug` string, required
        - `title` string, required
        - `category` string, required
        - `version` string, required
        - `url` string, required
      - `case` string, required: The test vector's own name.
      - `task` string, required: What is worked out: the calculator's result label.
      - `inputs` object[], required
        - `id` string, required
        - `label` string, required
        - `value` union, required: In the base unit for a dimension (metres, m², litres, kg), the option value for a select.
          - number
          - string
        - `baseUnit` string
        - `fromVector` boolean, required: False where the vector leaves the input out and it takes the value the page opens on.
        - `metric` object, required
          - `value` union, required
            - number
            - string
          - `unit` string, nullable, required
        - `imperial` object, required
          - `value` union, required
            - number
            - string
          - `unit` string, nullable, required
      - `prompt` object, required
        - `metric` string, required
        - `imperial` string, required
      - `answer` object, required
        - `canonical` object, required: What the test vector pins, in the calculator's own unit: met when |x − value| < 0.5 × 10^−toleranceDecimalPlaces.
          - `value` number, required
          - `unit` string, required
          - `toleranceDecimalPlaces` number, required
        - `metric` object, required
          - `value` number, required
          - `unit` string, required
          - `printed` string, required: The figure as the page prints it.
          - `tolerance` number, required: An answer in this unit is right when it is within this of the value.
        - `imperial` object, required
          - `value` number, required
          - `unit` string, required
          - `printed` string, required: The figure as the page prints it.
          - `tolerance` number, required: An answer in this unit is right when it is within this of the value.
      - `steps` object[], required
        - `label` string, required
        - `value` number, required
        - `unit` string, required
      - `allowance` object, nullable, required
        - `label` string, required
        - `percent` number, required
      - `confidence` string, required
    - `excluded` object[], required
      - `id` string, required
      - `reason` 'money' | 'partial-vector' | 'refused' | 'no-figure', required
    - `none` string
  - 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.

---

[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)
