AlayaCare · Schema
AlayaCare Client API Schemas
Home CareCommunity CareHealthcareSchedulingClinicalBillingClient ManagementCare ManagementAged CareWorkforce Management
JSON Schema
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "AlayaCare Client API Schemas",
"definitions": {
"Branch": {
"description": "AlayaCare branch.",
"type": "object",
"properties": {
"id": {
"type": "integer",
"description": "AlayaCare branch ID",
"example": 1
},
"name": {
"type": "string",
"description": "AlayaCare branch name",
"example": "Toronto branch"
},
"profile": {
"$ref": "#/components/schemas/BranchProfile"
}
},
"required": [
"id",
"name"
]
},
"BranchList": {
"allOf": [
{
"$ref": "#/components/schemas/PaginatedList"
},
{
"type": "object",
"description": "Paginated list of branches",
"properties": {
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Branch"
}
}
}
}
]
},
"GroupDetail": {
"description": "Patient group.",
"type": "object",
"properties": {
"branch": {
"type": "object",
"description": "AlayaCare branch",
"properties": {
"id": {
"type": "integer",
"description": "Branch ID",
"example": 1000
},
"name": {
"type": "string",
"description": "Branch name",
"example": "Toronto branch"
}
}
},
"description": {
"type": "string",
"description": "description of the group",
"example": "saint-michel's hospital group"
},
"id": {
"type": "integer",
"description": "AlayaCare group ID.",
"example": 1
},
"is_disabled": {
"type": "boolean",
"description": "flag indicating if the group is disabled",
"example": false
},
"name": {
"type": "string",
"description": "AlayaCare group name",
"example": "Group A"
}
}
},
"Group": {
"description": "Create Patient group.",
"type": "object",
"properties": {
"id": {
"type": "integer",
"description": "AlayaCare group ID.",
"example": 1
},
"name": {
"type": "string",
"description": "AlayaCare group name",
"example": "Group A"
}
},
"required": [
"id"
]
},
"GroupsList": {
"allOf": [
{
"$ref": "#/components/schemas/PaginatedList"
},
{
"type": "object",
"description": "Paginated list of groups",
"properties": {
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/GroupDetail"
}
}
}
}
]
},
"ProfileAttribute": {
"type": "object",
"properties": {
"tag": {
"description": "Attribute key in the demographics object",
"type": "string",
"example": "first_name"
},
"description": {
"description": "Attribute description as it shows in the web application",
"type": "string",
"example": "First Name"
}
}
},
"ProfileAttributeList": {
"allOf": [
{
"$ref": "#/components/schemas/PaginatedList"
},
{
"type": "object",
"description": "Paginated list of profile attributes",
"properties": {
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ProfileAttribute"
}
}
}
}
]
},
"ProfilePictureUrl": {
"type": "object",
"properties": {
"url": {
"description": "Pre-authorized profile picture URL.",
"type": "string",
"example": "https://place-hold.it/200"
}
}
},
"ClientContactStatus": {
"type": "string",
"enum": [
"enabled",
"disabled"
]
},
"BranchProfile": {
"description": "Collection of key/value pairs where keys are existing attributes in the agency profile, defined through\nthe AlayaCare web application.\nOn the example below default profile keys for the agency profile are used.\n\nExample profile attributes:\n+ `first_name`: string\n+ `last_name`: string\n+ `city`: string\n+ `title`: string\n+ `state`: string\n+ `gender`: string\n+ `relationship`: string\n+ `contact_type`: string\n+ `fax`: string\n+ `company`: string\n+ `phone_other`: string\n+ `phone_main`: string\n+ `address`: string\n+ `country`: string\n+ `zip`: string\n+ `address_suite`: string\n+ `remarks`: string\n",
"type": "object",
"properties": {
"name": {
"description": "Branch company name",
"type": "string",
"example": "Alayacare"
},
"phone_main": {
"description": "Branch main phone number",
"type": "string",
"example": "514-999-9999"
}
}
},
"ClientContactDemographics": {
"description": "Collection of key/value pairs where keys are existing attributes in the patient contact profile, defined through the AlayaCare web application.\nOn the example below default profile keys for the client contact are used.\n\nExample profile attributes:\n+ `first_name`: string\n+ `last_name`: string\n+ `city`: string\n+ `title`: string\n+ `state`: string\n+ `gender`: string\n+ `relationship`: string\n+ `contact_type`: string\n+ `fax`: string\n+ `company`: string\n+ `phone_other`: string\n+ `phone_main`: string\n+ `address`: string\n+ `country`: string\n+ `zip`: string\n+ `address_suite`: string\n+ `remarks`: string\n",
"type": "object",
"properties": {
"first_name": {
"description": "Profile first name",
"type": "string",
"example": "Jane"
},
"last_name": {
"description": "Profile last name",
"type": "string",
"example": "Smith"
},
"gender": {
"description": "Profile gender",
"type": "string",
"example": "M",
"enum": [
"M",
"F",
"O"
]
}
}
},
"ClientContact": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"description": "Client contact ID",
"example": 1
},
"ac_id": {
"type": "string",
"description": "AlayaCare ID for display in-app",
"example": "AC000000024"
},
"branch": {
"type": "object",
"description": "AlayaCare branch",
"properties": {
"id": {
"description": "Branch ID",
"type": "integer",
"example": 1000
},
"name": {
"description": "Branch name",
"type": "string",
"example": "Toronto branch"
}
}
},
"external_id": {
"type": "string",
"example": "crm_client_contact_external_id_1",
"description": "Client contact external ID",
"nullable": true
},
"contact_type": {
"type": "string",
"example": "Medical",
"nullable": true
},
"relationship": {
"type": "string",
"example": "Doctor",
"nullable": true
},
"language": {
"$ref": "#/components/schemas/ClientLanguage"
},
"status": {
"$ref": "#/components/schemas/ClientContactStatus"
},
"emergency": {
"type": "boolean",
"example": false,
"default": false,
"nullable": true
},
"is_billing_contact": {
"type": "boolean",
"example": false,
"nullable": true
},
"eb_medicaid_employee_relationship": {
"type": "string",
"example": "Spouse",
"nullable": true
},
"eb_medicaid_provider_type": {
"type": "string",
"example": "Attending provider",
"nullable": true
},
"eb_medicaid_npi": {
"type": "string",
"example": "12345678",
"nullable": true
},
"demographics": {
"$ref": "#/components/schemas/ClientContactDemographics"
},
"clients": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ClientContactDetails"
}
}
},
"required": [
"id",
"ac_id",
"external_id",
"status",
"demographics"
]
},
"ClientContactListItem": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"description": "Client contact ID",
"example": 1
},
"ac_id": {
"type": "string",
"description": "AlayaCare ID for display in-app",
"example": "AC000000024"
},
"external_id": {
"type": "string",
"example": "crm_client_contact_external_id_1",
"description": "Client contact external ID",
"nullable": true
},
"contact_type": {
"type": "string",
"example": "Medical",
"nullable": true
},
"relationship": {
"type": "string",
"example": "Doctor",
"nullable": true
},
"language": {
"$ref": "#/components/schemas/ClientLanguage"
},
"npi": {
"type": "string",
"description": "National provider identification number",
"example": "12345678"
},
"provider_type": {
"type": "string",
"description": "Type of healthcare provider",
"example": "Attending provider"
},
"status": {
"$ref": "#/components/schemas/ClientContactStatus"
},
"demographics": {
"$ref": "#/components/schemas/ClientContactDemographics"
}
},
"required": [
"id",
"ac_id",
"external_id",
"status",
"demographics"
]
},
"ClientContactCreate": {
"description": "Only one of 'client_id' and 'external_client_id' can be provided",
"allOf": [
{
"$ref": "#/components/schemas/ClientContactUpdate"
}
],
"type": "object",
"properties": {
"profile_id": {
"description": "AlayaCare profile ID",
"type": "integer",
"example": 100
}
}
},
"ClientContactUpdate": {
"type": "object",
"properties": {
"external_id": {
"type": "string",
"example": "crm_client_contact_external_id_1",
"description": "Client contact external ID"
},
"status": {
"$ref": "#/components/schemas/ClientContactStatus"
},
"contact_type": {
"type": "string",
"example": "Medical"
},
"relationship": {
"type": "string",
"example": "Doctor"
},
"client_id": {
"type": "integer",
"description": "AlayaCare client ID",
"example": 1001
},
"external_client_id": {
"type": "string",
"description": "External client ID",
"example": "sor_client_external_id_1"
},
"is_billing_contact": {
"type": "boolean",
"example": false,
"description": "Is the contact a billing contact"
},
"emergency": {
"type": "boolean",
"example": false,
"default": false,
"nullable": true
},
"language": {
"$ref": "#/components/schemas/ClientLanguage"
},
"demographics": {
"$ref": "#/components/schemas/ClientContactDemographics"
},
"roles": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ClientContactRolesUpdate"
}
},
"eb_medicaid_provider_type": {
"type": "string",
"example": "Attending provider"
},
"eb_medicaid_npi": {
"type": "string",
"example": "1234567"
},
"eb_medicaid_employee_relationship": {
"type": "string",
"example": "Spouse"
}
}
},
"ClientContactRolesUpdate": {
"type": "object",
"properties": {
"role": {
"type": "string",
"enum": [
"Client Designee",
"Legal Guardian",
"Health Care Proxy",
"Physician",
"Power of Attorney",
"Client Representative",
"Enduring Guardian (ANZ)"
]
},
"is_active": {
"type": "boolean"
},
"effective_from": {
"type": "string",
"format": "date-time"
},
"effective_to": {
"type": "string",
"format": "date-time"
}
}
},
"ClientStatus": {
"type": "string",
"enum": [
"active",
"pending",
"on_hold",
"discharged",
"waiting_list",
"unknown"
],
"nullable": true
},
"ClientLanguage": {
"type": "string",
"description": "Supported language codes.\nIn some cases, a language (e.g. 'english') can be provided when creating an entity,\nand will be automatically converted to a language code (e.g. 'en').\n",
"enum": [
"sq",
"ar",
"hy",
"ast",
"bn",
"my",
"yue",
"zh",
"hr",
"cs",
"fa_AF",
"nl",
"en",
"fo",
"fr",
"de",
"el",
"he",
"hi",
"hu",
"it",
"ja",
"rw",
"ko",
"mdr",
"ne",
"ps",
"fa",
"pl",
"pt",
"pa",
"ro",
"ru",
"sr",
"sk",
"so",
"es",
"sw",
"tl",
"ta",
"ti",
"uk",
"ur",
"vi",
"other"
],
"nullable": true
},
"CareTeamMember": {
"type": "object",
"properties": {
"name": {
"type": "string",
"example": "John Smith",
"description": "Employee name"
},
"id": {
"type": "integer",
"example": 1001,
"description": "AlayaCare ID of the employee"
},
"external_id": {
"type": "string",
"example": "sor_employee_external_id_1",
"description": "External ID of the employee"
}
}
},
"ClientDemographics": {
"description": "Collection of key/value pairs where keys are existing attributes in the patient profile, defined through the AlayaCare webapp.\nOn the example below default profile keys for the client are used.\n\nExample profile attributes:\n\n+ `address_suite`: string\n+ `address`: string\n+ `birthday`: string\n+ `care_needs`: string\n+ `city`: string\n+ `company`: string\n+ `country`: string\n+ `email_preferred`: string\n+ `email`: string\n+ `emergency_response_level`: string\n+ `fax`: string\n+ `first_name`: string\n+ `gender`: string\n+ `health_card_version`: string\n+ `health_card`: string\n+ `last_name`: string\n+ `medical_status`: string\n+ `phone_main`: string\n+ `phone_other`: string\n+ `phone_personal`: string\n+ `remarks`: string\n+ `salutation`: string\n+ `service_frequency`: string\n+ `state`: string\n+ `timeframe`: string\n+ `title`: string\n+ `zip`: string\n",
"type": "object",
"properties": {
"first_name": {
"description": "Client first name",
"type": "string",
"example": "John"
},
"last_name": {
"description": "Client last name",
"type": "string",
"example": "Smith"
},
"gender": {
"description": "Client gender",
"type": "string",
"enum": [
"M",
"F",
"O"
],
"example": "M"
}
}
},
"ClientDemographicsLocation": {
"description": "Collection of key/value pairs where keys are existing attributes in the patient profile, defined through the AlayaCare webapp.\nOn the example below default profile keys for the client are used.\n\nExample profile attributes:\n\n+ `address_suite`: string\n+ `address`: string\n+ `birthday`: string\n+ `care_needs`: string\n+ `city`: string\n+ `company`: string\n+ `country`: string\n+ `email_preferred`: string\n+ `email`: string\n+ `emergency_response_level`: string\n+ `fax`: string\n+ `first_name`: string\n+ `gender`: string\n+ `health_card_version`: string\n+ `health_card`: string\n+ `last_name`: string\n+ `medical_status`: string\n+ `phone_main`: string\n+ `phone_other`: string\n+ `phone_personal`: string\n+ `remarks`: string\n+ `salutation`: string\n+ `service_frequency`: string\n+ `state`: string\n+ `timeframe`: string\n+ `title`: string\n+ `zip`: string\n",
"type": "object",
"properties": {
"first_name": {
"description": "Client first name",
"type": "string",
"example": "John"
},
"last_name": {
"description": "Client last name",
"type": "string",
"example": "Smith"
},
"location": {
"$ref": "#/components/schemas/Location"
},
"gender": {
"description": "Client gender",
"type": "string",
"enum": [
"M",
"F",
"O"
],
"example": "M"
}
}
},
"ClientCreateDemographics": {
"allOf": [
{
"$ref": "#/components/schemas/ClientDemographics"
}
],
"required": [
"first_name",
"last_name"
]
},
"ClientDetails": {
"description": "AlayaCare client entity",
"type": "object",
"properties": {
"demographics": {
"$ref": "#/components/schemas/ClientDemographicsLocation"
},
"id": {
"type": "integer",
"description": "AlayaCare client ID",
"example": 1001
},
"ac_id": {
"type": "string",
"description": "AlayaCare ID for display in-app",
"example": "AC000000024"
},
"external_id": {
"type": "string",
"description": "External client ID",
"example": "sor_client_external_id_1",
"nullable": true
},
"profile_id": {
"type": "integer",
"description": "AlayaCare profile ID",
"example": 7890
},
"branch_id": {
"type": "integer",
"description": "AlayaCare client ID",
"example": 2001
},
"status": {
"$ref": "#/components/schemas/ClientStatus"
},
"contacts": {
"type": "array",
"description": "Client contacts",
"items": {
"$ref": "#/components/schemas/ClientContactListItem"
}
},
"care_team": {
"type": "array",
"description": "List of employees on a client's care team.",
"items": {
"$ref": "#/components/schemas/CareTeamMember"
}
},
"language": {
"$ref": "#/components/schemas/ClientLanguage"
},
"groups": {
"type": "array",
"description": "Client groups",
"items": {
"$ref": "#/components/schemas/Group"
}
},
"cost_centre": {
"$ref": "#/components/schemas/CostCentre"
},
"tags": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ClientTag"
}
},
"timezone": {
"description": "Timezone name in IANA format (iana.org/time-zones). If not set, returns the branch timezone.\n",
"type": "string",
"example": "America/Toronto"
}
},
"required": [
"id",
"ac_id",
"external_id",
"profile_id",
"demographics",
"branch_id",
"status",
"contacts",
"care_team"
]
},
"Client": {
"description": "AlayaCare client list view",
"type": "object",
"properties": {
"id": {
"description": "AlayaCare client ID",
"type": "integer",
"example": 1000
},
"ac_id": {
"type": "string",
"description": "AlayaCare ID for display in-app",
"example": "AC000000024"
},
"external_id": {
"description": "External client ID",
"type": "string",
"example": "sor_client_external_id_1",
"nullable": true
},
"profile_id": {
"description": "AlayaCare profile ID",
"type": "integer",
"example": 100
},
"first_name": {
"description": "Client first name",
"type": "string",
"example": "John"
},
"last_name": {
"description": "Client last name",
"type": "string",
"example": "Smith"
},
"status": {
"$ref": "#/components/schemas/ClientStatus"
},
"tags": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ClientTag"
}
},
"_link": {
"description": "Client link on the web application",
"type": "string",
"example": "https://demo3.alayacare.ca/permalink/client/b1"
}
},
"required": [
"id",
"ac_id",
"external_id",
"profile_id",
"first_name",
"last_name",
"status",
"_link"
]
},
"BlockedEmployeeList": {
"allOf": [
{
"$ref": "#/components/schemas/PaginatedList"
},
{
"type": "object",
"description": "Paginated list of blocked or blocking employees",
"properties": {
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/BlockedEmployeeListItem"
}
}
}
}
]
},
"ClientList": {
"allOf": [
{
"$ref": "#/components/schemas/PaginatedList"
},
{
"type": "object",
"description": "Paginated list of clients",
"properties": {
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ClientListItem"
}
}
}
}
]
},
"ContactList": {
"allOf": [
{
"$ref": "#/components/schemas/PaginatedList"
},
{
"type": "object",
"description": "Paginated list of clients",
"properties": {
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ClientContactListItem"
}
}
}
}
]
},
"BlockedEmployeeListItem": {
"description": "Employee blocked by or blocking a client",
"type": "object",
"properties": {
"employee": {
"$ref": "#/components/schemas/CareTeamMember"
},
"block_originator": {
"type": "string",
"description": "Whether the employee or the client requested the block",
"enum": [
"client",
"employee"
]
},
"comments": {
"type": "string",
"description": "Reason for the block"
}
}
},
"ClientListItem": {
"description": "AlayaCare client list item",
"type": "object",
"properties": {
"id": {
"description": "AlayaCare client ID",
"type": "integer",
"example": 1000
},
"ac_id": {
"type": "string",
"description": "AlayaCare ID for display in-app",
"example": "AC000000024"
},
"branch": {
"type": "object",
"description": "AlayaCare branch",
"properties": {
"id": {
"description": "Branch ID",
"type": "integer",
"example": 1000
},
"name": {
"description": "Branch name",
"type": "string",
"example": "Toronto branch"
}
}
},
"external_id": {
"description": "External client ID",
"type": "string",
"example": "sor_client_external_id_1",
"nullable": true
},
"profile_id": {
"description": "AlayaCare profile ID",
"type": "integer",
"example": 100
},
"first_name": {
"description": "Client first name",
"type": "string",
"example": "John"
},
"last_name": {
"description": "Client last name",
"type": "string",
"example": "Smith"
},
"status": {
"$ref": "#/components/schemas/ClientStatus"
},
"tags": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ClientTag"
}
},
"_link": {
"description": "Client link on the web application",
"type": "string",
"example": "https://demo3.alayacare.ca/permalink/client/b1"
}
}
},
"ClientContactDetails": {
"description": "AlayaCare client list item",
"type": "object",
"properties": {
"id": {
"description": "AlayaCare client ID",
"type": "integer",
"example": 1000
},
"ac_id": {
"type": "string",
"description": "AlayaCare ID for display in-app",
"example": "AC000000024"
},
"branch": {
"type": "object",
"description": "AlayaCare branch",
"properties": {
"id": {
"description": "Branch ID",
"type": "integer",
"example": 1000
},
"name": {
"description": "Branch name",
"type": "string",
"example": "Toronto branch"
}
}
},
"external_id": {
"description": "External client ID",
"type": "string",
"example": "sor_client_external_id_1",
"nullable": true
},
"first_name": {
"description": "Client first name",
"type": "string",
"example": "John"
},
"last_name": {
"description": "Client last name",
"type": "string",
"example": "Smith"
},
"status": {
"$ref": "#/components/schemas/ClientStatus"
},
"contact_relationship": {
"$ref": "#/components/schemas/ClientContactRelationship"
},
"_link": {
"description": "Client link on the web application",
"type": "string",
"example": "https://demo3.alayacare.ca/permalink/client/b1"
}
}
},
"ClientContactRelationship": {
"description": "AlayaCare client contact relationship specific properties details",
"type": "object",
"properties": {
"contact_type": {
"type": "string",
"example": "Medical",
"nullable": true
},
"relationship": {
"type": "string",
"example": "Doctor",
"nullable": true
},
"status": {
"$ref": "#/components/schemas/ClientContactStatus"
},
"eb_medicaid_employee_relationship": {
"type": "string",
"example": "Spouse",
"nullable": true
},
"eb_medicaid_provider_type": {
"type": "string",
"example": "Attending provider",
"nullable": true
},
"eb_medicaid_npi": {
"type": "string",
"example": "12345678",
"nullable": true
}
}
},
"ClientCreate": {
"description": "AlayaCare client entity data for creation.",
"type": "object",
"properties": {
"demographics": {
"$ref": "#/components/schemas/ClientCreateDemographics"
},
"external_id": {
"type": "string",
"description": "Client external ID",
"example": "sor_client_external_id_1"
},
"branch_id": {
"type": "integer",
"description": "AlayaCare branch the client belongs to",
"example": 2001
},
"profile_id": {
"description": "AlayaCare profile ID",
"type": "integer",
"example": 100
},
"language": {
"$ref": "#/components/schemas/ClientLanguage"
},
"groups": {
"description": "List of groups. Group objects have ID and name for convenience\nof input, but only the IDs are used here. For valid IDs,\nrequest /groups. If Group Association is enabled, a client MUST be assigned\nat least one group. Otherwise the profile will be invisible.\n",
"type": "array",
"items": {
"$ref": "#/components/schemas/Group"
}
},
"timezone": {
"description": "Timezone name in IANA format (iana.org/time-zones). If set to null, will inherit the branch timezone.\n",
"type": "string",
"example": "America/Toronto"
},
"intake_group": {
"description": "If True, the client will be assigned to the intake groups. If no Intake groups are found, a default group with name \"INTAKE\" is created. Review the intake documentation to see if this applies.",
"type": "boolean",
"default": false,
"example": true
},
"is_billing_contact": {
"description": "If True, the client self contact will be assigned as a billing contact.",
"type": "boolean",
"example": false,
"nullable": true
},
"correspondence_method": {
"description": "Preferred method of correspondence for the client self contact.",
"type": "string",
"example": "email",
"enum": [
"email",
"mail"
],
"nullable": true
}
}
},
"ClientUpdate": {
"description": "AlayaCare client entity data for update.",
"type": "object",
"properties": {
"demographics": {
"$ref": "#/components/schemas/ClientDemographics"
},
"external_id": {
"type": "string",
"description": "Client external ID",
"example": "sor_client_external_id_1"
},
"language": {
"$ref": "#/components/schemas/ClientLanguage"
},
"groups": {
"description": "List of groups. Group objects have ID and name for convenience\nof input, but only the IDs are used here. For valid IDs,\nrequest /groups.\n",
"type": "array",
"items": {
"$ref": "#/components/schemas/Group"
}
},
"timezone": {
"description": "Timezone name in IANA format (iana.org/time-zones). If set to null, will inherit the branch timezone.\n",
"type": "string",
"example": "America/Toronto"
}
}
},
"ClientStatusList": {
"allOf": [
{
"$ref": "#/components/schemas/PaginatedList"
},
{
"type": "object",
"description": "Paginated list of client status",
"properties": {
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ClientStatusDetail
# --- truncated at 32 KB (47 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/api-evangelist-alayacare/refs/heads/main/json-schema/alayacare-client-schema.json