Endpoint
Authentication
Checkpoint Model
Every runtime decision uses the same endpoint and a differentcheckpoint_type.
| Checkpoint | When to call it | Valid decisions |
|---|---|---|
request | Before provider execution. | allow, block, restrict_tools |
tool_call | After the model requests a tool, before your app executes it. | allow, block |
tool_result | After your app gets tool output, before sending it back to the model. | allow, block |
output | After the provider returns final text, before your app returns it. | allow, block, rewrite |
Shared Body Fields
| Field | Required | Description |
|---|---|---|
checkpoint_type | Yes | One of request, tool_call, tool_result, or output. |
client | Recommended | Client metadata. SDKs send { "type": "sdk", "name": "...", "version": "..." }. Custom adapters should send { "type": "api", "name": "...", "version": "..." }. |
provider | Yes | Provider metadata: name, operation, model, and streaming. |
request_context | Recommended | Correlation IDs: conversation_id, request_id, and trace_id. |
Request Checkpoint
Callrequest before sending user input to the model. Include normalized user payload and optional tools.
restrict_tools means the request may continue, but your adapter must remove the named tools before calling the provider.
run_id into later tool_call checkpoints for this model run.
Media on Request
If your adapter supports images, send media separately from text.image/jpeg, image/png, and image/webp.
Tool-call Checkpoint
Calltool_call after the model requests a tool and before your app executes it.
block, do not execute the tool.
Tool-result Checkpoint
Calltool_result after your app receives tool output and before sending that output back to the model.
block, do not send the tool output back to the model.
Output Checkpoint
Calloutput after the provider returns final text and before your app returns it to the user.
rewrite, ask the provider for a safer answer, then call the output checkpoint again with rewrite_attempt: 1.
Response Fields
| Field | Description |
|---|---|
decision | Decision outcome for this checkpoint. |
decision_id | Unique decision identifier. |
event_id | Dashboard event identifier. |
policy_id | Policy that produced the decision. |
reasons | Machine-readable reason objects with code and message. |
run_id | Tool-run identifier, present when a request starts or continues a tool chain. |
blocked_tools | Tool names blocked by a restrict_tools request decision. |
tool | Tool identity for tool-call and tool-result decisions. |
actions.rewrite.category | Rewrite category for output rewrite decisions. |
Adapter Rules
- Do not call the provider when a request checkpoint returns
block. - Remove
blocked_toolsbefore provider execution when a request checkpoint returnsrestrict_tools. - Do not execute a tool when a tool-call checkpoint returns
block. - Do not send tool output back to the model when a tool-result checkpoint returns
block. - Do not return final text to the user when an output checkpoint returns
block. - For output
rewrite, generate a rewritten answer and check it again withrewrite_attempt: 1.