AlayaCare Vitals API
The Vitals API from AlayaCare — 3 operation(s) for vitals.
The Vitals API from AlayaCare — 3 operation(s) for vitals.
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/alayacare-vitals-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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:
version: 1.0.4
title: External Clinical Vitals API
description: 'External Clinical API
**Internal IDs**
The following terms are used to reference IDs that identify resources in AlayaCare:
- id
- created_by
- client_id
- risk_id
- medication_id
- admin_id
- vital_id
**External IDs**
The following terms are used to reference IDs that identify resources systems external to AlayaCare:
- external_id
- external_client_id
External IDs are required to be unique.'
servers:
- url: https://homecare.alayacare.ca/ext/api/v2/clinical
tags:
- name: Vitals
paths:
/vitals/client/{client_id}:
parameters:
- description: Client ID
name: client_id
in: path
required: true
schema:
type: integer
get:
tags:
- Vitals
summary: Get a list of a client's vital recordings by the client's AlayaCare ID
parameters:
- $ref: '#/components/parameters/page'
- $ref: '#/components/parameters/count'
- name: group[]
description: The group or comma-separated groups of the vitals.
in: query
schema:
type: string
- name: name[]
description: The name or comma-separated names of the vitals.
in: query
schema:
type: string
- name: end_at
description: The end date for the vital creation date range, using ISO 8601 date-time formatting.
in: query
schema:
type: string
- name: start_at
description: The start date for the vital creation date range, using ISO 8601 date-time formatting.
in: query
schema:
type: string
responses:
200:
description: Client's vitals details
content:
application/json:
schema:
$ref: '#/components/schemas/VitalList'
401:
$ref: '#/components/responses/AuthChallenge'
400:
$ref: '#/components/responses/InvalidRequest'
operationId: getVitalsClientByClientId
x-operation-id-source: derived
post:
tags:
- Vitals
summary: Record a vital for a client using the client's AlayaCare ID
responses:
201:
description: Vital successfully created
content:
application/json:
schema:
$ref: '#/components/schemas/Vital'
401:
$ref: '#/components/responses/AuthChallenge'
400:
$ref: '#/components/responses/InvalidRequest'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/VitalCreate'
description: Vital data in JSON format
required: true
operationId: postVitalsClientByClientId
x-operation-id-source: derived
/vitals/client/by_id/{external_client_id}:
parameters:
- description: External client ID
name: external_client_id
in: path
required: true
schema:
type: string
get:
tags:
- Vitals
summary: Get a list of a client's vital recordings by the client's external ID
parameters:
- $ref: '#/components/parameters/page'
- $ref: '#/components/parameters/count'
- name: group[]
description: The group or comma-separated groups of the vitals.
in: query
schema:
type: string
- name: name[]
description: The name or comma-separated names of the vitals.
in: query
schema:
type: string
- name: end_at
description: The end date for the vital creation date range, using ISO 8601 date-time formatting.
in: query
schema:
type: string
- name: start_at
description: The start date for the vital creation date range, using ISO 8601 date-time formatting.
in: query
schema:
type: string
responses:
200:
description: Client's vitals details
content:
application/json:
schema:
$ref: '#/components/schemas/VitalList'
401:
$ref: '#/components/responses/AuthChallenge'
400:
$ref: '#/components/responses/InvalidRequest'
operationId: getVitalsClientByIdByExternalClientId
x-operation-id-source: derived
post:
tags:
- Vitals
summary: Record a vital for a client using the client's external ID
responses:
201:
description: Create successful.
401:
$ref: '#/components/responses/AuthChallenge'
400:
$ref: '#/components/responses/InvalidRequest'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/VitalCreate'
description: Vital data
required: true
operationId: postVitalsClientByIdByExternalClientId
x-operation-id-source: derived
/vitals/{vital_id}:
parameters:
- description: Vital ID
name: vital_id
in: path
required: true
schema:
type: string
format: uuid
get:
tags:
- Vitals
summary: Get details of a vital recording
responses:
200:
description: A vital
content:
application/json:
schema:
$ref: '#/components/schemas/Vital'
401:
$ref: '#/components/responses/AuthChallenge'
400:
$ref: '#/components/responses/InvalidRequest'
404:
$ref: '#/components/responses/NotFound'
operationId: getVitalsByVitalId
x-operation-id-source: derived
put:
tags:
- Vitals
summary: Update a vital recording
responses:
200:
description: Update successful.
401:
$ref: '#/components/responses/AuthChallenge'
400:
$ref: '#/components/responses/InvalidRequest'
404:
$ref: '#/components/responses/NotFound'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/VitalCreate'
description: Medication data
required: true
operationId: putVitalsByVitalId
x-operation-id-source: derived
components:
schemas:
VitalList:
type: object
allOf:
- $ref: '#/components/schemas/PaginatedList'
description: A list of vitals
properties:
items:
type: array
items:
$ref: '#/components/schemas/Vital'
VitalCreate:
type: object
description: Vital details
required:
- client_id
- external_client_id
- name
- value
- unit
properties:
client_id:
type: integer
description: The client ID.
example: 1234
external_client_id:
type: string
description: The external client ID.
example: client_1234
comments:
type:
- string
- 'null'
description: A comment.
example: No unexpected results
group:
type:
- string
- 'null'
description: The vital group. This is used to group together separate vitals that are measured together like low and high blood pressure. If no group, this should be set to `name`.
example: blood_pressure
name:
$ref: '#/components/schemas/VitalName'
options:
$ref: '#/components/schemas/VitalOptions'
session_guid:
type: string
description: A unique identifier to group vitals recorded together within the same `group`.
example: 97a3e055-2fd1-469d-a058-b173499e37ff
source:
type: string
description: A description of how the vital was recorded. This may be set if the client recorded the vital themselves.
example: default
unit:
$ref: '#/components/schemas/VitalUnits'
user_guid:
type:
- integer
- 'null'
description: The `guid` of the user that created the vital. This will generally be the `guid` of the employee, unless the `source` or `user_type` indicate otherwise.
example: 234
user_type:
type:
- string
- 'null'
description: The type of user that created the vital. Generally this will not be set unless thesomeone other than an employee created the vital.
example: null
value:
type: number
description: The value of the recorded vital.
example: 38.4
ErrorResponse:
description: Error response
type: object
properties:
code:
type: integer
description: Response code
message:
type: string
description: Detailed error message
required:
- code
- message
VitalName:
type: string
description: The name identifying the vital type.
enum:
- blood_glucose
- bmi
- height
- pulse
- pressure_min
- pressure_max
- weight
- respiratory_rate
- spo2
- temperature
example: pressure_max
Vital:
allOf:
- $ref: '#/components/schemas/VitalCreate'
type: object
description: Vital details
required:
- client_id
- id
- name
- date
- value
- unit
properties:
date:
type: string
description: The created date using ISO 8601 date-time formatting.
example: '2018-01-01T00:30:00+00:00'
id:
type: string
description: The vital ID.
example: adedb729-54fa-473e-b929-9c71ef5c248e
VitalOptionRoute:
type: string
description: The route that awas used when recording a vital like `temperature`.
enum:
- axillary
- oral
- rectal
- tympanic
example: oral
PaginatedList:
description: Base model of all paginated lists
type: object
properties:
count:
type: integer
description: Number of items in the response
example: 1
page:
type: integer
description: Current page number
example: 1
total_pages:
type: integer
description: Total number of pages availbale
example: 1
items:
type: array
items:
type: object
required:
- count
- page
- total_pages
- items
VitalOptions:
type:
- object
- 'null'
description: Additional options required for some vital types.
properties:
position:
$ref: '#/components/schemas/VitalOptionPosition'
route:
$ref: '#/components/schemas/VitalOptionRoute'
VitalUnits:
type: string
description: The unit used to record the vital.
enum:
- c
- f
- kgs
- lb
- bpm
- breaths_pm
- mmhg
- cm
- in
- mmol_l
- mg_dl
- kg_m2
- '%'
example: mmhg
VitalOptionPosition:
type: string
description: The position of the client when recording a vital like `blood_pressure` or `pulse`.
enum:
- lying
- sitting
- standing
example: sitting
responses:
NotFound:
description: Not found.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
example:
code: 404
message: Progress note not found
InvalidRequest:
description: Invalid data.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
example:
code: 400
message: Invalid request
AuthChallenge:
description: Authentication required.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
example:
code: 401
message: Please verify your access level for this url.
parameters:
page:
name: page
in: query
required: false
description: Filter by page number. If not specified will default to 1.
schema:
type: integer
default: 1
count:
name: count
in: query
required: false
description: Number of items per page. If not specified will default to 100.
schema:
type: integer
default: 100
securitySchemes:
basic_auth:
type: http
scheme: basic
description: Basic HTTP auth over https