A new call returns HTTP 202 with jobId, charged and replayed: false. The server validates identity, input and price. Invalid input returns 400, insufficient balance 409 and unavailable providers 503.
Retry safely
Use a unique Idempotency-Key (1–128 letters, numbers, dots, underscores, colons or hyphens) for each logical call. Reusing it with the same normalized input returns the original jobId, charged: 0 and replayed: true with HTTP 200. Reusing it with different input returns 409 idempotency_conflict. Keys are isolated by account. Retain the same key after a network timeout.
Read and export
GET /api/jobs/{id} returns status and artifacts. Poll until done or failed. On success, artifacts contains a data-table with source, market, query, columns and rows. Failures refund the saved call cost. GET /api/jobs/{id}/export downloads CSV without another provider request or charge. All results require account ownership.
The hierarchy is data category → tool → API. Use GET /api/endpoints?tool=tiktok&status=available&page=1 to discover published APIs (24 per page), and GET /api/tools/{endpointId} for the exact schema, price and limits. Submit an endpoint ID as kind, not the parent tool ID. Native endpoint input uses body, query and path only when declared. Results use the endpoint-json artifact with provider, endpoint, fetchedAt and result; exports are JSON. The original recipe IDs and CSV exports remain compatible.
Submit a call
Set
SORIT_URLto your Sorit origin. Discover available tools withGET /api/tools; unconnected tools cannot run.curl "$SORIT_URL/api/jobs" \ -H "Authorization: Bearer $SELLERTOOL_API_KEY" \ -H "Content-Type: application/json" \ -H "Idempotency-Key: research-request-001" \ -d '{"kind":"amazon-search","input":{"query":"travel mug","market":"US"}}'A new call returns HTTP 202 with
jobId,chargedandreplayed: false. The server validates identity, input and price. Invalid input returns 400, insufficient balance 409 and unavailable providers 503.Retry safely
Use a unique
Idempotency-Key(1–128 letters, numbers, dots, underscores, colons or hyphens) for each logical call. Reusing it with the same normalized input returns the originaljobId,charged: 0andreplayed: truewith HTTP 200. Reusing it with different input returns 409idempotency_conflict. Keys are isolated by account. Retain the same key after a network timeout.Read and export
GET /api/jobs/{id}returns status and artifacts. Poll untildoneorfailed. On success,artifactscontains adata-tablewithsource,market,query,columnsandrows. Failures refund the saved call cost.GET /api/jobs/{id}/exportdownloads CSV without another provider request or charge. All results require account ownership.The hierarchy is data category → tool → API. Use
GET /api/endpoints?tool=tiktok&status=available&page=1to discover published APIs (24 per page), andGET /api/tools/{endpointId}for the exact schema, price and limits. Submit an endpoint ID askind, not the parent tool ID. Native endpoint input usesbody,queryandpathonly when declared. Results use theendpoint-jsonartifact withprovider,endpoint,fetchedAtandresult; exports are JSON. The original recipe IDs and CSV exports remain compatible.