Download OpenAPI specification:
Goal setting, tracking, reminders and mood logging with statistics
Creates a new goal or updates an existing one for a user. Supports one-time and recurring goals with frequency tracking.
Used when:
Input:
is_onetime (required): Whether this is a one-time goalfrequency (optional): Goal frequency (auto-set to "One Time" if is_onetime=true)goalid (optional): Include to update an existing goalReturns: goalid of the created or updated goal
Common errors:
| userid | integer or null |
| status | string or null <= 50 characters |
| title | string or null <= 255 characters |
| is_onetime required | boolean |
| criticality | string or null <= 255 characters |
| reminder | boolean or null |
| frequency | string or null <= 255 characters |
| targetdate | string or null <date-time> |
| days | any or null |
required | Array of objects (GoalTrackingCreateUpdate) |
| reminderdate required | string or null <date> |
| remindertime required | string or null <time> |
| startdate | string or null <date-time> |
| description | string or null |
| is_therapist_approved | boolean |
{- "userid": 0,
- "status": "string",
- "title": "string",
- "is_onetime": true,
- "criticality": "string",
- "reminder": true,
- "frequency": "string",
- "targetdate": "2019-08-24T14:15:22Z",
- "days": null,
- "goaltracking": [
- {
- "goalid": 0,
- "iscompleted": true,
- "duedate": "2019-08-24T14:15:22Z",
- "reminderdate": "2019-08-24",
- "remindertime": "14:15:22Z",
- "is_deleted": true,
- "status": "string"
}
], - "reminderdate": "2019-08-24",
- "remindertime": "14:15:22Z",
- "startdate": "2019-08-24T14:15:22Z",
- "description": "string",
- "is_therapist_approved": true
}{- "userid": 0,
- "goalid": 0,
- "status": "string",
- "title": "string",
- "is_onetime": true,
- "criticality": "string",
- "reminder": true,
- "frequency": "string",
- "targetdate": "2019-08-24T14:15:22Z",
- "days": null,
- "goaltracking": [
- {
- "goalid": 0,
- "iscompleted": true,
- "duedate": "2019-08-24T14:15:22Z",
- "reminderdate": "2019-08-24",
- "remindertime": "14:15:22Z",
- "is_deleted": true,
- "status": "string"
}
], - "description": "string",
- "is_therapist_approved": true
}Updates the details of an existing goal identified by goalid in the URL path. If is_onetime is true, frequency is automatically set to "One Time". Future goal tracking entries (after today) are deleted and regenerated based on the updated schedule. Returns 204 if the goal is not found.
| goalid required | integer A unique integer value identifying this goal. |
| userid | integer or null |
| status | string or null <= 50 characters |
| title | string or null <= 255 characters |
| is_onetime required | boolean |
| criticality | string or null <= 255 characters |
| reminder | boolean or null |
| frequency | string or null <= 255 characters |
| targetdate | string or null <date-time> |
| days | any or null |
required | Array of objects (GoalTrackingCreateUpdate) |
| reminderdate required | string or null <date> |
| remindertime required | string or null <time> |
| startdate | string or null <date-time> |
| description | string or null |
| is_therapist_approved | boolean |
{- "userid": 0,
- "status": "string",
- "title": "string",
- "is_onetime": true,
- "criticality": "string",
- "reminder": true,
- "frequency": "string",
- "targetdate": "2019-08-24T14:15:22Z",
- "days": null,
- "goaltracking": [
- {
- "goalid": 0,
- "iscompleted": true,
- "duedate": "2019-08-24T14:15:22Z",
- "reminderdate": "2019-08-24",
- "remindertime": "14:15:22Z",
- "is_deleted": true,
- "status": "string"
}
], - "reminderdate": "2019-08-24",
- "remindertime": "14:15:22Z",
- "startdate": "2019-08-24T14:15:22Z",
- "description": "string",
- "is_therapist_approved": true
}Soft-deletes a goal and all its associated goal tracking entries by setting is_deleted=True. Requires the goalid as a URL path parameter. Returns 204 if no goal with the given ID exists.
| goalid required | integer A unique integer value identifying this goal. |
Create or update multiple therapy goals for a client in a single request. Ideal for syncing a full care plan from an EHR, or when Kana's AI generates a batch of goals from a treatment plan. For each goal, if id is non-zero and the goal exists, it is updated; otherwise a new goal is created.
Use this when:
/generate_goals_from_treatment_plan/) in bulkReturns a list of all created or updated goal IDs.
| userid | integer or null |
| status | string or null <= 50 characters |
| title | string or null <= 255 characters |
| is_onetime required | boolean |
| criticality | string or null <= 255 characters |
| reminder | boolean or null |
| frequency | string or null <= 255 characters |
| targetdate | string or null <date-time> |
| days | any or null |
required | Array of objects (GoalTrackingCreateUpdate) |
| reminderdate required | string or null <date> |
| remindertime required | string or null <time> |
| startdate | string or null <date-time> |
| description | string or null |
| is_therapist_approved | boolean |
[- [
- {
- "id": 0,
- "userid": 1,
- "title": "Morning Walk",
- "is_onetime": false,
- "frequency": "Daily",
- "criticality": "High",
- "reminder": true,
- "remindertime": "08:00:00",
- "reminderdate": null,
- "startdate": null,
- "targetdate": "2024-03-01T00:00:00",
- "days": [
- "Monday",
- "Wednesday",
- "Friday"
], - "description": null,
- "is_therapist_approved": false,
- "goaltracking": [ ]
}
]
]Update the reminder schedule for a client's therapy goal. When reminders are enabled, Kana will notify the client at the specified time. Reminder settings are automatically propagated to all associated goal tracking entries.
Input:
goalid (required): ID of the goal to updatereminder (required): true to enable, false to disable remindersremindertime (required): Time for the reminder in HH:MM:SS format| goalid | integer |
| remindertime | string or null <time> |
| reminder | boolean or null |
{- "goalid": 0,
- "remindertime": "14:15:22Z",
- "reminder": true
}Retrieve all active therapy goals for a client. Returns a complete list of goals including title, frequency, criticality, reminder settings, completion status, target date, and therapist approval flag. Use this to display a client's full goal list in your application or to sync goals into your system.
Use this when:
| userid required | integer The unique identifier of the user whose goals are being retrieved. |
[- {
- "goalid": 0,
- "userid": 0,
- "title": "string",
- "is_onetime": true,
- "frequency": "string",
- "criticality": "string",
- "reminder": true,
- "status": "string",
- "days": null,
- "targetdate": "2019-08-24T14:15:22Z",
- "remindertime": "14:15:22Z",
- "description": "string",
- "is_therapist_approved": true
}
]Retrieve all active therapy goals for a client. Returns a complete list of goals including title, frequency, criticality, reminder settings, completion status, target date, and therapist approval flag. Use this to display a client's full goal list in your application or to sync goals into your system.
Use this when:
| goalid required | integer A unique integer value identifying this goal. |
| userid required | integer The unique identifier of the user whose goals are being retrieved. |
[- {
- "goalid": 0,
- "userid": 0,
- "title": "string",
- "is_onetime": true,
- "frequency": "string",
- "criticality": "string",
- "reminder": true,
- "status": "string",
- "days": null,
- "targetdate": "2019-08-24T14:15:22Z",
- "remindertime": "14:15:22Z",
- "description": "string",
- "is_therapist_approved": true
}
]Mark a specific goal tracking entry as completed or incomplete. When all tracking entries for a goal are completed, Kana automatically marks the overall goal as "Completed". This is the key endpoint for recording client progress.
Use this when:
Input:
goalTrackId (required): ID of the specific tracking entry to updateiscompleted (required): true to mark completed, false to unmark| goalid required | integer A unique integer value identifying this goal. |
| property name* additional property | any |
{- "goalTrackId": 101,
- "iscompleted": true
}Retrieve a client's goal tracking schedule for a date range — showing which goals are scheduled for each day, their completion status, and reminder time. Use this to build a calendar or daily task view of a client's therapy goals in your application.
Use this when:
Response is timezone-aware (pass time_zone to get local dates). Returns goal entries grouped by due date.
| property name* additional property | any |
{- "userid": 1,
- "fromdate": "2024-01-01",
- "todate": "2024-01-07",
- "time_zone": "America/New_York"
}Record a mood check-in for a client. Kana uses mood data as part of its clinical intelligence — mood trends inform AI session summaries, goal recommendations, and risk assessments. Partners can log mood entries on behalf of clients from any platform, including wearables, mobile apps, or EHR integrations.
Use this when:
Each entry records the user ID, log date/time, mood type, and optional reasons.
| userid | integer or null |
| logdate | string or null <date-time> |
| mood | string or null <= 255 characters |
| reasons | any or null |
{- "userid": 0,
- "logdate": "2019-08-24T14:15:22Z",
- "mood": "string",
- "reasons": null
}Retrieve aggregated mood statistics for a client over a specified date range. Returns mood counts grouped by day and mood type, with associated reasons — useful for building mood trend charts, clinical progress reports, or generating insights for care plan reviews.
Use this when:
Dates can be YYYY-MM-DD or full ISO 8601 format. Returns 204 if no mood data exists for the specified range.
| property name* additional property | any |
{- "userid": 1,
- "fromdate": "2024-01-01",
- "todate": "2024-01-31"
}Retrieve all mood log entries for a client. Use this to display a client's mood history in your application, sync mood data to your system, or analyze patterns for clinical decision support.
Use this when:
Each record includes the user ID, log date/time, mood type, and reasons.
| userid required | integer The unique identifier of the user whose mood logs are being retrieved. |
[- {
- "moodid": 0,
- "userid": 0,
- "logdate": "2019-08-24T14:15:22Z",
- "mood": "string",
- "reasons": null
}
]Retrieve all mood log entries for a client. Use this to display a client's mood history in your application, sync mood data to your system, or analyze patterns for clinical decision support.
Use this when:
Each record includes the user ID, log date/time, mood type, and reasons.
| moodid required | integer A unique integer value identifying this mood tracker. |
| userid required | integer The unique identifier of the user whose mood logs are being retrieved. |
[- {
- "moodid": 0,
- "userid": 0,
- "logdate": "2019-08-24T14:15:22Z",
- "mood": "string",
- "reasons": null
}
]Retrieve goals that have been approved by a therapist but not yet started by the client. These are goals ready to be presented to the client — use this to surface newly assigned goals in your application so the client can begin working on them.
Use this when:
Returns non-started, therapist-approved goals with their earliest scheduled start date.
| userid required | integer The unique identifier of the user whose pending goals are being retrieved. |
[- {
- "goalid": 0,
- "userid": 0,
- "title": "string",
- "description": "string",
- "startdate": "string",
- "targetdate": "2019-08-24T14:15:22Z",
- "is_onetime": true,
- "frequency": "string",
- "days": null
}
]Retrieve goals that have been approved by a therapist but not yet started by the client. These are goals ready to be presented to the client — use this to surface newly assigned goals in your application so the client can begin working on them.
Use this when:
Returns non-started, therapist-approved goals with their earliest scheduled start date.
| id required | string |
| userid required | integer The unique identifier of the user whose pending goals are being retrieved. |
[- {
- "goalid": 0,
- "userid": 0,
- "title": "string",
- "description": "string",
- "startdate": "string",
- "targetdate": "2019-08-24T14:15:22Z",
- "is_onetime": true,
- "frequency": "string",
- "days": null
}
]