Authentication, rate limits (5 req/s per workspace) and the error format are covered in the Introduction. Each tool’s page lists the inputs, options and output it uses.
Endpoints
List tools
GET /tools
Get a tool’s schema
GET /tools/:toolId/schema
Returns everything needed to build a run request:
Run a tool
POST /tools/:toolId/run
Finished within 25 seconds: 200 OK
status is completed or failed. A run that fails (for example, a LinkedIn URL that can’t be scraped) still returns 200, with status: "failed" and an error message instead of result; always check status. A lookup that finds nothing usually completes with empty fields.
AI models return their answer as text in result.raw instead of result.data.
The 25-second window starts after the request is validated, so a
202 can take around 30–45 seconds to arrive. Set your client timeout to at least 60 seconds.Still running: 202 Accepted
poll_url for the result.
Get a run
GET /tools/runs/:runId
Returns 202 with status: "running" until the run ends, then 200 with the same body as a finished run. Poll every 2–5 seconds. Results are kept for 24 hours.
Save to a grid
Sendgrid_id and column_map to also add the result to a grid as one new row. column_map maps a field to a grid column key:
grid_id or column key fails with 400/404 and costs nothing. A successful save adds grid_id and row_id to result. If the save itself fails after the run, the result is still returned with a persist_error.
Errors
These codes apply when the run fails within the first 25 seconds. A run that fails later is reported on its poll as
status: "failed" with the same message in error.
MCP
The same tools are available to MCP clients throughrun_tool_v1, with get_tool_run_v1 for long runs. See the MCP Reference.