Inner Age
Retrieve Inner Age results and marker-level contribution details for User-facing biological age experiences.
Inner Age
Inner Age helps Users understand how their calculated biological age compares with their chronological age. It is a proprietary summary measure based on blood biomarkers and body mass index (BMI), with a lower biological age generally indicating a more favorable health profile relative to chronological age.
The Inner Age APIs return User-specific result summaries and marker-level contribution details that can support dashboards, result-detail views, and longitudinal progress experiences. Inner Age is not only a score: the response can also show how biomarkers contributed to the result, which helps your application explain why a User's Inner Age changed and which markers may be useful to review.
Retrieve Inner Age history for a User, including chronological age, biological age, result date, and strength.
Use marker contribution details to show which biomarkers affected the Inner Age result.
Design for Users whose latest result does not satisfy an applicable minimum biomarker set.
Where This Fits
Use this page after you have created a linked customer record and added or ordered blood result data for the User. This page focuses on retrieving and presenting the Inner Age output.
What Inner Age Is
Inner Age estimates biological age from weighted blood biomarker values and BMI. The model uses age-related health outcomes and biomarkers that have meaningful relationships with age. A User's biological age can then be compared with their chronological age to summarize whether the User's current biomarker profile appears more or less favorable than expected for their age.
Biomarkers are selected independently for males and females. InsideTracker evaluates how strongly each biomarker correlates with age, then refines the model so selected biomarkers contribute distinct information rather than duplicating the same signal.
Inner Age can still be calculated when a User does not have every biomarker in the full model, as long as the result satisfies at least one qualifying minimum biomarker set. Fewer available biomarkers can reduce confidence in the prediction, so the result includes a strength value alongside the calculated biological age.
Data Needed For This Output
| Data | Required? | How InsideTracker receives it | Why it matters | If it is missing |
|---|---|---|---|---|
| Linked InsideTracker customer record and customer-level token | Required | Create the linked customer record for the User and store the returned credentials. | Inner Age endpoints are customer-level APIs. | Your application cannot retrieve User-specific Inner Age data. |
| Birth date | Required | Provided during User creation or account profile setup. | Inner Age compares biological age with chronological age. | User setup or profile completeness may block the output. |
| Biological sex | Required | Provided during User creation or account profile setup. | Inner Age uses sex-specific biomarker composition and minimum-set logic. | The API cannot determine which eligibility rules apply. |
| Eligible blood result data | Required | Add Blood Result, Blood Result Upload, OCR, or Lab Connect. | Inner Age is calculated from qualifying biomarker values. | No Inner Age result is available for that blood result. |
| Body mass index (BMI) or data to derive BMI | Model input | Profile/body data or InsideTracker-managed result context. | Inner Age uses BMI alongside blood biomarkers. | Result availability or confidence can depend on the available model inputs. |
| Qualifying minimum biomarker set | Required for each calculated result | Included in the blood result data. | A result must satisfy at least one applicable minimum set for the User's biological sex. | Inner Age is not calculated for that result. |
Inner Age is not calculated for Immunity and Advanced Home Kit results because the calculation strength is too low for those result types.
Workflow
Use the Inner Age APIs in two layers:
Retrieve the User's Inner Age result list when you need to show the result timeline, latest result summary, or a compact Inner Age widget.
GET /inner-age/customer/v1/results
Authorization: Bearer {customer_access_token}Retrieve the full Inner Age marker response when you need marker contribution details, missing marker information, or marker-level explanation context.
GET /api/customer/v1/inner-age/markers
Authorization: Bearer {customer_access_token}Output Availability
| State | What it means | Application handling |
|---|---|---|
| Inner Age result returned | The User has at least one blood result that produced Inner Age. | Show chronologicalAge, biologicalAge, testedAt, and contribution details when present. |
| No Inner Age results | The User has no calculated Inner Age result available. | Show an empty state instead of treating this as an integration error. |
| Partial biomarker coverage | The result satisfies a qualifying minimum set, but not every biomarker in the full model was available. | Show the returned strength value with the result and avoid presenting the estimate as more precise than the API indicates. |
| Missing markers returned | The full marker response includes missingMarkers or missingMarkersCount. | Use the missing-marker context in support or explanatory UI when helpful. |
| Result type does not qualify | Immunity and Advanced Home Kit results do not produce Inner Age. | Do not suggest that Inner Age failed or is still processing for those result types. |
Calculation Eligibility
Inner Age uses InsideTracker-defined biomarker sets selected for their relationship to aging. The biomarkers that compose Inner Age depend on the User's configured biological sex, and a result must satisfy at least one applicable minimum set before Inner Age can be calculated. A User can retrieve Inner Age when any one of the applicable sets is satisfied; satisfying multiple or all sets uses the same retrieval workflow.
Results can be calculated without every biomarker in the full model, but the returned strength can decrease when less model input is available.
| Set | Required biomarkers |
|---|---|
| Main set | Albumin, Ca, Glu, LDL |
| InnerAge | Glu, hsCRP |
| Vitality | Glu, HgbA1c, LDL, Tg, hsCRP |
| Essentials | Glu, HgbA1c, LDL, Tg, Ca |
| High performance | FT, HgbA1c, SHBG, hsCRP |
| Additional configured set | HgbA1c, LDL, Tg, hsCRP |
| Set | Required biomarkers |
|---|---|
| Main set | Alb, Glu, LDL, Tg |
| InnerAge | Glu, DHEAS |
| Vitality | Glu, HgbA1c, LDL, Tg |
| High performance | HgbA1c |
For female Users, Essentials is covered by the other minimum sets. The additional configured male set applies when enabled for a Partner or program-specific configuration.
For the full male and female biomarker composition, see Inner Age Biomarkers.
Inner Age And Optimal Zones
Inner Age and personalized optimal zones are related, but they are not the same output.
| Concept | What it means for implementation |
|---|---|
| Personalized optimal zones | Biomarker target ranges personalized from clinical ranges and User context such as age, sex, activity level, and other factors. |
| Inner Age contribution | A biomarker's contribution to biological age based on how that biomarker relates to chronological age in the Inner Age model. |
| Recommendations | Action-oriented guidance may focus on biomarkers that are not optimized and have applicable recommendation logic. |
A biomarker can contribute years to Inner Age even when the biomarker is inside its personalized optimal zone. Do not treat optimal-zone status and Inner Age contribution as interchangeable fields in your UI.
When presenting Inner Age detail:
- Show the Inner Age score and marker contribution context separately from optimal-zone charts.
- Use marker contribution fields from the Inner Age response to explain biological-age impact.
- Use Optimal Zones and recommendation APIs for marker status and action guidance.
- Do not assume every marker that contributes years to Inner Age will have a recommendation.
Get Inner Age Results
Use this endpoint to retrieve the full list of Inner Age results related to the authenticated User.
GET /inner-age/customer/v1/results
Authorization: Bearer {customer_access_token}The response includes a results array. Each result can include:
| Field | Description |
|---|---|
id | Inner Age result identifier. |
bloodResultId | Blood result associated with the Inner Age result. |
testedAt | Date associated with the result. |
chronologicalAge | User's chronological age for the result. |
biologicalAge | Calculated biological age for the result. |
projectedBestBioAge | Projected best biological age value returned by the API. |
projectedWorstBioAge | Projected worst biological age value returned by the API. |
strength | Strength value returned for the result. This supports confidence-aware display of the Inner Age estimate. |
markerContributions | Biomarker contribution entries for the result. |
Example response shape:
{
"results": [
{
"id": 213042,
"bloodResultId": 412412312,
"testedAt": "2024-07-16",
"chronologicalAge": 30.2,
"biologicalAge": 29.1,
"projectedBestBioAge": 25,
"projectedWorstBioAge": 45,
"strength": 5,
"markerContributions": [
{
"id": "Glu",
"value": 3.1,
"isOutOfRange": "true"
}
]
}
]
}Get The Full Inner Age Marker Response
Use this endpoint when your interface needs the marker-level Inner Age payload for the authenticated User.
GET /api/customer/v1/inner-age/markers
Authorization: Bearer {customer_access_token}The response can include:
| Field | Description |
|---|---|
markers | Biomarkers included in the response, with marker values and contribution fields. |
missingMarkers | Biomarkers returned as missing for the User's current Inner Age context. |
missingMarkersCount | Count of missing markers. |
markersCount | Count of markers returned. |
countOfWorsenMarkers | Count of markers returned as worsening contributors. |
countOfImproveMarkers | Count of markers returned as improving contributors. |
ageMin | Minimum age value returned by the API. |
ageMax | Maximum age value returned by the API. |
Marker objects can include fields such as abbr, name, unit, value, precision, valueContrib, origValueContrib, percentOfAge, outZone, thresholdValue, and range values. Use the fields returned by the API instead of hard-coding marker names, units, or explanatory text.
Response Codes
| Endpoint | Status | Meaning |
|---|---|---|
GET /inner-age/customer/v1/results | 200 | Inner Age results response returned. |
GET /api/customer/v1/inner-age/markers | 200 | Full Inner Age marker response returned. |
GET /api/customer/v1/inner-age/markers | 400 | Invalid request. |
Authentication failures follow the standard customer-level token handling described in Authorization and Security.
Best Practices
Implementation guidance
- Design for Users who do not have Inner Age results yet.
- Treat
bloodResultIdas the link between an Inner Age result and the underlying blood result workflow. - Use
markerContributions, missing-marker context, and the returned strength value for explanatory UI, not just the top-level age value. - Use Inner Age Biomarkers when you need to understand calculation eligibility.
- Keep Inner Age contribution separate from personalized optimal-zone status in your data model and UI.
- Display marker units from the API response because units can vary by biomarker.
- Do not hard-code the set of available Inner Age markers in your application.
- Retrieve recommendation and action-plan data through the related recommendation workflows rather than treating Inner Age contribution as a recommendation by itself.
Implementation Checklist
- You have a customer-level access token for the User.
- Your User setup includes birth date and biological sex.
- Your UI handles an empty
resultsarray or no available Inner Age result. - Your data model can connect
bloodResultIdback to the relevant blood result workflow. - Your UI handles Immunity and Advanced Home Kit results without implying that Inner Age is missing due to an error.
- Your UI distinguishes Inner Age contribution from personalized optimal-zone status.
- Your result display uses
chronologicalAge,biologicalAge,testedAt, andstrengthonly when those fields are present. - Your detail display uses marker contribution fields returned by the API.
- Your application logs API errors without logging access tokens.
Related API Reference
GET /inner-age/customer/v1/resultsGET /api/customer/v1/inner-age/markers- Inner Age Biomarkers
Updated 7 days ago