Skip to content

Base URL & Authentication

CoreClaw’s API is a RESTful surface over three objects:

  • Worker — a runnable script in the Store or your private workspace.
  • Worker Task — a saved, optionally scheduled run configuration (input + settings).
  • Run — a single execution of a Worker or Task, producing logs and results.

The typical flow: find a Worker → read its input schema → start a run (async) → poll or receive a callback → read results or export a file. This page covers base URL, auth, conventions, and the full endpoint catalog; individual endpoints have their own pages.

Use https://openapi.coreclaw.com as the HTTP API base URL. Every v2 endpoint path starts with /api/v2, for example https://openapi.coreclaw.com/api/v2/users/account.

https://openapi.coreclaw.com

Authenticated endpoints support three token transport modes. Prefer Bearer tokens, while keeping compatibility with the legacy api-key header and query token:

Terminal window
-H "Authorization: Bearer YOUR_API_KEY"
ModeExampleNotes
Bearer tokenAuthorization: Bearer YOUR_API_KEYRecommended for new server-side integrations; also works in the browser playground
Legacy headerapi-key: YOUR_API_KEYCompatible with v1 integrations; server-side only — the browser playground cannot use it due to a CORS preflight restriction; use Bearer or query token instead
Query token?token=YOUR_API_KEYUse only when headers are unavailable; avoid logging tokenized URLs

Public endpoints do not require a token, including proxy region lookup and Store Worker search.

  • Read the Worker input schema before sending input; fields differ by Worker.
  • Use POST /api/v2/workers/{workerId}/runs for a direct Worker run, or POST /api/v2/worker-tasks/{workerTaskId}/runs for a saved task run.
  • is_async: true returns immediately; use runId to read details, logs, and results. is_async: false waits for completion and returns a synchronous result window.
  • offset is 1-based on list and result endpoints — offset=1 returns the first page (think of it as page_index = offset, with limit as the page size). limit is capped at 100.
  • Use export endpoints when the caller needs a downloadable result file instead of fetching every page in a browser.

Most JSON responses include code, message, request_id, and data. HTTP status describes the request layer; application code: 0 means the business operation succeeded. Keep HTTP status, code, message, and request_id when troubleshooting failed requests.

When code is non-zero, the business operation failed even though the request reached the service. Common ones: 12001/12002 (auth), 13000 (rate-limited), 30001 (insufficient balance), 50001/60001/70001 (Worker/task/run not found). See the full Error Codes page for the table and handling guidance.

For async runs, pass callback_url in the request body and CoreClaw will POST to it when the run finishes — no need to poll. Callers should still store data.run_slug and request_id for follow-up reads. See Callback Notifications.

IdentifierMeaningUsage
workerIdWorker identifierAccepts a Worker slug or a path encoded as owner~name from owner/name
workerTaskIdSaved task template identifierPassed as a path parameter when running a task template
runIdRun record identifierThe data.run_slug returned after starting or rerunning a Worker
#MethodEndpointDocs
1GET/api/v2/proxy/regionList Proxy Regions
2GET/api/v2/storeList Store Workers
3GET/api/v2/users/accountGet User Account
4GET/api/v2/workersList Workers
5GET/api/v2/workers/{workerId}Get Worker Detail
6GET/api/v2/workers/{workerId}/input-schemaGet Worker Input Schema
7POST/api/v2/workers/{workerId}/runsRun Worker
8GET/api/v2/worker-tasksList Worker Tasks
9POST/api/v2/worker-tasks/{workerTaskId}/runsRun Worker Task
10POST/api/v2/worker-tasksCreate Worker Task
11GET/api/v2/worker-tasks/{workerTaskId}Get Worker Task
12PUT/api/v2/worker-tasks/{workerTaskId}Update Worker Task
13DELETE/api/v2/worker-tasks/{workerTaskId}Delete Worker Task
14GET/api/v2/worker-tasks/{workerTaskId}/inputGet Worker Task Input
15PUT/api/v2/worker-tasks/{workerTaskId}/inputUpdate Worker Task Input
16GET/api/v2/worker-runsList Worker Runs
17GET/api/v2/worker-runs/lastGet Last Worker Run
18POST/api/v2/worker-runs/last/abortAbort Last Worker Run
19GET/api/v2/worker-runs/last/exportExport Last Worker Run Results
20GET/api/v2/worker-runs/last/logGet Last Worker Run Log
21POST/api/v2/worker-runs/last/rerunRerun Last Worker Run
22GET/api/v2/worker-runs/last/resultList Last Worker Run Results
23GET/api/v2/worker-runs/{runId}Get Worker Run Detail
24POST/api/v2/worker-runs/{runId}/abortAbort Worker Run
25GET/api/v2/worker-runs/{runId}/logGet Worker Run Log
26POST/api/v2/worker-runs/{runId}/rerunRerun Worker Run
27GET/api/v2/worker-runs/{runId}/resultList Worker Run Results
28GET/api/v2/worker-runs/{runId}/result/exportExport Worker Run Results
29GET/api/v2/workers/{workerId}/runs/lastGet Worker Last Run
30POST/api/v2/workers/{workerId}/runs/last/abortAbort Worker Last Run
31GET/api/v2/workers/{workerId}/runs/last/exportExport Worker Last Run Results
32GET/api/v2/workers/{workerId}/runs/last/logGet Worker Last Run Log
33POST/api/v2/workers/{workerId}/runs/last/rerunRerun Worker Last Run
34GET/api/v2/workers/{workerId}/runs/last/resultList Worker Last Run Results