Evaluate guardrail checks against sample text.
const url = 'https://app.everruns.com/api/v1/capabilities/guardrails/dry-run';const options = { method: 'POST', headers: {'Content-Type': 'application/json'}, body: '{"config":{},"stage":"output","text":"the model said something darn surprising","tool_name":"bashkit_exec"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://app.everruns.com/api/v1/capabilities/guardrails/dry-run \ --header 'Content-Type: application/json' \ --data '{ "config": {}, "stage": "output", "text": "the model said something darn surprising", "tool_name": "bashkit_exec" }'Request Body required
Section titled “Request Body required ”Request body for the dry_run_guardrails operation: evaluate a
guardrails capability config against sample content without a session.
object
The guardrails capability config to evaluate (same shape persisted
in AgentCapabilityConfig.config).
object
Pipeline stage to evaluate.
Example
outputSample content: model output, serialized tool arguments, or tool
output, depending on stage.
Example
the model said something darn surprisingTool name for tool_use stage checks (tool_pattern rules).
Example
bashkit_execResponses
Section titled “ Responses ”Triggered checks for the sample content
Response for the dry_run_guardrails operation.
object
Whether any hit would block (i.e. the content would be suppressed or the tool call refused when this config runs active).
All triggered checks, in config order.
One triggered check from a guardrails dry run.
object
Effective action (advisory mode downgrades block to log).
The check’s id, or "<type>#<index>" when none was set.
Index of the check in the config’s checks array.
Bounded excerpt of what matched.
Stable machine-readable code, guardrail.<rule_type>.
The check’s custom replacement text, if configured.
Rule type: regex, blocklist, or tool_pattern.
Stage the check ran in.
Example
{ "hits": [ { "action": "block", "check_id": "profanity", "matched": "darn", "reason_code": "guardrail.blocklist", "rule_type": "blocklist", "stage": "output" } ]}Invalid guardrails config, stage, or oversized text
Standard error response.
Wire shape is RFC 9457 Problem Details:
every error response includes title and status, and may include
detail, code, allowed_actions, retry_after_seconds, instance,
and type. The content type is rewritten to application/problem+json
by [problem_json_content_type].
object
Recovery actions the caller can take next.
Agent-actionable link describing a follow-up the caller can take. Used in two contexts:
- Error recovery —
ErrorResponse.allowed_actionscarriesrels likeretry,retry-later,unarchive,get-existingso the agent knows the right next call after a 4xx/429. - Entity hypermedia —
WithUrls<T>.allowed_actionscarries state-awarerels likecancel,events,self,updateon the entity itself so the agent can follow links instead of reconstructing routes from prose.
The shape is intentionally identical across both contexts; the closed
rel vocabulary documented in specs/api-conventions.md distinguishes
them.
object
Short, agent-readable hint (e.g. “Shorten ‘name’ to <= 200 chars.”, “Cancel the active turn for this session.”).
Absolute (preferred) or relative URL the caller may invoke
directly. Always present on entity hypermedia actions
(WithUrls<T>.allowed_actions); optional on error-recovery
actions (ErrorResponse.allowed_actions) where the matching
operation_id is enough and the URI is implicit from the failed
call.
HTTP method to use against href. Required for entity hypermedia
actions; usually omitted on error-recovery actions where the same
operation is retried with its original method.
OpenAPI operationId the caller should invoke. Lets an MCP client
resolve the call without parsing href.
Link relation describing the action. Closed vocabulary documented
in specs/api-conventions.md — examples: self, cancel, pause,
resume, events, retry, retry-later, unarchive,
get-existing, delete, update.
OpenAPI $ref to the request-body schema, when the action takes one
(e.g. #/components/schemas/UpdateSessionRequest). Lets a tool-calling
agent fetch the input shape without scanning the whole spec.
Stable, machine-readable error code (snake_case).
Human-readable explanation specific to this occurrence.
Request URI for this occurrence.
Seconds the caller should wait before retrying (429 / transient 503).
HTTP status code; mirrors the response status line.
Short, human-readable summary of the problem (e.g. “Not Found”).
RFC 9457 problem type URI. Optional; identifies the problem class.
Example
{ "allowed_actions": [ { "method": "POST" } ], "code": "session_not_found", "detail": "Session session_01933b5a000070008000000000000001 not found in org org_01933b5a000070008000000000000001.", "instance": "/v1/sessions/session_01933b5a000070008000000000000001", "retry_after_seconds": 30, "status": 404, "title": "Session not found", "type": "https://docs.everruns.com/errors/session_not_found"}