---
title: "Work a takeoff (measurements in the query, build-up choices as v.{choice})"
method: GET
path: "/takeoff/{id}/run"
tags: ["Takeoffs"]
---

# Work a takeoff (measurements in the query, build-up choices as v.{choice})

`GET /takeoff/{id}/run`

## Request

- Base URL: `https://api.craftquantities.com/v1`
- URL: `https://api.craftquantities.com/v1/takeoff/{id}/run`
- Auth: none declared

The same query the takeoff page's own link carries: each measurement under its id, written with its unit; each build-up choice as v.{choice}={option}.

## Path parameters

- `id` string, required

## Query parameters

- `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.
- `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`

Every row, with its quantity, order, working and sources.

- union
  - object
    - `engine` object, required
    - `takeoff` object, required
      - `id` string, required
      - `name` string, required
      - `category` string, required
      - `description` string, required
      - `url` string, required: The takeoff's page on craftquantities.com.
    - `system` 'metric' | 'imperial', required
    - `market` string, nullable
    - `selection` object, required
    - `measurements` object[], required
      - `id` string, required
      - `label` string, required
      - `value` number, required
      - `dimension` string
      - `baseUnit` string
      - `source` 'caller' | 'default', required
      - `read` string
      - `metric` object
        - `value` number, required
        - `unit` string, required
      - `imperial` object
        - `value` number, required
        - `unit` string, required
      - `basis` object: Where a figure comes from: a source the site publishes, or the reason there is none.
        - `unsourced` string
        - `source` object
          - `kind` string, required
    - `rows` object[], required
      - `key` string, required
      - `name` string, required
      - `calculator` object, required
        - `slug` string, required
        - `title` string, required
        - `version` string, nullable
        - `url` string, required
      - `state` 'ready' | 'untraced' | 'pending' | 'failed' | 'no-answer', required
      - `quantity` number, nullable, required: What a project line carries, after any allowance, in this system's unit.
      - `unit` string, required
      - `order` object, nullable, required
        - `quantity` number, required
        - `unit` string, required
        - `rule` 'pack' | 'whole' | 'as-measured', required
      - `chain` object, nullable, required
        - `mode` string
        - `base` number
        - `allowanceName` string
        - `allowancePercent` number
        - `calculatorVersion` string
      - `printed` string, nullable, required
      - `otherSystem` object, nullable, required
        - `quantity` number, nullable, required
        - `unit` string, required
      - `inputs` object[], required
        - `id` string, required
        - `value` union, required
          - number
          - string
        - `origin` string, required
        - `basis` object: Where a figure comes from: a source the site publishes, or the reason there is none.
          - `unsourced` string
          - `source` object
            - `kind` string, required
      - `note` string
      - `alternativeTo` string
      - `leftOut` boolean
      - `labourHours` object, nullable
        - `low` number, required
        - `likely` number, required
        - `high` number, required
    - `sizingWithheld` string[], required
    - `labour` object, required
      - `rows` object[], required
        - `key` string, required
        - `name` string, required
        - `kind` 'rated' | 'part' | 'not-rated' | 'unmeasured' | 'no-work' | 'sizing', required
        - `hours` object
          - `low` number, required
          - `likely` number, required
          - `high` number, required
        - `rate` object
          - `id` string
          - `operation` string
          - `personHoursPerUnit` object
            - `low` number, required
            - `likely` number, required
            - `high` number, required
          - `per` string
          - `basis` string
          - `source` string
          - `whatMovesIt` string
        - `countedWith` string[]
        - `reason` string
        - `unit` string
      - `totalHours` object, required
        - `low` number, required
        - `likely` number, required
        - `high` number, required
      - `programme` object[], required
      - `likelyDays` number, required
      - `note` string, required
    - `excludes` string[], required
    - `sources` object[], required
      - `calculator` string, required
      - `title` string, required
      - `version` string, required
      - `sources` object[], required
        - `label` string, required: The source as the calculator cites it.
        - `url` string: Only where the calculator gives one; none is invented.
        - `references` object[]
          - `kind` 'code' | 'standard', required
          - `body` string
          - `document` string, required
          - `section` string
          - `edition` string
    - `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
    - `links` object, required
      - `page` string, required
      - `open` string, required: Opens the takeoff page on this job.
    - `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.

---

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