CortexPlus Health API
The Health API from CortexPlus — 2 operation(s) for health.
The Health API from CortexPlus — 2 operation(s) for health.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/cortexplus-io:cortexplus-io-health-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Cortexplus Io Health API
version: 1.0.0
description: 'Operations tagged Health across 2 of this provider''s published API definitions: cortexplus-io-openapi.json, cortexplus-io-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.cortexplus.io
security:
- bearerAuth: []
tags:
- name: Health
paths:
/v1/health/summary:
get:
operationId: getHealthSummary
summary: Summarize health data
description: 'Health data is only returned to API keys/agents when the user enabled `settings.healthAgentAccess`; otherwise the response is `{ "error": "health data is not shared with agents" }`. Summarize latest body metrics, 180-day series, flagged lab results, recent exams, routines and last workout.'
x-openai-isConsequential: false
parameters:
- name: timezone
in: query
description: IANA time zone; defaults to the account setting.
schema:
type: string
responses:
'200':
description: Successful response.
content:
application/json:
schema:
type: object
required:
- latest
- series
- flaggedResults
- recentExams
- routines
- lastWorkout
properties:
latest:
type: object
additionalProperties:
type: object
required:
- value
- unit
- date
- nodeId
properties:
value:
type: number
unit:
type: string
date:
type: string
nodeId:
type: string
series:
type: object
additionalProperties:
type: array
items:
type: object
required:
- date
- value
- nodeId
properties:
date:
type: string
value:
type: number
nodeId:
type: string
flaggedResults:
type: array
items:
type: object
required:
- nodeId
- date
- key
- name
- value
- unit
- flag
properties:
nodeId:
type: string
date:
type: string
key:
type: string
name:
type: string
value:
type:
- number
- 'null'
unit:
type:
- string
- 'null'
flag:
type: string
enum:
- low
- high
recentExams:
type: array
items:
type: object
additionalProperties: true
description: Full node as returned by the CortexPlus backend.
properties:
ancestors:
type: array
items:
type: object
required:
- id
- title
- type
- tags
properties:
id:
type: string
title:
type: string
type:
type: string
tags:
type: array
items:
type: string
interaction:
type: object
required:
- lastAt
- days
- answered
properties:
lastAt:
type:
- string
- 'null'
format: date-time
days:
type:
- integer
- 'null'
answered:
type: boolean
parent:
type: object
required:
- id
- title
- type
- tags
properties:
id:
type: string
title:
type: string
type:
type: string
tags:
type: array
items:
type: string
relevance:
type:
- object
- 'null'
description: 'Computed relevance (not stored): score 0-100, level, reason codes. null when no scorer applies.'
properties:
score:
type: integer
minimum: 0
maximum: 100
level:
type: string
enum:
- low
- normal
- high
- critical
reasons:
type: array
items:
type: string
snoozedUntil:
type:
- string
- 'null'
format: date
aiDelta:
type: integer
minimum: -20
maximum: 20
routines:
type: array
items:
type: object
additionalProperties: true
description: Full node as returned by the CortexPlus backend.
properties:
ancestors:
type: array
items:
type: object
required:
- id
- title
- type
- tags
properties:
id:
type: string
title:
type: string
type:
type: string
tags:
type: array
items:
type: string
interaction:
type: object
required:
- lastAt
- days
- answered
properties:
lastAt:
type:
- string
- 'null'
format: date-time
days:
type:
- integer
- 'null'
answered:
type: boolean
parent:
type: object
required:
- id
- title
- type
- tags
properties:
id:
type: string
title:
type: string
type:
type: string
tags:
type: array
items:
type: string
relevance:
type:
- object
- 'null'
description: 'Computed relevance (not stored): score 0-100, level, reason codes. null when no scorer applies.'
properties:
score:
type: integer
minimum: 0
maximum: 100
level:
type: string
enum:
- low
- normal
- high
- critical
reasons:
type: array
items:
type: string
snoozedUntil:
type:
- string
- 'null'
format: date
aiDelta:
type: integer
minimum: -20
maximum: 20
lastWorkout:
anyOf:
- type: object
additionalProperties: true
description: Full node as returned by the CortexPlus backend.
properties:
ancestors:
type: array
items:
type: object
required:
- id
- title
- type
- tags
properties:
id:
type: string
title:
type: string
type:
type: string
tags:
type: array
items:
type: string
interaction:
type: object
required:
- lastAt
- days
- answered
properties:
lastAt:
type:
- string
- 'null'
format: date-time
days:
type:
- integer
- 'null'
answered:
type: boolean
parent:
type: object
required:
- id
- title
- type
- tags
properties:
id:
type: string
title:
type: string
type:
type: string
tags:
type: array
items:
type: string
relevance:
type:
- object
- 'null'
description: 'Computed relevance (not stored): score 0-100, level, reason codes. null when no scorer applies.'
properties:
score:
type: integer
minimum: 0
maximum: 100
level:
type: string
enum:
- low
- normal
- high
- critical
reasons:
type: array
items:
type: string
snoozedUntil:
type:
- string
- 'null'
format: date
aiDelta:
type: integer
minimum: -20
maximum: 20
- type: 'null'
default:
description: Request failed.
content:
application/json:
schema:
type: object
properties:
error:
type: string
field:
type: string
required:
- error
tags:
- Health
servers:
- url: https://api.cortexplus.io
/v1/health/metric:
get:
operationId: getHealthMetric
summary: Get a health metric series
description: 'Health data is only returned to API keys/agents when the user enabled `settings.healthAgentAccess`; otherwise the response is `{ "error": "health data is not shared with agents" }`. Get a body metric or lab result series.'
x-openai-isConsequential: false
parameters:
- name: key
in: query
required: true
description: Body metric key (weightKg, heightCm, bmi, bodyFatPct, muscleMassKg, visceralFat, bodyWaterPct, boneMassKg, basalMetabolismKcal, metabolicAge) or `lab:<resultKey>`, e.g. `lab:glicose`.
schema:
type: string
- name: from
in: query
description: First date in the metric series.
schema:
type: string
format: date
- name: to
in: query
description: Last date in the metric series.
schema:
type: string
format: date
responses:
'200':
description: Successful response.
content:
application/json:
schema:
type: object
required:
- key
- unit
- points
properties:
key:
type: string
unit:
type:
- string
- 'null'
points:
type: array
items:
type: object
required:
- date
- value
- nodeId
- source
properties:
date:
type: string
value:
type: number
nodeId:
type: string
source:
type: string
enum:
- measurement
- exam
default:
description: Request failed.
content:
application/json:
schema:
type: object
properties:
error:
type: string
field:
type: string
required:
- error
tags:
- Health
servers:
- url: https://api.cortexplus.io
components:
securitySchemes:
bearerAuth:
type: http
scheme: bearer
x-refined-from:
- cortexplus-io-openapi.json
- cortexplus-io-openapi.yml