Run a tool on many inputs
run_batchRun one tool over many inputs (up to 500) in one call, e.g. verify 300 emails or look up 100 companies. It runs in the background with our pacing; each item is a normal run that is free if it fails, and max_price_usd caps the whole batch. If price_usd times the number of inputs is above $0.50, tell the user that total before you start. Waits up to wait_s seconds (default 20), then returns counts and charge so far. Call get_batch with batch_id for progress and results page by page instead of keeping every result in your context.
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. | |
| inputs | Yes | One input object per item, each in the tool's input schema | |
| wait_s | No | ||
| 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). | |
| concurrency | No | ||
| 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 | Yes | 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. |