Tanilo

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 with 413 input_too_long; nothing is cut.
  • min_confidence (optional, 0.0–1.0, default 0.8): caller policy only. It can lower act to verify; it can never produce act when the published gate is halt.
  • url is disabled: a request that includes it is refused with 422 url_input_disabled before anything is fetched. source is accepted for compatibility and ignored.
  • In the response, evaluation.recommendation carries the result, evaluation.policy records the gate inputs and the published mapping, evaluation.sources lists the checker rows, and the top-level signing block says whether a receipt was issued.
  • GET https://api.tanilo.io/evaluate returns the current request and error reference, free and without a model call.

Results

What it returns

  • A recommendation of act, verify or reject. 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 act to verify, but cannot override a halt.
  • 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.

Inputs and failures

What it refuses

Since the 2026-10-28 release (see the changelog):

  • 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 url field is refused with 422, including when content is also supplied.
  • Without usage accounting the endpoint answers 503 and calls no provider.
  • act requires a usable answer from every claim-producing checker; otherwise the result is halt.

Keep separate

What it is not