Skip to content

Test Tool

POST /tools/{tool_id}/test

Invoke a tool outside a run (annex 09 §8).

Arguments are validated against the tool’s schema; secrets resolve in the caller’s scope, exactly as they would at run time; the response is redacted and capped at the tool’s own response_max_chars. Nothing is written: no run, no step, no ledger row — except for code_exec and web_search, which cost money and are therefore attributed to the caller.

Rate-limited separately from the general API limit, because this endpoint is the most convenient way in the product to hammer a partner API.

NameInTypeNotes
tool_idpathstring (uuid)required—
FieldTypeNotes
argumentsobjectoptional—
StatusDescriptionBody
200Successful ResponseToolTestResult
422Validation ErrorHTTPValidationError

The body shows the fields the schema always carries. Which combination is legal is a service rule the schema cannot express, so read the description above before copying this.

Terminal window
curl -X POST https://your-deployment.example.com/tools/{tool_id}/test \
-H "Authorization: Bearer $COBRE_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"arguments": {}
}'
FieldTypeNotes
tool_idstring (uuid)required—
slugstringrequired—
okbooleanrequired—
outputstringrequired—
truncatedbooleanoptionalDefault false.
duration_msintegeroptionalDefault 0.
credentials_usedstring[]optional—
errorstring | nulloptional—