Skip to main content
Sandbox and protocol reference. Test checks and generations return deterministic decisions for fictional fixtures. Sessions and production evaluation described below are not available through the current Talent API. Start with the runnable quickstart and sandbox support matrix.
Every check, generation and session sample ends in a decision. A decision is never an error: deny and escalate are 200 responses with a decision field. An error means the request could not be evaluated at all. Handle the decisions in your product, not in your error handler.

The three decisions

At each stage

The same decisions apply at three stages. Each reason says which one in stage. A live call has no time for a person to review it, so sessions never escalate. A license that holds every output for release cannot start a session, and the session is denied with session_not_permitted. Interactive products can ask checks to behave the same way with on_escalate: "deny". See Escalation.

Check statuses

A check’s status tracks what happened after its decision. When an escalated check is decided, you receive check.resolved with the new decision. A declined escalation is deny with review_declined, and an expired one is deny with hold_expired.

The authorization

An allow carries an authorization: proof that the check allowed this use. Without reuse, the authorization covers only the request that was checked. The check’s request_digest is a digest of the inputs, the use and the execution, and the token carries it, so a different prompt, a new reference or another model needs a new check. Pass the token to the tool or model provider that generates; it verifies the token offline against the JWKS. A generation past max_generations fails with 409 authorization_consumed. See Authorization token for the claims.

Reuse

One check can cover many generations of the same use, talent, execution and end user, even when their inputs differ, such as the lines of a text-to-speech script: send reuse: { "max_generations": 200, "ttl": "PT15M" }, up to 1,000 generations and PT15M. Every output is still checked at the generation, and generations under reuse omit candidate_index. A change of use, talent, model or end user needs a new check. A revocation ends the reuse window at once. See Bind the request.

Reasons

A deny or escalate carries reasons[]: Every code, its stage and its usual remedy are in Reason codes.

Remedies

A deny that a change could fix carries a remedy: remedy.suggested_scope holds the scope that would allow the use, ready to send as requested_scope on a license request. A deny for talent_prohibits has no remedy: no license can change it.
A missing license is a deny with a license_request remedy, never an escalate. A request for a license is a business negotiation, and a generation cannot be held open while it happens. Escalation is for a use a license covers when a person must decide, or when the check could not finish.

Several talent

When a request invokes more than one talent, each entry in talent[] carries its own decision, license, license_revision and terms_digest. The check’s decision is the most restrictive of them: deny over escalate, escalate over allow. See Multi-talent.

Receipts

allow and deny decisions carry a receipt, a signed record of the decision. An escalated check receives its receipt when it is decided. See Provenance.

Example: a channel the license does not cover

Ridgeline’s license covers social media and its website. A check that adds TV is denied:
Northlight shows the sentence to its user and offers to ask for the change. The request names the denied check, so Maya Okafor sees the use that prompted it:
The request is sent. If Maya Okafor signs, you receive license_request.signed and then license.revision_pending. Accept the revision at the license’s acceptance_url; when you receive license.revised, it is in force and you can check again.

Obligations

What an allow requires of you.

Escalation

Who reviews, and how long it can take.

Reason codes

Every reason, its stage and its remedy.

Decision semantics

The normative definition in the Standard.