Submit a compute task
Queues a task for the operator network and returns a task_id to poll. The request is authenticated, load-shed against the queue capacity, then validated (field-level, then on-chain) before it is accepted. A 202 means the task was queued: poll GET /tasks/{task_id} until it is ready, then sign and submit the returned payload yourself.
A repeat of a submission that is still in flight collapses onto the original rather than creating a second task, and answers 200 with deduplicated: true. Deduplication is keyed on the calling key, the target, and the transition index, so it only applies to a submission that named an explicit transition_index.
Submission is rate limited per API key (60 requests per minute by default). Over the limit returns 429 with a Retry-After header.
Authorization
ApiKeyAuth An API key for task submission and polling, sent as Authorization: Bearer gk_....
In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/tasks" \ -H "Content-Type: application/json" \ -d '{ "body": { "target_address": "0x0000000000000000000000000000000000000001", "call_data": [ 171, 205, 239, 1 ], "from_address": "0x0000000000000000000000000000000000000001", "value": "0x0", "block_height": 1 } }'{ "task_id": "3f8c1e02-9a4b-4c7d-8e1f-2b6a5c9d0e11", "status": "queued", "deduplicated": true}{ "task_id": "3f8c1e02-9a4b-4c7d-8e1f-2b6a5c9d0e11", "status": "queued", "deduplicated": false}{ "error": { "code": "INVALID_ADDRESS", "message": "target_address is zero" }}{ "error": { "code": "UNAUTHORIZED", "message": "Unauthorized" }}{ "error": { "code": "INVALID_REQUEST", "message": "Failed to deserialize the JSON body into the target type" }}{ "error": { "code": "RATE_LIMITED", "message": "Rate limit exceeded; retry after the indicated delay" }}{ "error": { "code": "INTERNAL", "message": "Internal error: task queue unavailable" }}{ "error": { "code": "QUEUE_FULL", "message": "Service at capacity, please try again in a few minutes" }}