---
title: "Diagnosis pages that match a symptom, with candidate causes and how to tell them apart"
method: GET
path: "/diagnose"
tags: ["Diagnoses and documents"]
---

# Diagnosis pages that match a symptom, with candidate causes and how to tell them apart

`GET /diagnose`

## Request

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

## Query parameters

- `symptom` string, required: What the reader sees, hears or smells, in their own words: "my breaker keeps tripping when the kettle is on".
- `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.
- `limit` integer: How many diagnoses at most. Left out: one when the match is clear, up to three when it is not.
- `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 matching diagnoses, or the candidates where the words fit several.

- union
  - object
    - `engine` object, required
    - `symptom` string, required
    - `market` string, nullable
    - `match` 'clear' | 'ambiguous' | 'none', required
    - `matchedBy` 'site-search' | 'shared-words', required
    - `note` string, required
    - `diagnoses` object[], required
      - `kind` 'diagnosis' | 'structural', required
      - `slug` string, required
      - `symptom` string, required
      - `family` string
      - `url` string, required
      - `verdict` string: The page's first line: what to act on before reading further. Not a diagnosis.
      - `causes` object[]
        - `cause` string, required
        - `likelihood` 'most common' | 'common' | 'less common' | 'uncommon', required
        - `distinguishedBy` string, required: What tells this cause apart from the others.
        - `check` string, required: The one thing to look at to confirm or rule it out.
      - `checks` object[]
        - `step` string, required
        - `why` string, required
      - `callAProfessional` string[], required
      - `calculators` object[]
        - `slug` string, required
        - `title` string, required
        - `url` string, required
      - `related` object[]
      - `looksLike` string
      - `whyStructural` string
      - `urgency` string
    - `alsoConsider` object[], required
    - `links` object, 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.

---

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