API documentation

Submit and inspect a batch

Create small inline batches or private JSONL uploads, inspect row errors, and cancel pending work without repeating completed screens.

Updated

Inline input
100 subjects

Maximum subjects in one inline request.

Private upload
25 MB

JSONL files with up to 10,000 rows.

Acceptance
202 response

Track individual rows until completion.

Choose the appropriate input path

POST /api/v1/batches accepts a name and either subjects, an array of up to 100 screening requests, or one uploadId. Use Idempotency-Key for batch acceptance. Each subjects item follows the same schema as a single screening, including its explicit coverage selector.

Larger batches use the authorized private upload flow. Obtain an upload intent, transfer JSONL directly to private Blob storage through the client upload handshake, wait for completion, then reference the ready uploadId. The file limit is 25 MB with at most 10,000 rows. Do not send a large file through an ordinary JSON function request.

JSON request
{
  "name": "Synthetic review sample",
  "subjects": [
    {
      "subject": {
        "name": "Alex Morgan",
        "entityType": "person",
        "birthDate": "1984"
      },
      "package": "sandbox@1"
    }
  ]
}

Track acceptance separately from completion

A 202 response means a batch was accepted. It does not mean every row screened successfully. GET /api/v1/batches/{id} returns progress and bounded row details; use limit and offset for those rows. List batches with the normal cursor pagination.

Each completed row points to a screening ID. Failed rows carry errors and are not billed as completed screens. DELETE /api/v1/batches/{id} requests cancellation of pending work. Completed rows remain retained and counted, while unused reservations are released. Correct and resubmit failed subjects with new request identities instead of duplicating the entire completed batch.

KEEP BUILDING

Where to go next