Webhooks
Receive InsideTracker events for blood result updates, BRU processing, and calculated outputs.
Webhooks
Webhooks let InsideTracker notify your system when result processing, data onboarding, or generated content reaches a point your integration may need to act on.
Use webhooks for event-driven updates. Use status or retrieval APIs when your application needs the latest state on demand, or when it needs to recover after a missed event.
Accept event payloads at your configured HTTPS endpoint.
Use extId and event-specific identifiers such as bloodTestId or processId to connect events to your records.
Store or enqueue events quickly, then process downstream work asynchronously.
Where This Fits
Use this page when your integration needs to react to asynchronous InsideTracker updates instead of relying only on polling.
| You already have | You receive here | This helps support |
|---|---|---|
Your configured webhook endpoint and a way to map extId to your User record | Event payloads for blood result updates, BRU terminal states, and calculated outputs | Timely status updates in your system, result workflows, and User notifications |
Event Types
The current public API reference documents these webhook events.
Data Processing And Platform Events
These events tell your system that blood result processing or data onboarding workflow state has changed.
| Event | API reference path | When it is sent | Key fields |
|---|---|---|---|
| Blood result published | POST /webhooks/blood-result-published | A blood result is published. | extId, bloodTestId |
| Blood result activation approved | POST /webhooks/blood-result-activation-approved | A blood result activation is approved. | extId, bloodTestId, mbd.partnerId |
| Blood result activation MBD changed | POST /webhooks/blood-result-activation-mbd-changed | The Mobile Blood Draw provider associated with a blood result activation changes. | extId, bloodTestId, mbd.partnerId |
| BRU terminal webhook | POST /webhooks/bru-terminal | A Blood Result Upload process reaches a terminal state, such as PUBLISHED or COMPLETE. | timestamp, processId, extId, status, autoPublishResult, validationMode, bloodResults |
Content And Output Availability Events
These events tell your system that a User-facing output or generated content is available or has been recalculated.
| Event | API reference path | When it is sent | Key fields |
|---|---|---|---|
| Customer Inner Age calculated | POST /webhooks/customer-inner-age-calculated | A User's Inner Age is calculated. | extId, bloodTestId |
What To Do With Events
| Event area | Typical application action |
|---|---|
| Inner Age | Refresh or retrieve Inner Age data for the User when the calculated event arrives. |
| Blood result publication | Refresh blood result and output availability for the User. |
| Blood result activation | Update the User's lab-ordering or blood-draw status in your application. |
| BRU terminal state | Use the processId and status to complete the BRU workflow in your system, then retrieve published blood results when available. |
Before You Begin
To receive webhooks, provide InsideTracker with the endpoint URL where webhook events should be delivered.
Your webhook endpoint should:
- Accept HTTPS
POSTrequests. - Parse JSON request bodies.
- Return a success response quickly after receiving an event.
- Store the event or enqueue downstream work before doing slower processing.
- Use event identifiers to avoid duplicate downstream actions if the same event is replayed, resent, or manually retried.
Confirm endpoint configuration, authentication, and delivery behavior with InsideTracker before production launch. The public API reference documents event paths, payload schemas, examples, and the expected 200 response from your endpoint; integration-specific delivery settings may be configured outside the public API reference.
Payload Examples
{
"extId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"bloodTestId": 99
}{
"extId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"bloodTestId": 99
}{
"extId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"bloodTestId": 99,
"mbd": {
"partnerId": "partner-xyz"
}
}{
"timestamp": "2025-01-15T10:45:00Z",
"processId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"extId": "6fa85f64-5717-4562-b3fc-2c963f66afa6",
"status": "PUBLISHED",
"autoPublishResult": true,
"validationMode": "AUTO",
"bloodResults": [
{
"legacyId": 99
}
]
}Handling Events
When your endpoint receives a webhook:
- Validate the request according to your configured webhook security model.
- Parse the JSON payload.
- Use
extIdto find the matching User in your system. - Store the event or enqueue downstream work.
- Return a success response quickly.
- Process follow-up actions asynchronously.
Use event-specific identifiers for correlation:
| Identifier | Use it for |
|---|---|
extId | Mapping the event back to your User. |
bloodTestId | Correlating Inner Age, blood result publication, and blood result activation events. |
processId | Correlating BRU terminal events with a submitted BRU process. |
legacyId | Identifying published blood results returned by BRU terminal events. |
Idempotency And Recovery
Design webhook processing so your system can safely receive the same logical event more than once.
Recommended practices:
- Store received events with a stable deduplication key.
- Use
extIdplus event type and event-specific identifiers such asbloodTestIdorprocessId. - Return a success response after safely storing or queuing the event.
- Retry downstream work from your own queue if your internal processing fails.
- Use status or retrieval APIs to recover state when your system may have missed an event.
- Log malformed events without exposing sensitive User data.
Testing Webhook Workflows
During sandbox testing, confirm that your webhook endpoint can:
- Receive events from InsideTracker.
- Match
extIdto the correct User. - Handle each event type your integration subscribes to.
- Avoid duplicate downstream actions.
- Recover state through status or retrieval APIs when needed.
- Fail gracefully when downstream systems are unavailable.
The sandbox API includes an endpoint to emulate a User test result being published:
POST /enterprise/sandbox/sa/v1/customer/{externalId}/blood-test/{testId}/publishResult
Authorization: Bearer {service_access_token}Use this as part of webhook and downstream workflow testing when validating blood-result-related event handling.
Related API Reference
| Area | Endpoint |
|---|---|
| Customer Inner Age calculated | POST /webhooks/customer-inner-age-calculated |
| Blood result published | POST /webhooks/blood-result-published |
| Blood result activation approved | POST /webhooks/blood-result-activation-approved |
| Blood result activation MBD changed | POST /webhooks/blood-result-activation-mbd-changed |
| BRU terminal webhook | POST /webhooks/bru-terminal |
| Sandbox blood result publish emulator | POST /enterprise/sandbox/sa/v1/customer/{externalId}/blood-test/{testId}/publishResult |
Updated 28 days ago