Customers
Create and look up the customers your kits and reports belong to. Attach additional health data to them — quiz responses, existing test results, or uploaded files. File uploads require the Uploads feature to be enabled for your business, and large file uploads can be processed asynchronously via a pollable job.
Get a customer
Returns a customer's `id`, `name`, `email`, and `reports` — one entry per report with collection and result dates and publication status. `id` accepts the customer ID or your `external_id`. Fetch full report content with `GET /api/v1/customers/{id}/reports/{reportID}`.
List customers
Returns every customer that belongs to your business, each with `id`, `name`, `email`, and the IDs of their reports. The response is not paginated. Fetch report dates and status with `GET /api/v1/customers/{id}`.
Create a customer
Creates a customer under your business and returns the new record, including its `id`. Only `email` and `name` are required (`dateOfBirth` and `gender` are optional), and the email must not already belong to an existing user (`409`). Use the returned `id` as `userId` when submitting data via `POST /api/v1/customer/add-data`.
Add data for a customer
Adds a quiz response, a set of biomarker test results, or a lab results file to a customer's
Get file processing job status
Returns the status of an asynchronous file job started by `POST /api/v1/customer/add-data` with `async: true`. While the file is being processed the status is `pending` or `processing`; on completion `result` carries the same payload as the synchronous file response, and on failure the job reports `failed` with an `error`.