curl -X POST "https://api.danubeai.com/v1/tools/public/tool_abc123/try" \
-H "Content-Type: application/json" \
-d '{"tool_input": {"city": "San Francisco"}}'
{
"tool_id": "tool_abc123",
"status": "success",
"result": {
"temperature": "18C",
"condition": "Partly cloudy"
},
"error": null,
"execution_time": 0.42,
"truncated": false,
"execution_id": "exec_xyz789",
"run_url": "/tools/public/runs/exec_xyz789"
}
Tools
Try Public Tool
Run a credential-free tool with no account, from its catalog page
POST
/
v1
/
tools
/
public
/
{tool_id}
/
try
curl -X POST "https://api.danubeai.com/v1/tools/public/tool_abc123/try" \
-H "Content-Type: application/json" \
-d '{"tool_input": {"city": "San Francisco"}}'
{
"tool_id": "tool_abc123",
"status": "success",
"result": {
"temperature": "18C",
"condition": "Partly cloudy"
},
"error": null,
"execution_time": 0.42,
"truncated": false,
"execution_id": "exec_xyz789",
"run_url": "/tools/public/runs/exec_xyz789"
}
Overview
Runs a tool that needs no credential, with no account. This is what the try-it control on a public tool page calls. The run is recorded under a shared public identity rather than any account, and the result is stored so it can be shared atrun_url.
Auth: None.
Eligibility
The tool must pass every check below, or the response is403:
- Its service is public.
- Its service declares no credential schema.
- It is not deprecated.
- It is not a Danube-hosted AI tool.
- It is not paid, by per-call price or by x402 pricing.
404.
Limits
| Limit | Behaviour |
|---|---|
| 10 requests per minute per IP address | Rate limited |
| 50 runs per day per IP address | 429 with a message suggesting sign-up. The counter is keyed on a hash of the address. |
| 10 seconds per run | 504 when the tool has not answered in time |
fields, max_response_chars, timeout_seconds, confirm_token) are not read here.
Path Parameters
string
required
The tool UUID or slug
Body Parameters
object
Input parameters for the tool. When the body has no
tool_input key, the whole body is taken as the input.Response
The same execution envelope as Call Tool (status, result, error, execution_time, error_type, fault, retryable, truncated, redaction and the rest), plus two fields:
string
Handle for the stored run
string
/tools/public/runs/{execution_id}. The stored run is readable without auth at GET /v1/tools/public/runs/{execution_id}, which returns execution_id, tool_id, tool_name, tool_slug, service_id, service_name, service_slug, service_logo, status, executed_at, execution_time, error, request_params, result and truncated. Only runs made through this endpoint are readable there.Example
The Python and TypeScript SDKs do not wrap this endpoint, and it is not an MCP tool. Signed-in callers use Call Tool.curl -X POST "https://api.danubeai.com/v1/tools/public/tool_abc123/try" \
-H "Content-Type: application/json" \
-d '{"tool_input": {"city": "San Francisco"}}'
{
"tool_id": "tool_abc123",
"status": "success",
"result": {
"temperature": "18C",
"condition": "Partly cloudy"
},
"error": null,
"execution_time": 0.42,
"truncated": false,
"execution_id": "exec_xyz789",
"run_url": "/tools/public/runs/exec_xyz789"
}
