API Documentation
Evergate API reference
Base URL https://api.evergate.ai/v1. All requests and responses are JSON over HTTPS.
Proposed API. Endpoints marked Proposed describe the intended v1 contract and are not yet publicly available. Example responses are synthetic and produced by the same demo rules as the playground. Schemas may change before general availability.
Authentication
Authenticate with a secret key in the Authorization header. Keys are scoped per organization, environment and module, and must only be used from your servers.
curl https://api.evergate.ai/v1/intake/analyze \
-H "Authorization: Bearer $EVERGATE_API_KEY" \
-H "Content-Type: application/json"Errors
Errors use standard HTTP status codes and a consistent body. See the full error table.
{
"error": {
"code": "invalid_request",
"field": "complaint",
"message": "`complaint` is required and must be a non-empty string."
}
}Analyze intake
ProposedPOST /v1/intake/analyzeTurns a free-text patient complaint into a structured intake object with adaptive follow-up questions.
Request body
languagestringrequired- ISO 639-1 code of the conversation: en, ru, kk, uz.
patient.ageinteger- Age in years. Omit if unknown.
complaintstringrequired- Patient-reported complaint in their own words.
session_idstring- Continue an existing intake session.
Response
session_idstring- Identifier used to continue the conversation.
statusenum- in_progress | needs_clinician_review | complete
structured_intakeobject- Chief complaint, onset, duration, and follow-ups.
{
"language": "en",
"patient": {
"age": 34
},
"complaint": "Persistent headache and nausea"
}{
"session_id": "demo_session_1l7eha",
"status": "needs_clinician_review",
"language": "en",
"structured_intake": {
"chief_complaint": "Headache and nausea",
"qualifiers": [
"persistent"
],
"duration": "not yet specified",
"reported_symptoms": [
"headache",
"nausea"
],
"patient_age": 34,
"follow_up_questions": [
"When did the headache begin?",
"Have you vomited, and if so, how many times?",
"Have you experienced any additional symptoms?"
]
},
"next_action": "ask_follow_up",
"disclaimer": "Decision-support draft for clinician review. Not a diagnosis."
}Assess triage routing
ProposedPOST /v1/triage/assessInterprets structured symptoms against your configured routing workflow and surfaces potential warning signs for clinician review.
Request body
workflow_idstringrequired- Routing workflow configured for your organization.
symptomsstring[]required- Normalized symptom list, e.g. from an intake session.
patient.ageinteger- Age in years.
Response
suggested_routestring- Route from your workflow, pending clinician review.
warning_signsobject[]- Potential red flags with the rule that matched.
requires_clinician_reviewboolean- Always true. Routing is a suggestion, not a decision.
{
"workflow_id": "primary_care_default",
"patient": {
"age": 58
},
"symptoms": [
"chest discomfort",
"shortness of breath"
]
}{
"assessment_id": "demo_triage_wselyl",
"workflow_id": "primary_care_default",
"normalized_symptoms": [
"chest discomfort",
"shortness of breath"
],
"warning_signs": [
{
"rule": "chest_symptoms",
"level": "high",
"message": "Chest symptoms reported. Workflow requires prompt clinician assessment."
}
],
"suggested_route": "priority_clinician_review",
"requires_clinician_review": true,
"rationale": "Route selected by workflow rules matching the warning signs above.",
"disclaimer": "Decision-support draft for clinician review. Not a diagnosis."
}Create transcription
ProposedPOST /v1/transcriptionsSubmits consultation audio for asynchronous, diarized transcription. Results are delivered by webhook or polling.
Request body
audio_urlstringrequired- Pre-signed URL to the audio file in your storage.
languagestringrequired- Primary language: en, ru, kk, uz.
diarizationboolean- Label speakers. Defaults to true.
webhook_urlstring- Receives transcription.completed.
Response
idstring- Transcription job identifier.
statusenum- queued | processing | completed | failed
segmentsobject[]- Speaker, start/end timestamps, and text.
{
"audio_url": "https://storage.example.com/synthetic/consult-001.wav",
"language": "en",
"diarization": true
}{
"id": "tr_demo_7d2jl5",
"status": "completed",
"language": "en",
"duration_seconds": 28,
"note": "Demo mode returns a fixed synthetic transcript regardless of audio_url.",
"speakers": [
{
"id": "clinician",
"label": "Doctor"
},
{
"id": "patient",
"label": "Patient"
}
],
"segments": [
{
"speaker": "clinician",
"start": 0,
"end": 4.2,
"text": "Good afternoon. Can you describe when the symptoms started?"
},
{
"speaker": "patient",
"start": 4.6,
"end": 9.8,
"text": "The headache started yesterday evening, and I've felt nauseous since this morning."
},
{
"speaker": "clinician",
"start": 10.3,
"end": 13.9,
"text": "On a scale of one to ten, how strong is the pain right now?"
},
{
"speaker": "patient",
"start": 14.4,
"end": 18.1,
"text": "Around six. It gets worse when I look at bright light."
},
{
"speaker": "clinician",
"start": 18.7,
"end": 22.9,
"text": "Have you taken anything for it, or had a fever?"
},
{
"speaker": "patient",
"start": 23.3,
"end": 27.6,
"text": "I took ibuprofen last night. No fever that I noticed."
}
]
}Draft clinical note
ProposedPOST /v1/documentation/draftGenerates an editable, SOAP-style draft from a transcript or intake session. Clinicians edit and approve the final note.
Request body
sourceobjectrequired- { type: transcription | intake, id }
templateenumrequired- soap | summary | referral
languagestring- Output language. Defaults to the source language.
Response
draft_idstring- Identifier of the editable draft.
statusenum- draft_pending_approval | approved
sectionsobject- Template sections with normalized terminology.
{
"source": {
"type": "transcription",
"id": "tr_demo_001"
},
"template": "soap",
"language": "en"
}{
"draft_id": "doc_demo_1p1z3r",
"status": "draft_pending_approval",
"template": "soap",
"source": {
"type": "transcription",
"id": "tr_demo_001"
},
"sections": {
"subjective": "Headache since yesterday evening, rated 6/10, worse with bright light. Nausea since this morning. Took ibuprofen last night. Denies noticed fever.",
"objective": "Not captured in conversation. To be completed by clinician.",
"assessment": "To be completed by clinician.",
"plan": "To be completed by clinician."
},
"normalized_terms": [
{
"text": "headache",
"attributes": {
"onset": "yesterday evening",
"severity": "6/10"
}
},
{
"text": "nausea",
"attributes": {
"onset": "this morning"
}
},
{
"text": "photophobia",
"source_phrase": "worse when I look at bright light"
},
{
"text": "ibuprofen",
"category": "medication_taken"
}
],
"requires_approval": true,
"disclaimer": "Decision-support draft for clinician review. Not a diagnosis."
}Planned endpoints
PlannedDesigned resources whose schemas are not yet specified. Listed so you can plan your integration.
| GET | /v1/sessions/{id} | Retrieve an intake or triage session. |
| GET | /v1/transcriptions/{id} | Poll a transcription job. |
| PATCH | /v1/documentation/drafts/{id} | Save clinician edits to a draft. |
| POST | /v1/documentation/drafts/{id}/approve | Mark a draft as approved. |
| GET | /v1/workflows | List configured triage routing workflows. |
| POST | /v1/webhooks/endpoints | Register a webhook endpoint. |