Download OpenAPI specification:
User profiles, consent management, device tokens and login audit
Creates or updates a user profile. Behavior varies by role.
User (client) role — four paths:
Therapist role: Creates or updates a therapist account. On first login, checks for a matching TherapistInvitation to assign org membership; if none is found, grants org-admin status. Optionally triggers background sample-data seeding when SEEDING_ENABLED is True.
Destroy performs a soft-delete (is_deleted=True) rather than a hard-delete.
| userloginname | string or null <= 255 characters |
| role | string or null <= 255 characters |
| firstName | string or null <= 255 characters |
| lastName | string or null <= 255 characters |
| emailid | string or null <email> <= 255 characters |
| gender | string or null <= 255 characters |
| phoneNumber | string or null <= 20 characters |
| dob | string or null <date> |
| image required | string |
| timezone | string or null <= 155 characters |
required | Array of objects (Address) |
| loginid | string or null <= 255 characters |
| orgid | integer or null |
| npi | string or null <= 128 characters |
| is_org_admin | boolean or null Default: false |
{- "userloginname": "string",
- "role": "string",
- "firstName": "string",
- "lastName": "string",
- "emailid": "user@example.com",
- "gender": "string",
- "phoneNumber": "string",
- "dob": "2019-08-24",
- "image": "string",
- "timezone": "string",
- "address": [
- {
- "addressLine1": "string",
- "addressLine2": "string",
- "city": "string",
- "state": "string",
- "country": "string",
- "zipcode": "string"
}
], - "loginid": "string",
- "orgid": 0,
- "npi": "string",
- "is_org_admin": false
}{- "userid": 0
}Creates or updates a user profile. Behavior varies by role.
User (client) role — four paths:
Therapist role: Creates or updates a therapist account. On first login, checks for a matching TherapistInvitation to assign org membership; if none is found, grants org-admin status. Optionally triggers background sample-data seeding when SEEDING_ENABLED is True.
Destroy performs a soft-delete (is_deleted=True) rather than a hard-delete.
| userid required | integer A unique integer value identifying this users. |
Aggregates all notification-relevant activity data for a given userId into a single response. Send the userId as a URL path parameter.
The response includes the most recent log date for each tracked activity:
Aggregates all notification-relevant activity data for a given userId into a single response. Send the userId as a URL path parameter.
The response includes the most recent log date for each tracked activity:
| id required | string |
Bulk-creates or updates UserConsent records and retrieves required consents for a specific user.
POST — Accepts a list of consent objects. Items with a non-null "id" are updated; items without "id" are created. After saving, if the user is a Therapist and the consent type is not "BAA", a welcome email is dispatched to the therapist.
GET /{userId}/ — Returns all required consents for the given userId, merged with their ConsentMeta definitions into a flat record list.
[- {
- "id": 0,
- "consentid": 0,
- "userid": 0,
- "is_completed": true,
- "is_required": true
}
]Bulk-creates or updates UserConsent records and retrieves required consents for a specific user.
POST — Accepts a list of consent objects. Items with a non-null "id" are updated; items without "id" are created. After saving, if the user is a Therapist and the consent type is not "BAA", a welcome email is dispatched to the therapist.
GET /{userId}/ — Returns all required consents for the given userId, merged with their ConsentMeta definitions into a flat record list.
| consentid | integer or null |
| userid | integer or null |
| is_completed | boolean or null |
| is_required | boolean or null |
{- "consentid": 0,
- "userid": 0,
- "is_completed": true,
- "is_required": true
}{- "id": 0,
- "consentid": 0,
- "userid": 0,
- "is_completed": true,
- "is_required": true
}Bulk-creates or updates UserConsent records and retrieves required consents for a specific user.
POST — Accepts a list of consent objects. Items with a non-null "id" are updated; items without "id" are created. After saving, if the user is a Therapist and the consent type is not "BAA", a welcome email is dispatched to the therapist.
GET /{userId}/ — Returns all required consents for the given userId, merged with their ConsentMeta definitions into a flat record list.
| id required | integer A unique integer value identifying this user consent. |
{- "id": 0,
- "consentid": 0,
- "userid": 0,
- "is_completed": true,
- "is_required": true
}Lists consent metadata definitions used to populate consent forms. Accepts two optional query parameters:
Returns all matching active ConsentMeta records.
[- {
- "id": 0,
- "consent_desc": "string",
- "consent_type": "string",
- "link_text": "string",
- "link": "string",
- "target_role": "string"
}
]Lists consent metadata definitions used to populate consent forms. Accepts two optional query parameters:
Returns all matching active ConsentMeta records.
| id required | integer A unique integer value identifying this consent meta. |
{- "id": 0,
- "consent_desc": "string",
- "consent_type": "string",
- "link_text": "string",
- "link": "string",
- "target_role": "string"
}Creates a new consent signature or retrieves an existing one.
POST — If "id" is provided in the request body and a matching UserConsentSignature record exists, the existing signature is returned (read-before-write pattern). If "id" is absent or null, a new signature record is created and returned with HTTP 201.
| user_id | integer or null |
| signature required | string or null |
{- "user_id": 0,
- "signature": "string"
}{- "id": 0,
- "user_id": 0,
- "signature": "string"
}Creates or updates a login audit trail record for a user. Accepts a POST request with user_id and any audit fields in the request body. If a UserLoginAudit record already exists for the given user_id it is updated; otherwise a new record is created. Returns the id of the upserted record.
| user_id | integer or null |
| last_login | string or null <date-time> |
| last_logout | string or null <date-time> |
{- "user_id": 0,
- "last_login": "2019-08-24T14:15:22Z",
- "last_logout": "2019-08-24T14:15:22Z"
}{- "id": 0,
- "user_id": 0,
- "last_login": "2019-08-24T14:15:22Z",
- "last_logout": "2019-08-24T14:15:22Z"
}Retrieves user details by loginId. Returns basic user profile information for the active (non-deleted) user whose loginId matches the provided value. Send loginId as a URL path parameter.
| userid required | integer A unique integer value identifying this users. |
Registers or updates a device push-notification token for a user.
POST — Accepts "userid" and "device_id" in the request body. If an active UserDeviceToken record already exists for that userid + device_id combination, it is partially updated (e.g. refreshed token value) and returns the record id with HTTP 200. If no matching record exists, a new token record is created and returned with HTTP 201.
| userid | integer or null |
| device_id required | string |
| device_token required | string |
| device_type | string or null <= 20 characters |
| device_model | string or null <= 100 characters |
| os_version | string or null <= 50 characters |
| app_version | string or null <= 20 characters |
| last_seen required | string <date-time> |
| date required | string <date-time> |
{- "userid": 0,
- "device_id": "string",
- "device_token": "string",
- "device_type": "string",
- "device_model": "string",
- "os_version": "string",
- "app_version": "string",
- "last_seen": "2019-08-24T14:15:22Z",
- "date": "2019-08-24T14:15:22Z"
}{- "id": 0,
- "userid": 0,
- "device_id": "string",
- "device_token": "string",
- "device_type": "string",
- "device_model": "string",
- "os_version": "string",
- "app_version": "string",
- "last_seen": "2019-08-24T14:15:22Z",
- "date": "2019-08-24T14:15:22Z"
}Retrieves all pending (incomplete) screening records for a given userId. Returns ClientScreening rows where is_completed=False. Send userId as a URL path parameter. Returns 204 if an error occurs.
[- {
- "id": 0,
- "screening_type_id": {
- "id": 0,
- "screening_type": "string",
- "desc": "string",
- "is_deleted": true,
- "create_timestamp": "2019-08-24T14:15:22Z",
- "update_timestamp": "2019-08-24T14:15:22Z"
}
}
]Retrieves all pending (incomplete) screening records for a given userId. Returns ClientScreening rows where is_completed=False. Send userId as a URL path parameter. Returns 204 if an error occurs.
| id required | integer A unique integer value identifying this client screening. |
{- "id": 0,
- "screening_type_id": {
- "id": 0,
- "screening_type": "string",
- "desc": "string",
- "is_deleted": true,
- "create_timestamp": "2019-08-24T14:15:22Z",
- "update_timestamp": "2019-08-24T14:15:22Z"
}
}Searches for a user by email address. Accepts a POST request with an "emailid" field in the request body. Performs a case-insensitive partial match and returns the first matching active (non-deleted) user. Returns 400 if the emailid field is missing.
Searches for a user by email address. Accepts a POST request with an "emailid" field in the request body. Performs a case-insensitive partial match and returns the first matching active (non-deleted) user. Returns 400 if the emailid field is missing.
| userid required | integer A unique integer value identifying this users. |
Creates or updates all sections of a therapist's practice profile in a single request. Requires "userId" in the request body. Processes four profile sections in sequence:
Returns {"success": true} on completion.
| userloginname | string or null <= 255 characters |
| role | string or null <= 255 characters |
| firstName | string or null <= 255 characters |
| lastName | string or null <= 255 characters |
| emailid | string or null <email> <= 255 characters |
| gender | string or null <= 255 characters |
| phoneNumber | string or null <= 20 characters |
| dob | string or null <date> |
| image required | string |
| timezone | string or null <= 155 characters |
required | Array of objects (Address) |
| loginid | string or null <= 255 characters |
| orgid | integer or null |
| npi | string or null <= 128 characters |
| is_org_admin | boolean or null Default: false |
{- "userloginname": "string",
- "role": "string",
- "firstName": "string",
- "lastName": "string",
- "emailid": "user@example.com",
- "gender": "string",
- "phoneNumber": "string",
- "dob": "2019-08-24",
- "image": "string",
- "timezone": "string",
- "address": [
- {
- "addressLine1": "string",
- "addressLine2": "string",
- "city": "string",
- "state": "string",
- "country": "string",
- "zipcode": "string"
}
], - "loginid": "string",
- "orgid": 0,
- "npi": "string",
- "is_org_admin": false
}{- "userloginname": "string",
- "role": "string",
- "firstName": "string",
- "lastName": "string",
- "emailid": "user@example.com",
- "gender": "string",
- "phoneNumber": "string",
- "dob": "2019-08-24",
- "image": "string",
- "timezone": "string",
- "address": [
- {
- "addressLine1": "string",
- "addressLine2": "string",
- "city": "string",
- "state": "string",
- "country": "string",
- "zipcode": "string"
}
], - "loginid": "string",
- "orgid": 0,
- "npi": "string",
- "is_org_admin": false
}Retrieves the complete practice profile for a therapist by userId. Returns all four profile sections in a single response:
Send the therapist userId as a URL path parameter.
Retrieves the complete practice profile for a therapist by userId. Returns all four profile sections in a single response:
Send the therapist userId as a URL path parameter.
| id required | string |
Retrieves user details by userId. Returns basic user profile information merged with therapist-relationship fields (is_profile_active, invite_sent) sourced from the TherapistClient table. Returns null for those fields if no therapist-client relationship exists. Send userId as a URL path parameter.
Retrieves user details by userId. Returns basic user profile information merged with therapist-relationship fields (is_profile_active, invite_sent) sourced from the TherapistClient table. Returns null for those fields if no therapist-client relationship exists. Send userId as a URL path parameter.
| userid required | integer A unique integer value identifying this users. |
Retrieves user details by userLoginName. Returns full user profile information for any active (non-deleted) user whose userLoginName matches the provided value. Supports listing all users (GET, no param) or fetching a single user by their userLoginName (GET /{userloginname}/).
Retrieves user details by userLoginName. Returns full user profile information for any active (non-deleted) user whose userLoginName matches the provided value. Supports listing all users (GET, no param) or fetching a single user by their userLoginName (GET /{userloginname}/).
| userid required | integer A unique integer value identifying this users. |