Docs · Experimental
Assessing a claim with /evaluate
POST /evaluate gives a model-based assessment of a claim before your workflow acts on it. It is live in the free public beta at https://api.tanilo.io: rate-limited, no key, no account.
Read this first
Assessments are model judgments and can be wrong. They are not suitable for automatically authorizing actions. Sources listed in a response don’t feed the verdict, and a valid signature doesn’t establish that the assessment is correct.
Request
Make a request
Free during the public beta, rate-limited, no key. Each request runs model checks on Tanilo’s side; the request below is an example and was not sent while writing this page.
curl -sS https://api.tanilo.io/evaluate \
-H "content-type: application/json" \
-d '{ "content": "The Eiffel Tower is in Paris.", "min_confidence": 0.8 }'
content(required): the claim or text to assess, a string or an object, at most 4,000 UTF-16 code units. Longer input is refused with413 input_too_long; nothing is cut.min_confidence(optional, 0.0–1.0, default 0.8): caller policy only. It can loweracttoverify; it can never produceactwhen the published gate ishalt.urlis disabled: a request that includes it is refused with422 url_input_disabledbefore anything is fetched.sourceis accepted for compatibility and ignored.- In the response,
evaluation.recommendationcarries the result,evaluation.policyrecords the gate inputs and the published mapping,evaluation.sourceslists the checker rows, and the top-levelsigningblock says whether a receipt was issued. GET https://api.tanilo.io/evaluatereturns the current request and error reference, free and without a model call.
Results
What it returns
- A recommendation of
act,verifyorreject. Since 19 October 2026 the recommendation is derived from the same gate decision used in newly issued signed receipts. - An additional caller-confidence threshold can change
acttoverify, but cannot override ahalt. - Confidence values are heuristic scores, not calibrated probabilities.
- When signing succeeds, a signed receipt. The body policy is versioned separately; historical receipts keep their original gate values.
- Input longer than 4,000 UTF-16 code units is refused with 413
input_too_long, not cut. - URL input is disabled: a request containing the
urlfield is refused with 422, including whencontentis also supplied. - Without usage accounting the endpoint answers 503 and calls no provider.
actrequires a usable answer from every claim-producing checker; otherwise the result ishalt.
Keep separate
What it is not
Not a deterministic check
For a specific condition, such as a price against supplied terms, use /v1/verify-facts: no model, and checks over the inputs you send give the same result for the same inputs (registry lookups depend on the registry at the time).
Not the contract-term prototype
Checking what an extraction left out is a separate prototype. It is not available through /evaluate.
Not a current accuracy figure
The accuracy figure on the benchmarks page was measured on 28 May 2026 on an earlier pipeline and does not describe the current service.
Incident record
In August 2026 receipts were signed for evaluations that had not run. The full record and what changed.
Verifying a receipt
Check that a signed result hasn’t changed since it was signed.
Changelog
Dated releases, including the 2026-10-28 input and failure-handling changes.