AI Documentation

6 endpoints in this category.

POST/ai/process-audio

Process Audio with AI

Upload a visit audio recording for AI-powered transcription and SOAP note generation. Returns a transcription UUID for status polling.

Authentication:Required — Authorization: Bearer <token>
Use multipart/form-data. Max audio file size: 100MB. Processing takes 30-120 seconds.

Request Body

NameTypeRequiredDescription
audioFileYesAudio file (m4a, wav, mp3)
schedule_uuidstringYesVisit schedule UUID
disciplinestringYesClinical discipline (PT, OT, etc.)
encounter_typestringYes'daily_note'

Response Fields

NameTypeRequiredDescription
transcription_uuidstringYesUUID for polling AI pipeline status

Error Codes

StatusMeaning
413Audio file too large
422Invalid discipline or file type

Code Examples

curl -X POST 'https://visitnote-api-production.up.railway.app/api/therapist/v1/ai/process-audio' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer YOUR_TOKEN' \
  -H 'Content-Type: multipart/form-data' \
  -F 'audio=@/path/to/file' \
  -F 'schedule_uuid=value' \
  -F 'discipline=value' \
  -F 'encounter_type=daily_note'
GET/ai/status/:serverUuid

Get AI Pipeline Status

Poll the status of an AI audio processing pipeline. Returns transcription, generated SOAP note, and confidence scores when complete.

Authentication:Required — Authorization: Bearer <token>
Poll every 5 seconds until status is 'completed' or 'failed'.

Path Parameters

NameTypeRequiredDescription
serverUuidstringYesTranscription UUID from process-audio

Response Fields

NameTypeRequiredDescription
statusstringYesprocessing | completed | failed
raw_transcriptstringNoRaw audio transcription
generated_soapobjectNoGenerated SOAP note sections
verification_flagsstring[]NoItems needing clinician review
confidence_summaryobjectNoConfidence score per SOAP section
source_mapobjectNoMaps SOAP content to transcript locations
not_mentionedstring[]NoExpected items not found in audio
error_messagestringNoError details if failed

Error Codes

StatusMeaning
404Transcription not found

Code Examples

curl -X GET 'https://visitnote-api-production.up.railway.app/api/therapist/v1/ai/status/:serverUuid' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer YOUR_TOKEN'
POST/ai/retry/:serverUuid

Retry AI Processing

Retry a failed AI processing pipeline.

Authentication:Required — Authorization: Bearer <token>

Path Parameters

NameTypeRequiredDescription
serverUuidstringYesTranscription UUID

Error Codes

StatusMeaning
404Transcription not found
409Pipeline is not in failed state

Code Examples

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

Get Clinical Checklist

Get the discipline-specific clinical documentation checklist used for AI verification.

Authentication:Required — Authorization: Bearer <token>

Path Parameters

NameTypeRequiredDescription
disciplinestringYesClinical discipline (PT, OT, SLP, etc.)

Response Fields

NameTypeRequiredDescription
dataChecklistItem[]YesArray of checklist items

Error Codes

StatusMeaning
404Unknown discipline

Code Examples

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

Match Transcript to Checklist

Use AI to match a transcript against the clinical documentation checklist.

Authentication:Required — Authorization: Bearer <token>

Request Body

NameTypeRequiredDescription
transcriptstringYesRaw transcript text
disciplinestringYesClinical discipline

Response Fields

NameTypeRequiredDescription
matched_itemsobjectYesChecklist items found in transcript

Error Codes

StatusMeaning
422Missing transcript or discipline

Code Examples

curl -X POST 'https://visitnote-api-production.up.railway.app/api/therapist/v1/ai/match-checklist' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer YOUR_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{
  "transcript": "your_transcript",
  "discipline": "your_discipline"
}'
POST/ai/suggestions

Get AI Suggestions

Get AI-generated suggestions for documentation items not covered in the transcript.

Authentication:Required — Authorization: Bearer <token>

Request Body

NameTypeRequiredDescription
transcriptstringYesRaw transcript text
disciplinestringYesClinical discipline
checked_itemsstring[]YesAlready documented checklist item IDs

Response Fields

NameTypeRequiredDescription
suggestionsstring[]YesSuggested documentation additions

Error Codes

StatusMeaning
422Missing required fields

Code Examples

curl -X POST 'https://visitnote-api-production.up.railway.app/api/therapist/v1/ai/suggestions' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer YOUR_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{
  "transcript": "your_transcript",
  "discipline": "your_discipline",
  "checked_items": "your_checked_items"
}'