Executions API
Every /scrape, /analyse, and /map call creates an execution row. The rows persist the full request, result, and error JSON for later inspection. Ids are ex_….
MCP equivalents: get_execution and list_executions — same row shape as these REST endpoints.
GET /executions
Section titled “GET /executions”List recent executions. Bearer (sf_…) is scoped to that key. A Clerk session sees every key on the account (optionally filtered with apiKeyId).
GET /executions?status=failed&limit=20&batchId=bt_…&apiKeyId=ak_…Authorization: Bearer <token>Query params:
| Param | Type | Default | Notes |
|---|---|---|---|
status | pending | running | completed | failed | cancelled | — | Unknown values are ignored. |
limit | integer | 50 (max 200) | Most recent first. |
batchId | string | — | Rows from one multi-URL request. null on single-URL runs. |
apiKeyId | string | — | Clerk users only: filter to one key. Ignored for raw API-key auth. |
Response: ExecutionRow[], newest first:
{ id: string; // ex_… apiKeyId: string; // ak_… status: 'pending' | 'running' | 'completed' | 'failed' | 'cancelled'; batchId: string | null; request: ExecutionRequest; // scrape | analyse | map body; request.engine is html | browser | analyse | map result: ExecutionResult | null; error: unknown | null; recordingUrl: string | null; // Playwright trace (browser), else null replayUrl: string | null; // live browser view; dies when the session is released startedAt: string | null; // ISO completedAt: string | null; // ISO createdAt: string; // ISO}request.engine is html | browser | analyse | map.
GET /executions/:id
Section titled “GET /executions/:id”Fetch a single execution. Returns ExecutionRow (same shape as above) or 404 if the id doesn’t belong to your key (Bearer) or account (Clerk).
curl -sS https://api.scrapesilo.com/executions/ex_8bd378d8 \ -H "Authorization: Bearer sf_…"{ "id": "ex_8bd378d8", "apiKeyId": "ak_d102c5de", "status": "completed", "batchId": null, "request": { "url": "https://example.com", "engine": "browser", "actions": { "title": "h1" } }, "result": { "url": "https://example.com/", "data": { "title": "Example Domain" }, "tookMs": 153, "antibot": [] }, "error": null, "recordingUrl": "https://assets.scrapesilo.com/recordings/ex_8bd378d8.zip", "replayUrl": null, "startedAt": "2026-08-13T19:20:44.354Z", "completedAt": "2026-08-13T19:20:44.663Z", "createdAt": "2026-08-13T19:20:44.360Z"}The dashboard’s /executions page is a thin visual wrapper over these two endpoints.