AlayaCare Visits API
The Visits API from AlayaCare — 8 operation(s) for visits.
The Visits API from AlayaCare — 8 operation(s) for visits.
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-visits-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:
title: Alayacare Visits API
version: '1.0'
description: 'Operations tagged Visits across 2 of this provider''s published API definitions: alayacare-forms-openapi.yml, alayacare-scheduler-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://homecare.alayacare.ca/ext/api/v2/tasks/forms20
- url: https://homecare.alayacare.ca/ext/api/v2/scheduler
tags:
- name: Visits
paths:
/submissions/visits:
get:
tags:
- Visits
summary: 'Get a list of visits and submissions given a client id.
'
description: "* Requires one of the following ACLs:\n - `ACL_PATROL_CLIENT_REPORTS_VIEW`\n - `ACL_CLIENT_SHIFTREPORT_VIEW`\n - `ACL_CLIENT_REPORTS_VIEW`\n - `ACL_CLIENT_REPORTS_HISTORICAL_VIEW`\n* `client_id` and `external_client_id` are mutually exclusive\n* `employee_id` and `external_employee_id` are mutually exclusive\n* Must specify either `client_id` or `external_client_id`\n* If the end_date is not specified, it will be defaulted to the end of today's date\n"
parameters:
- name: start_at
description: Filter by start date greater or equal than specified value
in: query
schema:
type: string
format: date-time
- name: end_at
description: Filter by end date less or equal than specified value. If not specified, the default date will be defaulted to the end of today's date
in: query
schema:
type: string
format: date-time
- name: client_id
description: Filter by client ID
in: query
schema:
type: integer
- name: external_client_id
description: Filter by external client ID
in: query
schema:
type: string
- name: employee_id
description: Filter by employee ID
in: query
schema:
type: integer
- name: external_employee_id
description: Filter by external employee ID
in: query
schema:
type: string
- name: work_session_id
description: Filter by work session ID
in: query
schema:
type: integer
- name: service_id
description: Filter by service ID
in: query
schema:
type: integer
- $ref: '#/components/parameters/page'
- $ref: '#/components/parameters/count'
responses:
'200':
description: Visit information with form submissions
content:
application/json:
schema:
$ref: '#/components/schemas/VisitBySubmissionList'
'401':
$ref: '#/components/responses/AuthChallenge'
'400':
$ref: '#/components/responses/ErrorResponseInvalidRequest'
'403':
$ref: '#/components/responses/PermissionError'
security:
- basicAuth: []
servers:
- url: https://homecare.alayacare.ca/ext/api/v2/tasks/forms20
/cancelcodes:
get:
tags:
- Visits
summary: Get a list of cancel codes
parameters:
- $ref: '#/components/parameters/page_2'
- $ref: '#/components/parameters/count_2'
- $ref: '#/components/parameters/branch_id'
responses:
'200':
description: A list of cancel codes
content:
application/json:
schema:
$ref: '#/components/schemas/VisitCancelCodeList'
servers:
- url: https://homecare.alayacare.ca/ext/api/v2/scheduler
/visits:
get:
tags:
- Visits
summary: Get list of visits
description: '**Note:** This endpoint returns only patient/client visits (where the client is a patient). To retrieve facility visits, use the `/facility_visits` endpoint instead.
- `client_id` and `alayacare_client_id` are mutually exclusive, specifying both is an invalid request.
- `employee_id` and `alayacare_employee_id` are mutually exclusive, specifying both is an invalid request.
- `service_id` and `alayacare_service_id` are mutually exclusive, specifying both is an invalid request.
- If the `start_date_from` filter is not specified, it will default to **now**.
- If the `start_date_to` filter is not specified, it will default to **7 days from now**.
'
parameters:
- name: tags
in: query
required: false
description: 'Filter on a list of tags and return values for at least one matching tag. Filter by multiple tag names using **OR**.
'
schema:
type: array
items:
type: string
- name: start_date_from
in: query
required: false
description: 'Filter by visit start date time greater or equal than specified value.
If not specified will default to now.
Expected format is ISO 8601 converted to UTC timezone.
`start_at` can be used as this filter name
Ex: `2018-02-03T08:00:00-05:00`
'
schema:
type: string
format: date-time
- name: start_date_to
in: query
required: false
description: 'Filter by visit start date time less than or equal than specified value.
If not specified will default to 7 days from now.
Expected format is ISO 8601 converted to UTC timezone.
`end_at` can be used as this filter name
Ex: `2019-02-18T08:00:00-05:00`
'
schema:
type: string
format: date-time
- name: end_date_from
in: query
required: false
description: 'Filter by visit end date time greater or equal than specified value.
Expected format is ISO 8601 converted to UTC timezone.
Ex: `2019-02-03T08:00:00-05:00`
'
schema:
type: string
format: date-time
- name: end_date_to
in: query
required: false
description: 'Filter by visit end date time less than or equal than specified value.
Expected format is ISO 8601 converted to UTC timezone.
Ex: `2018-02-18T08:00:00-05:00`
'
schema:
type: string
format: date-time
- name: is_cancelled
in: query
required: false
description: 'If true, returns only visits with a valid cancel code, not including ''On Hold''.
If false, returns only visits with ''On Hold'' codes or *no* cancel code.
'
schema:
type: boolean
- name: is_on_hold
in: query
required: false
description: 'If true, returns only visits with an ''On Hold'' cancel code.
If false, returns only visits with *no* cancel code or with a cancel code other than ''On Hold''.
'
schema:
type: boolean
- name: is_vacant
in: query
required: false
description: 'If true, returns only visits with *no* employee assigned.
If false, returns only visits with an employee assigned.
'
schema:
type: boolean
- name: status
in: query
required: false
description: Status of the visit based on status hierarchy from AlayaCare web application, one or more using **OR**.
schema:
type: string
enum:
- scheduled
- vacant
- on_hold
- cancelled
- offered
- clocked
- late
- completed
- missed
- approved
- $ref: '#/components/parameters/branch_id'
- $ref: '#/components/parameters/client_id'
- $ref: '#/components/parameters/alayacare_client_id'
- $ref: '#/components/parameters/employee_id'
- $ref: '#/components/parameters/alayacare_employee_id'
- $ref: '#/components/parameters/service_id'
- $ref: '#/components/parameters/alayacare_service_id'
- $ref: '#/components/parameters/page_2'
- $ref: '#/components/parameters/count_2'
responses:
'200':
description: A list of visits
content:
application/json:
schema:
$ref: '#/components/schemas/VisitList'
'401':
$ref: '#/components/responses/ErrorResponseAuthentication'
post:
tags:
- Visits
summary: Create a new visit
description: '- `client_id` or `alayacare_client_id` is required, not specifying one is an invalid request.
- `client_id` and `alayacare_client_id` are mutually exclusive, specifying both is an invalid request.
- `employee_id` and `alayacare_employee_id` are mutually exclusive, specifying both is an invalid request..
- `service_id` and `alayacare_service_id` are mutually exclusive, specifying both is an invalid request..
**Remarks**
A visit can be created without specifying the service if the client has a single **active** service.
If no employee is specified a vacant visit will be created.
A cancelled visit (`cancelled`= `true`) must include a cancel code ID.
'
responses:
'201':
description: Visit successfully created.
content:
application/json:
schema:
$ref: '#/components/schemas/Visit'
'400':
$ref: '#/components/responses/ErrorResponseVisitCreateInvalidRequest'
'401':
$ref: '#/components/responses/ErrorResponseAuthentication'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/VisitCreate'
description: Visit data in JSON format.
required: true
servers:
- url: https://homecare.alayacare.ca/ext/api/v2/scheduler
/visits/{alayacare_visit_id}:
parameters:
- name: alayacare_visit_id
description: AlayaCare visit ID
in: path
required: true
schema:
type: integer
get:
tags:
- Visits
summary: Get visit details using AlayaCare ID
description: '**Note:** This endpoint returns only patient/client visits (where the client is a patient).
If the visit belongs to a facility, this endpoint will return a `404`. Use `GET /facility_visits/{alayacare_visit_id}` instead.
'
responses:
'200':
description: Visit details
content:
application/json:
schema:
$ref: '#/components/schemas/VisitDetails'
'401':
$ref: '#/components/responses/ErrorResponseAuthentication'
'404':
$ref: '#/components/responses/ErrorResponseVisitNotFound'
put:
tags:
- Visits
summary: Update visit details using AlayaCare ID
description: '**Note:** This endpoint only supports patient/client visits. To update a facility visit, use `PUT /facility_visits/{alayacare_visit_id}` instead.
A cancelled visit (`cancelled`= `true`) must include a cancel code ID.
'
responses:
'200':
description: Visit successfully updated
content:
application/json:
schema:
$ref: '#/components/schemas/Visit'
'400':
$ref: '#/components/responses/ErrorResponseVisitUpdateInvalidRequest'
'401':
$ref: '#/components/responses/ErrorResponseAuthentication'
'404':
$ref: '#/components/responses/ErrorResponseVisitNotFound'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/VisitUpdate'
description: Visit data in JSON format
required: true
delete:
tags:
- Visits
summary: Delete visit using AlayaCare ID
responses:
'204':
description: Visit successfully deleted
'401':
$ref: '#/components/responses/ErrorResponseAuthentication'
'404':
$ref: '#/components/responses/ErrorResponseVisitNotFound'
servers:
- url: https://homecare.alayacare.ca/ext/api/v2/scheduler
/visits/by_id/{visit_id}:
parameters:
- name: visit_id
description: External visit ID
in: path
required: true
schema:
type: string
get:
tags:
- Visits
summary: Get visit details using external ID
responses:
'200':
description: Visit details
content:
application/json:
schema:
$ref: '#/components/schemas/VisitDetails'
'401':
$ref: '#/components/responses/ErrorResponseAuthentication'
'404':
$ref: '#/components/responses/ErrorResponseVisitNotFound'
put:
tags:
- Visits
summary: Update visit details using external ID
description: A cancelled visit (`cancelled`= `true`) must include a cancel code ID.
responses:
'200':
description: Visit successfully updated
content:
application/json:
schema:
$ref: '#/components/schemas/Visit'
'400':
$ref: '#/components/responses/ErrorResponseVisitUpdateInvalidRequest'
'401':
$ref: '#/components/responses/ErrorResponseAuthentication'
'404':
$ref: '#/components/responses/ErrorResponseVisitNotFound'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/VisitUpdate'
description: Visit data in JSON format
required: true
delete:
tags:
- Visits
summary: Delete visit using external ID
responses:
'204':
description: Visit successfully deleted
'401':
$ref: '#/components/responses/ErrorResponseAuthentication'
'404':
$ref: '#/components/responses/ErrorResponseVisitNotFound'
servers:
- url: https://homecare.alayacare.ca/ext/api/v2/scheduler
/visits/lock:
put:
tags:
- Visits
summary: Lock list of visits using Alayacare visit ID or external visit ID
description: '**Remarks**
- Only Approved visits can be locked using `alayacare_visit_id` or `visit_id`.
- Visits cannot be **unlocked**.
'
responses:
'200':
description: Visit successfully locked
'207':
$ref: '#/components/responses/ErrorResponsePartialVisitLock'
'400':
$ref: '#/components/responses/ErrorResponseVisitLockInvalidRequest'
'401':
$ref: '#/components/responses/ErrorResponseAuthentication'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/VisitIDList'
description: Visit data in JSON format
required: true
servers:
- url: https://homecare.alayacare.ca/ext/api/v2/scheduler
/visits/{alayacare_visit_id}/delivery_date:
parameters:
- name: alayacare_visit_id
description: AlayaCare visit ID
in: path
required: true
schema:
type: integer
get:
tags:
- Visits
summary: Get the delivery date of a visit given the ID
responses:
'200':
description: Delivery date for visit
content:
application/json:
schema:
$ref: '#/components/schemas/DeliveryDateInformation'
'404':
$ref: '#/components/responses/ErrorResponseDeliveryDateNotFound'
servers:
- url: https://homecare.alayacare.ca/ext/api/v2/scheduler
/visits/{client_id}/next_visit_id:
parameters:
- name: client_id
description: Client ID
in: path
required: true
schema:
type: integer
- name: with_canceled
description: 'If false, get the next visit without a cancel code
'
in: query
required: false
schema:
type: boolean
default: true
- name: date_utc
description: Date to filter the next visit. If not specified, date is now.
in: query
required: false
schema:
type: string
format: date-time
get:
tags:
- Visits
summary: Get the next visit ID for a client
responses:
'200':
description: Next visit ID for client
content:
application/json:
schema:
$ref: '#/components/schemas/NextVisitId'
'404':
$ref: '#/components/responses/ErrorResponseVisitNotFound'
servers:
- url: https://homecare.alayacare.ca/ext/api/v2/scheduler
components:
schemas:
ErrorResponse:
description: Error response
type: object
properties:
code:
type: integer
description: Response code
message:
type: string
description: Detailed error message
required:
- code
- message
VisitBySubmission:
type: object
properties:
id:
type: integer
description: visit ID
example: 1
service_id:
type: integer
description: service ID
example: 1
service_name:
type: string
description: Service description
example: Physiotherapy
start_at:
type: string
description: Start time of the visit
example: 1711154100
end_at:
type: string
description: End time of the visit
example: 1711157700
employee_id:
type: integer
description: ID of employee that is assigned to the visit
example: 101
submissions:
type: array
items:
type: object
properties:
id:
type: integer
description: Submission ID
example: 123
name:
type: string
description: Name of the form
example: Physiotherapy
schema_id:
type: string
description: Schema ID of the form
example: c3560f0e-7a72-41ea-9d2b-b4d9457e4339
VisitBySubmissionList:
description: A list of visits
type: object
required:
- count
- page
- total_pages
- items_per_page
- items
properties:
count:
description: Number of items in the response
type: integer
example: 1
page:
description: Current page number
type: integer
example: 1
total_pages:
description: Total number of pages available
type: integer
example: 1
items_per_page:
description: Maximum number of item per page
type: integer
example: 1
items:
type: array
items:
$ref: '#/components/schemas/VisitBySubmission'
Address:
type: object
properties:
order:
type: integer
description: Order of location in route
example: 1
is_home_address:
type: boolean
description: If address defined matches the client address from the client profile, this value is true. Otherwise, the value is false.
example: true
latitude:
type: number
description: Latitude of the address
example: 45.5017
longitude:
type: number
description: Longitude of the address
example: 73.5673
address_1:
type: string
description: First line of the address
example: 4200 St Laurent Blvd
address_2:
type: string
description: Second line of the address
example: '800'
city:
type: string
description: City
example: Montreal
state:
type: string
description: State or province
example: QC
zip_code:
type: string
description: ZIP or postal code
example: H2W 2R2
country:
type: string
description: Country
example: Canada
ErrorResponse_2:
description: Error response
type: object
properties:
code:
type: integer
example: 400
description: Response code
message:
type: string
example: Invalid request
description: Detailed error message
required:
- code
- message
VisitTag:
type: string
description: Name of tag.
example: First visit
VisitCancelCode:
description: Visit cancellation code
type:
- object
- 'null'
properties:
id:
type: integer
description: AlayaCare cancel code ID
example: 1
code:
type: string
description: Cancel code
example: CLNT_REQ_RESCHEDULE
description:
type:
- string
- 'null'
description: Cancel code description
example: Client requested reschedule
required:
- id
- code
BaseVisitDetails:
type: object
properties:
alayacare_employee_id:
type:
- integer
- 'null'
format: int64
description: AlayaCare employee ID
example: 101
alayacare_service_id:
type: integer
format: int64
description: AlayaCare service ID
example: 1
alayacare_visit_id:
type: integer
format: int64
description: AlayaCare visit ID
example: 10001
employee_id:
type:
- string
- 'null'
description: External employee ID
example: sor_employee_id_1
service_id:
type:
- string
- 'null'
description: External service ID
example: sor_service_id_1
visit_id:
type:
- string
- 'null'
description: External visit ID
example: sor_visit_id_1
status:
type: string
description: Status of the visit based on status hierarchy from AlayaCare web application.
example: scheduled
enum:
- scheduled
- vacant
- on_hold
- cancelled
- offered
- clocked
- late
- completed
- missed
- approved
start_at:
type: string
format: date-time
description: Visit start time (ISO 8601)
example: '2017-07-08T13:30:00+00:00'
end_at:
type: string
format: date-time
description: Visit end time (ISO 8601)
example: '2017-07-08T14:00:00+00:00'
cancelled:
type: boolean
description: Indicates if visit is cancelled
employee:
$ref: '#/components/schemas/EmployeeDetails'
service:
$ref: '#/components/schemas/VisitServiceDetails'
funders:
description: Visit funders
type: array
items:
$ref: '#/components/schemas/VisitFunderDetails'
work_sessions:
type: array
items:
$ref: '#/components/schemas/VisitWorkSession'
adls:
type: array
items:
$ref: '#/components/schemas/VisitDailyActivity'
notes:
type: array
items:
$ref: '#/components/schemas/VisitNote'
cancel_code:
$ref: '#/components/schemas/VisitCancelCode'
activity_codes:
type: array
items:
$ref: '#/components/schemas/VisitActivityCode'
skills:
type: array
items:
$ref: '#/components/schemas/VisitSkill'
tags:
type: array
items:
$ref: '#/components/schemas/VisitTag'
service_instructions:
description: Service instructions
type:
- string
- 'null'
example: Call in the morning to confirm each visit
service_code_id:
description: Visit override service code id.
type:
- integer
- 'null'
example: 1
service_code_name:
description: Visit override service code name.
type:
- string
- 'null'
example: Default Appointment
route:
type: array
items:
$ref: '#/components/schemas/Address'
required:
- alayacare_service_id
- alayacare_visit_id
- start_at
- end_at
- cancelled
- employee
- service
- work_sessions
- adls
- notes
- cancel_code
- activity_codes
- tags
- service_instructions
VisitCancelCodeList:
allOf:
- $ref: '#/components/schemas/PaginatedList'
description: Paginated list of cancel codes
properties:
items:
type: array
items:
allOf:
- $ref: '#/components/schemas/VisitCancelCode'
properties:
branch:
$ref: '#/components/schemas/Branch'
VisitWorkSession:
type: object
description: Visit work session
properties:
clock_in:
description: Work session start time
type: string
format: date-time
example: '2017-07-08T13:30:00+00:00'
clock_out:
description: Work session end time
type:
- string
- 'null'
format: date-time
example: '2017-07-08T14:30:00+00:00'
employee_id:
description: Work session employee id
type: integer
example: 101
clock_in_location:
$ref: '#/components/schemas/Location'
clock_out_location:
$ref: '#/components/schemas/Location'
DeliveryDateInformation:
properties:
alayacare_visit_id:
type: integer
description: AlayaCare visit ID
example: 17432
delivery_date:
type: string
description: Delivery date for visit in UTC format
example: '2022-12-13'
VisitDailyActivity:
type: object
description: Activity of daily living
properties:
name:
type: string
description: ADL description
example: Take out the trash
completed:
type: boolean
description: Indicates if the ADL was completed during the visit
example: false
reason:
type:
- string
- 'null'
description: Reason why the ADL was not completed, in case it wasn't
example: Not a garbage day
Location:
description: User location information
type:
- object
- 'null'
properties:
lat:
type: number
description: latitude
example: 45.518
lng:
type: number
description: longitude
example: -73.582
VisitActivityCode:
type: object
properties:
id:
type: integer
description: AlayaCare activity code ID
example: 1
code:
type: string
description: Activity code
example: 01- Assessment
description:
type: string
description: Activity code description
example: New client assessment
required:
- id
- code
VisitIDList:
type: object
properties:
alayacare_visit_ids:
type: array
description: List of Alayacare visit IDs (visit IDs should be listed separated by a coma)
example:
- 1245
- 1246
items:
type: integer
description: Alayacare visit ID.
required:
- alayacare_visit_ids
visit_ids:
type: array
description: List of Alayacare external visit IDs
example:
- ext_visit_1245
- ext_visit_1246
items:
type: string
description: Alayacare external visit ID (External visit IDs should be listed separated by a coma).
required:
- visit_ids
VisitList:
allOf:
- $ref: '#/components/schemas/PaginatedList'
description: Paginated list of visits
properties:
items:
type: array
items:
$ref: '#/components/schemas/VisitListDetails'
VisitUpdate:
allOf:
- $ref: '#/components/schemas/BaseVisitUpdate'
properties:
client_id:
description: External client ID
type: string
example: sor_client_id_1
alayacare_client_id:
description: AlayaCare client ID
type: integer
example: 1001
NextVisitId:
type: object
properties:
visit_id:
type: integer
description: Visit ID
example: 1000
VisitDetails:
allOf:
- $ref: '#/components/schemas/BaseVisitDetails'
properties:
alayacare_visit_guid:
type: integer
format: int64
description: AlayaCare visit GUID
example: 10002
alayacare_client_id:
type: integer
format: int64
description: AlayaCare client ID
example: 1001
client_id:
type:
- string
- 'null'
description: External client ID
example: sor_client_id_1
client:
$ref: '#/components/schemas/ClientBranchDetails'
facility:
$ref: '#/components/schemas/VisitFacilityDetails'
timekeeping:
$ref: '#/components/schemas/VisitTimekeeping'
required:
- alayacare_client_id
- client
Visit:
allOf:
- $ref: '#/components/schemas/BaseVisit'
properties:
alayacare_client_id:
type: integer
description: AlayaCare client ID
example: 1001
client_id:
type:
- string
- 'null'
description: External client ID
example: sor_client_id_1
required:
- alayacare_client_id
EmployeeDetails:
description: Visit employee details
type:
- object
- 'null'
properties:
id:
type: integer
description: AlayaCare employee ID
example: 1001
external_id:
type:
- string
- 'null'
description: External employee ID
example: sor_employee_id_1
profile_id:
type: integer
description: AlayaCare client profile ID
example: 7891
full_name:
type: string
description: Employee full name
example: Jane Smith
email:
type: string
description: Employee email
example: employee_1@workplace.com
timezone:
type: string
description: Time Zone name in IANA format (iana.org/time-zones)
example: America/Toronto
required:
- id
- full_name
VisitFacilityDetails:
description: Visit facility
type:
- object
- 'null'
properties:
id:
type: integer
description: AlayaCare facility ID
example: 1
name:
type: string
description: Facility name
example: Clinic name
external_id:
type:
- string
- 'null'
description: External facility ID
example: sor_clinic_id_1
timezone:
type: string
description: Time Zone name in IANA format (iana.org/time-zones)
example: America/Toronto
required:
- id
- name
VisitTimekeeping:
description: The state of the verified start and end times
type: object
properties:
verified_start_time:
description: Datetime string referring to the time the first clock in happened, or one manually overwritten
type: string
format: date-time
example: '2017-07-08T13:30:00+00:00'
verified_end_time:
description: Datetime string referring to the time the last clock out happened, or one manually overwritten
type: string
format: d
# --- truncated at 32 KB (48 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/alayacare/refs/heads/main/openapi/alayacare-visits-api-openapi.yml