Interview Chat
Stateless 9-stage maritime telemedicine interview. The full state object is returned on each call and must be sent back on the next. First call: omit state and message, provide patientLanguage and medicalOfficerLanguage. Subsequent calls: include state from previous response and the user's message. Interview completes when done=true; the final response includes a plain-text clinical report. Stages (state.stage 0–8): Pathway AI, History Taking, Associated Symptoms, Past Medical History, Medications, Allergies, Vital Signs, Investigations, Physical Exam. Body size limit: 200 kB (state grows over the interview).
POSThttps://api.marinahealth.eu/ai/interview/chat
Requires AuthVerified Email Requiredapplication/jsonRate limit: 1000 requests per hour
Headers
Headers
| Name | Type | Required | Description |
|---|---|---|---|
| Authorization | string | required | Bearer <accessToken> |
Request Body
Body Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| state | InterviewState | optional | Full state object returned by the previous call. Omit (or null) on the first call. |
| message | string | optional | The user's latest reply (max 2000 characters). Omit (or null) on the first call. |
| patientLanguage | string | optional | Language for patient-facing messages. Defaults to "English". Used only on the first call. |
| medicalOfficerLanguage | string | optional | Language for medical officer-facing messages. Defaults to "English". Used only on the first call. |
Example Request
cURL
# First call — start the interview
curl -X POST https://api.marinahealth.eu/ai/interview/chat \
-H "Authorization: Bearer <accessToken>" \
-H "Content-Type: application/json" \
-d '{
"patientLanguage": "English",
"medicalOfficerLanguage": "English"
}'
# Subsequent call — continue the interview
curl -X POST https://api.marinahealth.eu/ai/interview/chat \
-H "Authorization: Bearer <accessToken>" \
-H "Content-Type: application/json" \
-d '{
"state": { "stage": 1, "conversationHistory": [ ... ] },
"message": "I have chest pain on the left side."
}'Response
Successful
| Field | Type | Description |
|---|---|---|
| state | InterviewState | Full interview state. Pass this back unchanged on the next call. |
| reply | string | The assistant's next message to display to the user. |
| done | boolean | True when all 9 stages are complete. |
| report | string | Plain-text clinical report. Only present when done=true. |
json
{
"state": {
"stage": 2,
"done": false,
"report": null,
"conversationHistory": [
{
"role": "assistant",
"content": "Hello, I am Marina..."
},
{
"role": "user",
"content": "I have chest pain."
}
],
"variables": {
"patientLanguage": "English",
"medicalOfficerLanguage": "English",
"symptom": "chest pain"
},
"data": {
"vitals": [],
"investigations": [],
"examFindings": []
}
},
"reply": "Do you have any other symptoms such as shortness of breath or nausea?",
"done": false
}