Run a tool
run_toolRun one tool with JSON input. Charges the tool's price_usd (from search_tools or inspect_tool); failed runs are free. If the call should cost more than $0.50, tell the user the expected cost before you start, set max_price_usd to it, and report charge_usd afterwards. Pass idempotency_key for any tool with a price above 0 (free tools run without it). Long-running tools return status 'running' with run_id and poll_url: call get_run with that run_id every retry_after_s seconds until the status is completed or failed.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| job | No | Short name of the recurring task this run belongs to, e.g. daily-competitor-ads. Use the same name every time the task runs: the person sees those runs together in their app, with the schedule they keep. Same as project_id. | |
| tags | No | Optional key=value labels for this run, e.g. {"campaign": "launch"}. They are added to the tags of the API key you use (which you can't change here) and let your human split spend and set limits per tag. | |
| tool | Yes | Tool slug from search_tools, e.g. brasilapi.cnpj. | |
| input | Yes | JSON input matching the tool's input schema (see inspect_tool). | |
| agent_id | No | Optional label to group usage by agent. | |
| trace_id | No | Optional id tying related runs together, such as a plan_id. | |
| max_age_s | No | Free repeat lookups: if you already ran this tool with exactly this input and it succeeded at most this many seconds ago, get that result back free, with cache.fetched_at, instead of a new paid call. E.g. 86400 for a company record, 3600 for search results. Omit for a fresh call. | |
| project_id | No | Optional label to group usage by project or job (same as job). | |
| use_own_key | No | Default true: when your human connected their own key for this tool's vendor (superpowers.tools/app/connections), the call goes through their account and costs nothing here. Pass false to use Superpowers credit instead, e.g. when their key ran out. | |
| max_price_usd | No | Hard total buyer charge ceiling, including all job/comparison steps. | |
| idempotency_key | No | Stable key for one logical operation (1-128 letters, digits, _ . : / -). Reuse it to retry the same request, so a retry returns the first result instead of charging twice; use a new key for new work. Required by compare_providers, run_job and run_tool on tools that can charge; free tools (price 0) run without it. |