Playground
Every endpoint page in the API Reference tab carries a live request builder. You edit the JSON body, press Send, and get the real response from https://api.milliseconds.ai.
No API key is required during the launch period. The builder shows no credential fields, because the API declares none.
Open an endpoint
Go to the API Reference and open an endpoint, for example POST /v1/decision-machine-1/classify.
Every response on this page is a real capture. Two headers come back on every capability call: x-input-chars reports the number of input characters, and x-input-tokens reports the input tokens billed for this call. You pay $0.04 per million input tokens and $0 per output token. See Pricing.
Yes / no
Endpoint POST /v1/decision-machine-1/yes-no.
Look at probability, not answer. answer is only probability >= 0.5. Now edit when_true to "yes" and when_false to "no" and send again. The probability drops to 0 and answer turns false, which is wrong for this text. The hint text must describe the case, a rule covered in writing good statements and labels.
Classify
Endpoint POST /v1/decision-machine-1/classify.
Look at confidence and scores. confidence is 1 − normalized entropy: 0.973 means one clear winner. scores shows the runner-up, which tells you which label pair to rewrite. Send "labels": ["billing", "shipping", "account"] and compare the scores you get without descriptions.
Rate
Endpoint POST /v1/decision-machine-1/rate.
Look at score against level. level is the argmax, here 2 by a margin under 0.001. score is the probability-weighted position, 1.504, sitting between Annoyed and Frustrated. confidence of 0.489 reports the tie honestly. Route on score when the levels are close.
Answer
Endpoint POST /v1/decision-machine-1/answer.
Look at the third result. Answers are spans of your text, never generated prose. A question the text cannot answer returns answer: null and probability: 0. Check start and end against your own string to confirm the span.
Extract
Endpoint POST /v1/decision-machine-1/extract.
Look at paid. This invoice text says nothing about payment, and the model still returned true. Extraction gives you types, not truth. Confirm any value that drives an action with verify. Note also that $2,676.00 came back as the number 2676.
Send {"type": "string"} as the whole schema to see the guard: 400 invalid_schema, schema must be an object with properties.
Entities
Endpoint POST /v1/decision-machine-1/entities.
Look at the offsets. Entities come back sorted by start. The offsets let you redact or highlight the original string without a search. Add "date": "a day or date" to types and send again.
Verify
Endpoint POST /v1/decision-machine-1/verify.
Look at found. It holds the raw spans the model read for that field, match or not. Change value to 4417 and send again: matches goes false, probability goes to 0, and found still shows ["INVOICE #4471"]. That is your debugging output.
The OpenAI-compatible route
POST /v1/chat/completions runs in the explorer too. Plain chat returns 400 on purpose. Send response_format.json_schema or tools, as shown in Structured extraction and Function calling.
Try an error
Send classify with a one-item labels array. Every error uses this envelope. The full list of codes lives in Errors.
Typical round trips from a laptop: classify, rate and yes-no land near 1 second. answer, entities and verify land near 0.5 seconds, extract near 0.7 seconds. Errors return in under 0.2 seconds.
Next
- Choosing a capability — pick the right endpoint before you tune one.
- Decisions and probabilities — what each number means.
- Quickstart — the same calls from curl, Python and TypeScript.