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

NameTypeRequiredDescription
AuthorizationstringrequiredBearer <accessToken>

Request Body

Body Parameters

NameTypeRequiredDescription
stateInterviewStateoptionalFull state object returned by the previous call. Omit (or null) on the first call.
messagestringoptionalThe user's latest reply (max 2000 characters). Omit (or null) on the first call.
patientLanguagestringoptionalLanguage for patient-facing messages. Defaults to "English". Used only on the first call.
medicalOfficerLanguagestringoptionalLanguage 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
FieldTypeDescription
stateInterviewStateFull interview state. Pass this back unchanged on the next call.
replystringThe assistant's next message to display to the user.
donebooleanTrue when all 9 stages are complete.
reportstringPlain-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
}