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\n\n**Internal IDs**\nThe following terms are used to reference IDs that identify resources in AlayaCare:\n- id\n- created_by\n- client_id\n- risk_id\n- medication_id\n- admin_id\n- vital_id\n\n**External IDs**\nThe following terms are used to reference IDs that identify resources systems external to AlayaCare:\n- external_id\n- external_client_id\n\nExternal IDs are required to be unique.\nNo other assumptions are made regarding their format they are treated as strings.\n\n**Remarks**\n- All dates must be in ISO 8601 format.\n- Required fields marked with `*` cannot be null.\n\n**Progress Notes**\n API for creating and viewing client progress notes.\n\n**Risks**\nAPI for creating, viewing, updating, and removing client risks.\n\n**Medication**\n API for creating, editing, and viewing medications and medication administrations.\n\n**Vitals**\n API for creating, editing and viewing vitals.\n\nEach individual vital type is identified by a `name`. Dependent vitals are given the same `group`. Currently this is only used to link names `pressure_min` and `pressure_max` with the group `blood_pressure`, as these values should be recorded together.\n\nThe metadata of the vitals includes the configuration and thresholds, the default and available units, and any other required options for each vital type.\n"
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'
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
/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'
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
/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'
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
components:
responses:
NotFound:
description: Not found.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
example:
code: 404
message: Progress note not found
AuthChallenge:
description: Authentication required.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
example:
code: 401
message: Please verify your access level for this url.
InvalidRequest:
description: Invalid data.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
example:
code: 400
message: Invalid request
schemas:
VitalOptions:
type:
- object
- 'null'
description: Additional options required for some vital types.
properties:
position:
$ref: '#/components/schemas/VitalOptionPosition'
route:
$ref: '#/components/schemas/VitalOptionRoute'
ErrorResponse:
description: Error response
type: object
properties:
code:
type: integer
description: Response code
message:
type: string
description: Detailed error message
required:
- code
- message
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
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
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
VitalOptionRoute:
type: string
description: The route that awas used when recording a vital like `temperature`.
enum:
- axillary
- oral
- rectal
- tympanic
example: oral
VitalOptionPosition:
type: string
description: The position of the client when recording a vital like `blood_pressure` or `pulse`.
enum:
- lying
- sitting
- standing
example: sitting
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
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
parameters:
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
page:
name: page
in: query
required: false
description: Filter by page number. If not specified will default to 1.
schema:
type: integer
default: 1
securitySchemes:
basic_auth:
type: http
scheme: basic
description: Basic HTTP auth over https