> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.milliseconds.ai/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.milliseconds.ai/_mcp/server.

# All capabilities

Every capability is one `POST` to `https://api.milliseconds.ai`, with `text` or `texts` in the body. Every request needs an API key. See [Authentication](/authentication).

## The eight capabilities

| Capability                                   | Question it answers                           | Backing model | Typical latency                                                     | Endpoint                                    |
| -------------------------------------------- | --------------------------------------------- | ------------- | ------------------------------------------------------------------- | ------------------------------------------- |
| [Yes / no](/capabilities/yes-no)             | Is this statement true of the text?           | Classifier    | 0.42 s                                                              | `POST /v1/decision-machine-1/yes-no`        |
| [Classify](/capabilities/classify)           | Which one label applies?                      | Classifier    | 0.43 s (3 labels)                                                   | `POST /v1/decision-machine-1/classify`      |
| [Classify tree](/capabilities/classify-tree) | Which path through this label tree applies?   | Classifier    | 0.77 s (2 levels, about 0.4 s each), levels run one after the other | `POST /v1/decision-machine-1/classify-tree` |
| [Rate](/capabilities/rate)                   | Where on this scale does the text sit?        | Classifier    | 0.42 s (4 levels)                                                   | `POST /v1/decision-machine-1/rate`          |
| [Answer](/capabilities/answer)               | Which span of the text answers this question? | Extractor     | 0.40 s                                                              | `POST /v1/decision-machine-1/answer`        |
| [Extract](/capabilities/extract)             | What fills this JSON Schema?                  | Extractor     | 0.41 s (9 properties)                                               | `POST /v1/decision-machine-1/extract`       |
| [Entities](/capabilities/entities)           | Where is every span of these types?           | Extractor     | 0.42 s                                                              | `POST /v1/decision-machine-1/entities`      |
| [Verify](/capabilities/verify)               | Does the text support this value?             | Extractor     | 0.40 s                                                              | `POST /v1/decision-machine-1/verify`        |

Latencies are wall-clock measurements from a laptop on 2026-09-18, median of 7 runs, over short inputs of 51 to 199 characters. They include TLS and internet transit. Every single-pass call lands near 0.4 s; the model itself takes 36 to 54 ms of that. `classify-tree` repeats one classifier call per level, so its latency is the sum of its levels. [How it works](/concepts/how-it-works) names the two models and gives the measured capacity table.

## The routing rules

1. You need a true or false verdict on one claim: use [yes-no](/capabilities/yes-no).
2. You need exactly one label from a fixed set: use [classify](/capabilities/classify).
3. Your labels form a tree and you need the whole path: use [classify-tree](/capabilities/classify-tree).
4. You need an ordered level, such as severity or sentiment: use [rate](/capabilities/rate).
5. You need a value that the text states, with its offsets: use [answer](/capabilities/answer) for one question. Use [extract](/capabilities/extract) for a whole record, or [entities](/capabilities/entities) for every occurrence.
6. You already hold a value and must check it against the text: use [verify](/capabilities/verify).

[Choosing a capability](/concepts/choosing-a-capability) works through the near-miss pairs, such as yes-no against classify with two labels.

## What every capability shares

#### [Input](/concepts/input)

Send `text` up to 20,000 characters, or `texts` with up to 32 items. Send one key, never both.

#### [Batching](/capabilities/batching)

`texts` returns `{"results":[...]}` in input order. `statements` and `questions` batch inside one call.

#### [Decisions and probabilities](/concepts/decisions-and-probabilities)

Probabilities, `confidence` as 1 minus normalized entropy, scores, and character offsets.

#### [Thresholds](/concepts/thresholds)

Pick an act, confirm, or escalate band per action. Raise the bar with the blast radius.

Each capability response carries three headers: `x-input-chars`, the number of input characters, `x-input-tokens`, the input tokens billed for this call, and `x-inference-ms`, the model processing time for this request. Cost scales with everything you send: the text plus the labels, statements, questions, or schema. See [Pricing](/reference/pricing).

## Writing the labels and statements

The label text is what the model reads. `"yes"` and `"no"` carry no meaning for it. Write text that describes the case.

> **Warning**
>
> A `when_true` of `"yes"` with a `when_false` of `"no"` measurably flipped a correct yes-no answer to wrong. The probability fell from 1 to 0.004 on the same input. [Writing good statements and labels](/concepts/writing-good-questions) shows the wording that works.

## Images

Every capability also reads one image. Send `image` as base64 instead of `text`, or with `text`.
The result keeps the same shape it has on text. See [Images](/concepts/images).

## Try each one

Open the [API Reference](/api) tab and use the **Try it** panel on any endpoint page. The panel needs no key and no setup. The [Playground guide](/playground) gives a worked example per capability and names what to read in each response.

## Next

#### [Choosing a capability](/concepts/choosing-a-capability)

A decision table, plus the pairs that look alike.

#### [Quickstart](/start/quickstart)

One curl call that returns a decision in under a minute.