Executions API
Every /scrape call creates an execution row. The rows persist the full request, result, and error JSON for later inspection.
GET /executions
Section titled “GET /executions”List recent executions for the current key.
GET /executions?status=failed&limit=20Authorization: Bearer <token>Query params:
| Param | Type | Default | Notes |
|---|---|---|---|
status | pending | running | completed | failed | cancelled | — | Unknown values are ignored. |
limit | integer | server-defined | Most recent first. |
Response: ExecutionRow[], newest first:
{ id: string; apiKeyId: string; status: 'pending' | 'running' | 'completed' | 'failed' | 'cancelled'; request: ScrapeRequest; result: ScrapeResult | null; error: unknown | null; startedAt: string | null; // ISO completedAt: string | null; // ISO createdAt: string; // ISO}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.
curl -sS https://api.scrapesilo.com/executions/exec_01H… \ -H "Authorization: Bearer sf_…"{ "id": "exec_01H…", "status": "completed", "request": { "url": "…", "engine": "html", "actions": { … } }, "result": { "url": "…", "data": { … }, "tookMs": 312 }, "error": null, "startedAt": "2026-05-10T18:42:11.230Z", "completedAt": "2026-05-10T18:42:11.542Z", "createdAt": "2026-05-10T18:42:11.180Z"}The dashboard’s /executions page is a thin visual wrapper over these two endpoints.