Add Blood Result
Submit structured blood result marker values for a User and store the resulting blood result ID for downstream workflows.
Add Blood Result
Add Blood Result lets you submit structured blood result marker values for a User's linked InsideTracker customer record. Use this workflow when your system already has marker values, test dates, and the context needed to create a blood result through the API.
This is one blood result onboarding path. Other blood result sources, such as document-based submissions through BRU or ordered lab tests through Lab Connect, can also contribute blood result data when they are part of your integration.
Resolve marker IDs, expected units, and upload availability before submission.
Send the test date, country, and marker values through the Add Blood Result endpoint.
Keep the returned resultId for retrieval, troubleshooting, and downstream output workflows.
Where This Fits
Use Add Blood Result when your integration needs to send structured blood marker values directly to InsideTracker for a User.
| You already have | You do here | This helps support |
|---|---|---|
| A linked InsideTracker customer record, a customer-level token, source blood marker values, and test-date context | Validate supported markers, submit the result, and store the returned resultId | Blood-result-based outputs such as Optimal Zones, recommendations, scores, Inner Age, and other biomarker experiences |
Before You Begin
Before submitting a structured blood result, make sure your integration can:
- Make customer-level API requests for the User.
- Map your source markers to InsideTracker-supported biomarkers.
- Convert values to the expected units for each marker.
- Confirm which markers are available for upload.
- Store
resultIdvalues returned by InsideTracker. - Avoid submitting duplicate results when retrying after network failures or failures in your system.
Marker Preparation
The Add Blood Result request uses markerId values. Prepare those IDs before you submit a result.
| Step | Endpoint | Purpose |
|---|---|---|
| Retrieve biomarker reference data | GET /api/public/references/blood-markers | Get biomarker IDs, abbreviations, display names, default units, and input bounds. |
| Confirm upload availability | GET /api/customer/blood/results-upload/available-markers-for-new-result | Get marker abbreviations that are available for a new blood result upload for the User. |
| Confirm units if needed | GET /api/public/references/blood-marker-units | Retrieve unit metadata and conversion factors when your source values use different units. |
Use biomarker reference data to map source markers to InsideTracker markerId values. Use the upload-available marker list to confirm that the markers you plan to submit are allowed for a new result.
Submit A Blood Result
Submit a structured blood result with a customer-level token:
POST /api/customer/v1/blood/results-upload/add-result
Content-Type: application/json
Authorization: Bearer {customer_token}{
"testDate": "2026-05-01",
"countryCode": "US",
"markerValues": [
{
"markerId": 17,
"value": 95.0
}
]
}Request fields:
| Field | Required? | Description |
|---|---|---|
testDate | Yes | Date the blood result was tested or collected, formatted as YYYY-MM-DD. |
countryCode | Yes | Country context for the result, such as US. |
markerValues | Yes | Array of submitted biomarker values. |
markerValues[].markerId | Yes | InsideTracker biomarker ID from reference data. |
markerValues[].value | Yes | Numeric marker value in the expected unit for that marker. |
The response includes the blood result ID:
{
"message": "Result added to user",
"resultId": 31232,
"isLatestResult": true
}Response fields:
| Field | Use |
|---|---|
message | Human-readable response message. |
resultId | Identifier for the created blood result. Store this value. |
isLatestResult | Indicates whether this result is currently the latest result for the User. |
Retrieve Or Update Submitted Results
Use the returned resultId when you need to inspect or update the submitted result.
| Need | Endpoint | Notes |
|---|---|---|
| List User blood results | GET /api/customer/v1/blood/results | Returns blood results for the User. |
| Retrieve one blood result | GET /api/customer/v1/blood/results/{id} | Use the blood result ID returned by add or list workflows. |
| Check markers available for an existing result | GET /api/customer/blood/results-upload/{resultId}/available-markers | Use when preparing an update for an existing result. |
| Update a submitted result | PATCH /api/customer/v1/blood/results-upload/{resultId} | Uses testDate, countryCode, and markerValues. The API can return 403 when a result is not editable. |
Validation And Duplicate Handling
Before sending a result:
- Confirm every marker is supported by InsideTracker reference data.
- Confirm every marker is available for upload for the User/result context.
- Convert each value to the expected unit before submission.
- Keep the source test date attached to the result.
- Validate values against reference metadata where available.
- Store source-system identifiers in your system so retries do not create confusing duplicate results.
Related API Reference
| Area | Endpoint |
|---|---|
| Add blood result | POST /api/customer/v1/blood/results-upload/add-result |
| Available markers for new result | GET /api/customer/blood/results-upload/available-markers-for-new-result |
| Available markers for existing result | GET /api/customer/blood/results-upload/{resultId}/available-markers |
| Update blood result | PATCH /api/customer/v1/blood/results-upload/{resultId} |
| List blood results | GET /api/customer/v1/blood/results |
| Get specific blood result | GET /api/customer/v1/blood/results/{id} |
| Biomarker reference data | GET /api/public/references/blood-markers |
| Biomarker unit reference data | GET /api/public/references/blood-marker-units |
Related Topics
- Blood Result Upload
- OCR Blood Result Upload
- Lab Connect
- Biomarker Reference Data
- Supported Biomarkers
- Optimal Zones
Updated 28 days ago