Dashboard & Profile

9 endpoints in this category.

GET/dashboard-action-list

Get Dashboard

Get dashboard statistics, alert counts, and action items.

Authentication:Required — Authorization: Bearer <token>

Response Fields

NameTypeRequiredDescription
statsobjectYesVisit stats (today, pending, completed)
alertsobjectYesAlert counts by type

Error Codes

StatusMeaning
401Unauthorized

Code Examples

curl -X GET 'https://visitnote-api-production.up.railway.app/api/therapist/v1/dashboard-action-list' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer YOUR_TOKEN'
GET/my-profile

Get Profile

Get the full profile of the authenticated clinician.

Authentication:Required — Authorization: Bearer <token>

Response Fields

NameTypeRequiredDescription
dataUserYesFull user profile object

Error Codes

StatusMeaning
401Unauthorized

Code Examples

curl -X GET 'https://visitnote-api-production.up.railway.app/api/therapist/v1/my-profile' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer YOUR_TOKEN'
PUT/update-basic-info

Update Profile

Update the clinician's basic profile information.

Authentication:Required — Authorization: Bearer <token>

Request Body

NameTypeRequiredDescription
first_namestringNoFirst name
last_namestringNoLast name
emailstringNoEmail address
phonestringNoPhone number
addressstringNoAddress

Error Codes

StatusMeaning
422Validation error (duplicate email)

Code Examples

curl -X PUT 'https://visitnote-api-production.up.railway.app/api/therapist/v1/update-basic-info' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer YOUR_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{
  "first_name": "your_first_name",
  "last_name": "your_last_name",
  "email": "your_email",
  "phone": "your_phone",
  "address": "your_address"
}'
POST/change-password

Change Password

Change the authenticated user's password.

Authentication:Required — Authorization: Bearer <token>

Request Body

NameTypeRequiredDescription
current_passwordstringYesCurrent password
new_passwordstringYesNew password (min 8 chars)
new_password_confirmationstringYesConfirm new password

Error Codes

StatusMeaning
401Current password is incorrect
422New password too weak or mismatch

Code Examples

curl -X POST 'https://visitnote-api-production.up.railway.app/api/therapist/v1/change-password' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer YOUR_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{
  "current_password": "your_current_password",
  "new_password": "your_new_password",
  "new_password_confirmation": "your_new_password_confirmation"
}'
GET/progress-stats

Get Progress Stats

Get detailed progress statistics for the clinician.

Authentication:Required — Authorization: Bearer <token>

Response Fields

NameTypeRequiredDescription
dataobjectYesProgress statistics

Error Codes

StatusMeaning
401Unauthorized

Code Examples

curl -X GET 'https://visitnote-api-production.up.railway.app/api/therapist/v1/progress-stats' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer YOUR_TOKEN'
GET/therapist-discipline

Get Discipline List

Get the list of available clinical disciplines.

Authentication:Required — Authorization: Bearer <token>

Response Fields

NameTypeRequiredDescription
datastring[]YesArray of discipline codes

Error Codes

StatusMeaning
401Unauthorized

Code Examples

curl -X GET 'https://visitnote-api-production.up.railway.app/api/therapist/v1/therapist-discipline' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer YOUR_TOKEN'
GET/therapist-earning

Get Earnings

Get earnings data for the authenticated clinician.

Authentication:Required — Authorization: Bearer <token>

Response Fields

NameTypeRequiredDescription
dataobjectYesEarnings breakdown

Error Codes

StatusMeaning
401Unauthorized

Code Examples

curl -X GET 'https://visitnote-api-production.up.railway.app/api/therapist/v1/therapist-earning' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer YOUR_TOKEN'
GET/reports/summary

Practice Report Summary

Totals plus per-visit detail over a date range — built for year-end tax prep (mileage + visit counts) and general record-keeping. Defaults to the current calendar year.

Authentication:Required — Authorization: Bearer <token>
travel_miles / onsite_miles sum only the visits that recorded the split, so they can total less than total_miles.

Query Parameters

NameTypeRequiredDescription
fromstringNoRange start (ISO date). Default: Jan 1 of the current year
tostringNoRange end (ISO date). Default: Dec 31 of the current year

Code Examples

curl -X GET 'https://visitnote-api-production.up.railway.app/api/therapist/v1/reports/summary' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer YOUR_TOKEN'
GET/reports/time-saved

Time Saved by AI Documentation

What AI-assisted documentation measurably saved — for the caller, or for the whole organization when the caller is an org admin (scope=organization). Figures come from measured time on real notes; when there is not enough data to support a claim the response says so instead of assuming.

Authentication:Required — Authorization: Bearer <token>

Query Parameters

NameTypeRequiredDescription
fromstringNoRange start (ISO date). Default: 90 days ago
tostringNoRange end (ISO date). Default: today
scopestringNo'me' (default) or 'organization' (org admins only)

Error Codes

StatusMeaning
403scope=organization requires an organization admin seat

Code Examples

curl -X GET 'https://visitnote-api-production.up.railway.app/api/therapist/v1/reports/time-saved' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer YOUR_TOKEN'