Skip to main content
Version: v1 · Plan Required: Any paid plan 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

The run keeps going. Poll 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

Send grid_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:
The grid and column keys are checked before the tool runs, so a bad 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 through run_tool_v1, with get_tool_run_v1 for long runs. See the MCP Reference.