Download OpenAPI specification:Download
Public API for the Huli healthcare platform providing endpoints for practice management, EHR (Electronic Health Records), patient management, and healthcare integrations.
This documentation covers v2 endpoints. All new integrations should use v2 endpoints exclusively.
Begin with the authentication endpoints below to obtain access credentials and learn about required headers.
Exchange your API key for a JWT token required for all authenticated requests.
API Key Access:
API keys must be requested through support channels by the organization owner.
The organization ID (id_organization) will be provided alongside the API key.
Usage:
Bearer {token}id_organization header for request scopingMost endpoints require the id_organization header to validate the request scope.
| api_key required | string Your organization's API key |
{- "api_key": "your_api_key_here"
}{- "response": "OK",
- "data": {
- "jwt": "eyJhbGciOiJSUzUxMiIs..."
}
}Retrieve organization information including healthcare professionals.
Authorization Details:
Use the expand=AUTHORIZATION query parameter to retrieve detailed authorization
information, including the idGrantor fields which contain the doctor user IDs
associated with the organization. This provides access to healthcare professional
identifiers for further API operations.
| expand | string Value: "AUTHORIZATION" Example: expand=AUTHORIZATION Include additional details in the response |
| id_organization required | integer Example: 4001 Organization ID for scoping operations to a specific organization |
{- "idOrganization": "1001",
- "idOwner": "2001",
- "name": "Healthcare Organization",
- "idUserModifiedBy": "1",
- "status": "ACTIVE",
- "authorization": [
- {
- "id": "1001",
- "idGrantor": "2001",
- "idGrantee": "3001",
- "idOrganization": "1001",
- "status": "ACTIVE"
}, - {
- "id": "1002",
- "idGrantor": "2002",
- "idGrantee": "3001",
- "idOrganization": "1001",
- "status": "ACTIVE"
}
]
}Create a new patient file in the Master Patient Index (MPI). This endpoint creates a comprehensive patient record including personal data, contact information, insurance details, and emergency contacts.
The patient file serves as the central record for all patient-related information across the Huli platform.
| id_organization required | integer Example: 4001 Organization ID for scoping operations to a specific organization |
required | object |
object | |
object | |
object |
{- "personalData": {
- "firstName": "Nombre",
- "lastName": "Apellido1 Apellido2",
- "knownAs": "Conocido Como",
- "idEthnicGroup": 5,
- "ethnicGroupOther": "Otro Grupo Etnico",
- "photo": "/huli/patient/photo/0upxts.jpg",
- "birthdate": "1995-06-16",
- "gender": "MALE",
- "bloodType": "O_POSITIVE",
- "maritalStatus": "SINGLE",
- "occupation": "Software Engineer",
- "pob": "San José, Costa Rica",
- "patientIds": [
- {
- "idType": "ID_CARD",
- "idNumber": "122223333"
}
]
}, - "contact": {
- "idProvince": 733,
- "email": "patient@example.com",
- "address": "100 meters south and 100 meters east from Plaza del Sol",
- "sendNotifications": true,
- "phones": [
- {
- "type": "MOBILE",
- "phoneNumber": 88776644,
- "phoneExtension": 123,
- "country": {
- "id": 188
}
}
]
}, - "insurance": {
- "notes": "Patient has dual coverage",
- "affiliations": [
- {
- "idInsurance": 2,
- "insuranceNumber": "abc123"
}
]
}, - "emergencyContact": {
- "notes": "Contact father first during business hours",
- "people": [
- {
- "relationship": "Padre",
- "name": "Contacto Padre",
- "email": "padre@example.com",
- "notes": "Available Monday-Friday 8am-5pm",
- "sendNotifications": true,
- "phones": [
- {
- "type": "MOBILE",
- "phoneNumber": 66778899,
- "phoneExtension": 123,
- "country": {
- "id": 188
}
}
]
}
]
}
}{- "id": "130818",
- "status": "ACTIVE",
- "idUserModifiedBy": "56576",
- "idUser": "3001",
- "idPatient": "2617",
- "patient": {
- "id": "2617",
- "status": "ACTIVE",
- "source": "PHR",
- "createdOn": "2024-01-15T10:30:00Z",
- "modifiedOn": "2024-03-20T14:45:00Z"
}, - "personalData": {
- "id": "136731",
- "status": "ACTIVE",
- "idUserModifiedBy": "56576",
- "firstName": "Test",
- "lastName": "Patient",
- "knownAs": "Oski",
- "birthdate": "1990-01-01",
- "gender": "MALE",
- "bloodType": "O_POSITIVE",
- "maritalStatus": "MARRIED",
- "occupation": "Full Stack Developer",
- "pob": "San José, Costa Rica",
- "patientIds": [
- {
- "idType": "ID_CARD",
- "idNumber": "342342343",
- "status": "ACTIVE"
}
], - "modifiedOn": "2025-07-02T03:45:14Z"
}, - "contact": {
- "id": "135640",
- "status": "ACTIVE",
- "idUserModifiedBy": "100242",
- "email": "patient@example.com",
- "sendNotifications": true,
- "phones": [
- {
- "id": "245709",
- "type": "MOBILE",
- "phoneNumber": "888880008888",
- "phoneExtension": "789",
- "country": {
- "id": "188",
- "iso2": "CR",
- "iso3": "CRI",
- "name": "Costa Rica",
- "phonePrefix": "506"
}
}
]
}, - "insurance": {
- "id": "115912",
- "status": "ACTIVE",
- "idUserModifiedBy": "100242",
- "notes": "test fer",
- "affiliations": [
- {
- "id": "1996",
- "idPatientInsurance": "115912",
- "status": "ACTIVE",
- "idInsurance": "340",
- "insuranceNumber": "23423423411111",
- "insuranceName": "fernando"
}
]
}, - "emergencyContact": {
- "id": "116653",
- "status": "ACTIVE",
- "idUserModifiedBy": "100242",
- "people": [
- {
- "id": "111231",
- "idPatientIce": "116653",
- "status": "ACTIVE",
- "relationship": "Parentesco editado",
- "name": "Otro Nombre22",
- "email": "test123456@hulilabs.com",
- "sendNotifications": false,
- "phones": [
- {
- "id": "245710",
- "type": "MOBILE",
- "phoneNumber": "8884",
- "phoneExtension": "101",
- "country": {
- "id": "188",
- "iso2": "CR",
- "iso3": "CRI",
- "name": "Costa Rica",
- "phonePrefix": "506"
}
}
]
}
]
}, - "isFromCitizenRegister": false,
- "isDemoPatient": false
}List all patient files accessible to the user within their organization
| query | string Search filter - can be a phone number, patient name, or identification number |
| limit | integer [ 1 .. 100 ] Default: 20 Maximum number of results to return |
| offset | integer >= 0 Default: 0 Number of results to skip for pagination |
| id_organization required | integer Example: 4001 Organization ID for scoping operations to a specific organization |
{- "patientFiles": [
- {
- "id": "130718",
- "idUser": "3001",
- "idPatient": "2617",
- "personalData": {
- "firstName": "Oscar",
- "lastName": "Fernandez",
- "knownAs": "Oski",
- "photo": "huli/patient/photo/22082019/73383/8ccdbff2d153166b46595bdac0985cd3.jpg",
- "patientIds": [
- {
- "idType": "ID_CARD",
- "idNumber": "342342343"
}
]
}, - "contact": {
- "email": "patient@example.com"
}
}
], - "total": 1836,
- "size": 10
}Retrieve a specific patient file by ID
| patientFileID required | string Patient file ID |
| id_organization required | integer Example: 4001 Organization ID for scoping operations to a specific organization |
{- "id": "130818",
- "status": "ACTIVE",
- "idUserModifiedBy": "56576",
- "idUser": "3001",
- "idPatient": "2617",
- "patient": {
- "id": "2617",
- "status": "ACTIVE",
- "source": "PHR",
- "createdOn": "2024-01-15T10:30:00Z",
- "modifiedOn": "2024-03-20T14:45:00Z"
}, - "personalData": {
- "id": "136731",
- "status": "ACTIVE",
- "idUserModifiedBy": "56576",
- "firstName": "Test",
- "lastName": "Patient",
- "knownAs": "Oski",
- "birthdate": "1990-01-01",
- "gender": "MALE",
- "bloodType": "O_POSITIVE",
- "maritalStatus": "MARRIED",
- "occupation": "Full Stack Developer",
- "pob": "San José, Costa Rica",
- "patientIds": [
- {
- "idType": "ID_CARD",
- "idNumber": "342342343",
- "status": "ACTIVE"
}
], - "modifiedOn": "2025-07-02T03:45:14Z"
}, - "contact": {
- "id": "135640",
- "status": "ACTIVE",
- "idUserModifiedBy": "100242",
- "email": "patient@example.com",
- "sendNotifications": true,
- "phones": [
- {
- "id": "245709",
- "type": "MOBILE",
- "phoneNumber": "888880008888",
- "phoneExtension": "789",
- "country": {
- "id": "188",
- "iso2": "CR",
- "iso3": "CRI",
- "name": "Costa Rica",
- "phonePrefix": "506"
}
}
]
}, - "insurance": {
- "id": "115912",
- "status": "ACTIVE",
- "idUserModifiedBy": "100242",
- "notes": "test fer",
- "affiliations": [
- {
- "id": "1996",
- "idPatientInsurance": "115912",
- "status": "ACTIVE",
- "idInsurance": "340",
- "insuranceNumber": "23423423411111",
- "insuranceName": "fernando"
}
]
}, - "emergencyContact": {
- "id": "116653",
- "status": "ACTIVE",
- "idUserModifiedBy": "100242",
- "people": [
- {
- "id": "111231",
- "idPatientIce": "116653",
- "status": "ACTIVE",
- "relationship": "Parentesco editado",
- "name": "Otro Nombre22",
- "email": "test123456@hulilabs.com",
- "sendNotifications": false,
- "phones": [
- {
- "id": "245710",
- "type": "MOBILE",
- "phoneNumber": "8884",
- "phoneExtension": "101",
- "country": {
- "id": "188",
- "iso2": "CR",
- "iso3": "CRI",
- "name": "Costa Rica",
- "phonePrefix": "506"
}
}
]
}
]
}, - "isFromCitizenRegister": false,
- "isDemoPatient": false
}Upload a document to a specific patient file
| patientFileID required | string Patient file ID |
| ownerID required | string Owner/Doctor ID |
| file required | string <byte> Base64 encoded PDF file |
| filename required | string Name of the file |
{- "file": "string",
- "filename": "medical-report.pdf"
}{ }Retrieve a patient's complete medical record.
Note: This endpoint uses v1 format. The response format follows v1 conventions rather than the standardized v2 format used by other endpoints.
| patientID required | string Patient ID |
| ownerID required | string Organization owner ID (user ID of the organization owner) |
{- "response": "OK",
- "data": {
- "response_data": {
- "id_patient_file": 1232,
- "id_user": 3001,
- "patient_alcohol_history": {
- "state": 3,
- "notes": "Notas alcohol",
- "alcohol_types": [
- {
- "name": "cerveza",
- "quantity": "10 por los fines de semana"
}
]
}, - "patient_allergic_history": {
- "state": 1,
- "notes": "Allergy notes update",
- "allergies": [
- {
- "id_allergy": "1",
- "name": "Allergy name #1",
- "reaction": "Allergy reaction #1"
}
]
}, - "patient_medical_history": {
- "state": 1,
- "notes": "Notas patológicas",
- "pathologies": [
- {
- "id": "5",
- "name": "(E10) Diabetes mellitus insulinodependiente",
- "medications": [
- {
- "medication": "Acetaminofen todos los días"
}
]
}
]
}, - "patient_surgical_history": {
- "state": 1,
- "notes": "Surgery notes update.",
- "surgeries": [
- {
- "id_treatment": "1",
- "name": "Surgery name #1",
- "surgery_year": "Surgery year #1",
- "complications": "Surgery complications #1"
}
]
}, - "patient_family_history": {
- "state": 1,
- "notes": "Notas familiares",
- "pathologies": [
- {
- "id": "1",
- "name": "(E10) Diabetes mellitus insulinodependiente",
- "relationships": [
- "8"
]
}
]
}, - "patient_vaccine_history": {
- "state": 1,
- "notes": "Vaccine notes update.",
- "is_up_to_date": "1",
- "vaccines": [
- {
- "id_vaccine": "1",
- "name": "Vaccine name #1",
- "vaccination_year": "Vaccine year #1"
}
]
}
}
}
}Retrieve complete checkup information
| eventID required | string Event/Checkup ID |
| id_organization required | integer Example: 4001 Organization ID for scoping operations to a specific organization |
{- "idEvent": "7",
- "idUser": "3001",
- "idPatientFile": "1001",
- "consultationType": "INITIAL",
- "isComplete": 0,
- "modifiedOn": "2024-01-15T10:30:00Z",
- "startedOn": "2024-01-15T09:00:00Z",
- "idUserModifiedBy": "1"
}Retrieve prescription details from a checkup
| eventID required | string Event/Checkup ID |
| id_organization required | integer Example: 4001 Organization ID for scoping operations to a specific organization |
{- "prescriptions": [
- {
- "idPatientPrescription": "1",
- "idPatientPrescriptionHistory": "1",
- "idUserModifiedBy": "1",
- "status": "ACTIVE",
- "indications": "New Indications",
- "medications": [
- {
- "idPatientPrescription": "1",
- "status": "ACTIVE",
- "medication": "Medication 1",
- "indications": "Indication 1"
}
], - "createdOn": "2024-01-15T10:30:00Z",
- "modifiedOn": "2024-01-15T10:30:00Z"
}
]
}Retrieve vital signs recorded during a checkup
| eventID required | string Event/Checkup ID |
| id_organization required | integer Example: 4001 Organization ID for scoping operations to a specific organization |
{- "idPatientVitalSigns": "1",
- "idUserModifiedBy": "3001",
- "status": "ACTIVE",
- "createdOn": "2024-01-15T09:15:00Z",
- "modifiedOn": "2024-01-15T09:15:00Z",
- "temperature": 9.9,
- "pulse": 8.8,
- "respiration": 7.7,
- "systolicPressure": 6,
- "diastolicPressure": 5,
- "saturation": 4.4,
- "glucose": 100
}Retrieve diagnosis information from a checkup
| eventID required | string Event/Checkup ID |
| id_organization required | integer Example: 4001 Organization ID for scoping operations to a specific organization |
{- "id": "1",
- "idUserModifiedBy": "3001",
- "additionalObservations": "Aditional observations",
- "evolutionNote": "Evolution notes",
- "diagnostics": [
- {
- "id": "1",
- "name": "Diagnóstico ICD 10",
- "createdOn": "2024-01-15T10:30:00Z",
- "modifiedOn": "2024-01-15T10:30:00Z"
}
], - "createdOn": "2024-01-15T10:30:00Z",
- "modifiedOn": "2024-01-15T10:30:00Z"
}Retrieve lab procedure requests from a checkup
| eventID required | string Event/Checkup ID |
| id_organization required | integer Example: 4001 Organization ID for scoping operations to a specific organization |
{- "labProcedureRequests": [
- {
- "id": "1",
- "idPatientPlanLabAndProcedureHistory": "1",
- "labsAndProcedures": [
- {
- "id": "2",
- "idPatientPlanLabAndProcedureRequest": "1",
- "idUserModifiedBy": "3001",
- "description": "Lab and procedures 1 - 1 Lab and procedures 1 - 1 Lab and procedures 1 - 1",
- "createdOn": "2024-01-15T10:30:00Z",
- "modifiedOn": "2024-01-15T10:30:00Z"
}
], - "createdOn": "2024-01-15T10:30:00Z",
- "modifiedOn": "2024-01-15T10:30:00Z"
}
]
}Retrieve patient suffering or symptoms from a checkup
| eventID required | string Event/Checkup ID |
| id_organization required | integer Example: 4001 Organization ID for scoping operations to a specific organization |
{- "idPatientSuffering": "1",
- "idUserModifiedBy": "3001",
- "status": "ACTIVE",
- "suffering": "Patient suffering",
- "createdOn": "2024-01-15T10:30:00Z",
- "modifiedOn": "2024-01-15T10:30:00Z"
}Retrieve reason for visit from a checkup
| eventID required | string Event/Checkup ID |
| id_organization required | integer Example: 4001 Organization ID for scoping operations to a specific organization |
{- "idPatientReasonOfVisit": "1",
- "idUserModifiedBy": "3001",
- "status": "ACTIVE",
- "reason": "Patient reason of visit",
- "createdOn": "2024-01-15T10:30:00Z",
- "modifiedOn": "2024-01-15T10:30:00Z"
}Retrieve physical examination notes from a checkup
| eventID required | string Event/Checkup ID |
| id_organization required | integer Example: 4001 Organization ID for scoping operations to a specific organization |
{- "idPatientPhysicalNote": "1",
- "idUserModifiedBy": "3001",
- "status": "ACTIVE",
- "physical": "Patient physical note",
- "createdOn": "2024-01-15T10:30:00Z",
- "modifiedOn": "2024-01-15T10:30:00Z"
}Retrieve systematic examination details from a checkup
| eventID required | string Event/Checkup ID |
| id_organization required | integer Example: 4001 Organization ID for scoping operations to a specific organization |
{- "idPatientSystematicExamination": "1",
- "idUserModifiedBy": "3001",
- "status": "ACTIVE",
- "values": [
- {
- "idOrganizationSystematicExamination": "1",
- "idSystematicExamination": "1",
- "name": "Abdomen",
- "isNormal": true,
- "note": "Abdomen note"
}
], - "createdOn": "2024-01-15T10:30:00Z",
- "modifiedOn": "2024-01-15T10:30:00Z"
}Retrieve review of systems from a checkup
| eventID required | string Event/Checkup ID |
| id_organization required | integer Example: 4001 Organization ID for scoping operations to a specific organization |
{- "idPatientReviewOfSystems": "1",
- "idUserModifiedBy": "3001",
- "status": "ACTIVE",
- "values": [
- {
- "idOrganizationReviewOfSystems": "6",
- "idReviewOfSystems": "6",
- "name": "Esquelético",
- "isNormal": true,
- "note": "Esquelético note"
}
], - "createdOn": "2024-01-15T10:30:00Z",
- "modifiedOn": "2024-01-15T10:30:00Z"
}Retrieve sleep pattern information from a checkup
| eventID required | string Event/Checkup ID |
| id_organization required | integer Example: 4001 Organization ID for scoping operations to a specific organization |
{- "idPatientSleepPattern": "1",
- "idUserModifiedBy": "3001",
- "status": "ACTIVE",
- "notes": "Sleep pattern notes",
- "createdOn": "2024-01-15T10:30:00Z",
- "modifiedOn": "2024-01-15T10:30:00Z"
}Retrieve anthropometric measurements from a checkup
| eventID required | string Event/Checkup ID |
| id_organization required | integer Example: 4001 Organization ID for scoping operations to a specific organization |
{- "idPatientAnthropometricData": "1",
- "idUserModifiedBy": "3001",
- "status": "ACTIVE",
- "createdOn": "2024-01-15T09:30:00Z",
- "modifiedOn": "2024-01-15T09:30:00Z",
- "height": 160,
- "heightUnit": "CENTIMETER",
- "weight": 50,
- "weightUnit": "KILOGRAM"
}Retrieve last menstrual cycle information from a checkup
| eventID required | string Event/Checkup ID |
| id_organization required | integer Example: 4001 Organization ID for scoping operations to a specific organization |
{- "idPatientLastMenstrualCycle": "1",
- "idUserModifiedBy": "3001",
- "status": "ACTIVE",
- "createdOn": "2024-01-15T10:30:00Z",
- "modifiedOn": "2024-01-15T10:30:00Z",
- "lastMenstrualCycle": "2024-01-01T00:00:00Z"
}Retrieve general notes from a checkup
| eventID required | string Event/Checkup ID |
| id_organization required | integer Example: 4001 Organization ID for scoping operations to a specific organization |
{- "idPatientCheckupNote": "1",
- "idUserModifiedBy": "3001",
- "status": "ACTIVE",
- "createdOn": "2024-01-15T10:30:00Z",
- "modifiedOn": "2024-01-15T10:30:00Z",
- "comments": "Checkup note comments"
}Retrieve bowel habit information from a checkup
| eventID required | string Event/Checkup ID |
| id_organization required | integer Example: 4001 Organization ID for scoping operations to a specific organization |
{- "idPatientBowelHabit": "1",
- "idUserModifiedBy": "3001",
- "description": "Bowel habit description",
- "status": "ACTIVE",
- "createdOn": "2024-01-15T10:30:00Z",
- "modifiedOn": "2024-01-15T10:30:00Z"
}Retrieve treatment plan notes from a checkup
| eventID required | string Event/Checkup ID |
| id_organization required | integer Example: 4001 Organization ID for scoping operations to a specific organization |
{- "idPatientPlanNote": "1",
- "idUserModifiedBy": "3001",
- "note": "Plan note",
- "status": "ACTIVE",
- "createdOn": "2024-01-15T10:30:00Z",
- "modifiedOn": "2024-01-15T10:30:00Z"
}Retrieve custom questions and answers from a checkup
| eventID required | string Event/Checkup ID |
| id_organization required | integer Example: 4001 Organization ID for scoping operations to a specific organization |
{- "questions": [
- {
- "idCheckupQuestion": "4",
- "idSection": "118",
- "name": "¿Soy una pregunta inactiva de Julio Health?",
- "status": "INACTIVE",
- "answer": {
- "textValue": "Si soy una pregunta inactiva"
}, - "type": "OPEN"
}
]
}Get available time slots for a doctor at a specific clinic
| doctorID required | string Doctor ID |
| clinicID required | string Clinic ID |
| from required | string <date-time> Example: from=2025-07-01T13:32:00Z Start date-time for availability range (ISO 8601 format) |
| to required | string <date-time> Example: to=2025-07-06T13:32:00Z End date-time for availability range (ISO 8601 format) |
| id_organization required | integer Example: 4001 Organization ID for scoping operations to a specific organization |
{- "idCalendar": "1",
- "idClinic": "2292",
- "idDoctor": "1",
- "slotDates": [
- {
- "date": "2025-07-01T00:00:00Z",
- "dateL10n": "mar 01, jul",
- "dateL10nComp": "martes 1 de julio",
- "slots": [
- {
- "dateTime": "2025-07-03T08:00:00Z",
- "sourceEvent": "516015",
- "time": "20250703T0800",
- "timeL10n": "08:00 am"
}
]
}
]
}Schedule a new appointment between patients and doctors.
Required fields: id_doctor, id_clinic, start_date, time_from
Appointment Duration Options:
source_event (availability slot ID) - system calculates end_date and time_to automaticallyend_date and time_to manuallyRecommendation: Using source_event is recommended to ensure the appointment is created during an available time slot.
Query availability endpoints first to get valid slot IDs.
Core Requirements:
Permission-Based Restrictions: Some users may have additional business rules enforced, such as:
Important: Business rules and validation requirements vary significantly based on user-specific permissions. The above restrictions are examples that may or may not apply to your API key.
| id_organization required | integer Example: 4001 Organization ID for scoping operations to a specific organization |
| id_doctor required | integer Doctor identifier |
| id_clinic required | integer Clinic identifier |
| id_patient_file | integer Patient file identifier (enables additional validations) |
| source_event | integer Availability event ID for the appointment slot |
| start_date required | string[0-9]{4}-[0-9]{2}-[0-9]{2} Appointment start date (YYYY-MM-DD), must be in the future |
| time_from required | string[0-9]{2}:[0-9]{2}:[0-9]{2} Appointment start time (HH:MM:SS), must be at least 1 hour in advance |
| end_date | string[0-9]{4}-[0-9]{2}-[0-9]{2} Appointment end date (YYYY-MM-DD), auto-calculated if not provided |
| time_to | string[0-9]{2}:[0-9]{2}:[0-9]{2} Appointment end time (HH:MM:SS), auto-calculated if not provided |
| notes | string <= 1000000 characters Appointment notes |
| color | string^[0-9ABCDEF]{6} Hexadecimal color for calendar display (6 characters) |
| id_treatment | integer Treatment ID to be evaluated during the appointment |
| insurance_name | string <= 100 characters Insurance provider name |
| insurance_number | string <= 100 characters Insurance provider ID |
| is_first_time_patient | boolean Flag indicating if this is patient's first visit to this doctor |
| id_tags | Array of integers Tag IDs to assign to the appointment |
{- "id_doctor": 1,
- "id_clinic": 2292,
- "id_patient_file": 1001,
- "source_event": 516015,
- "start_date": "2025-07-10",
- "time_from": "09:00:00",
- "end_date": "2025-07-10",
- "time_to": "09:30:00",
- "notes": "Follow-up consultation",
- "color": "FF5733",
- "id_treatment": 601,
- "insurance_name": "Health Insurance Co",
- "insurance_number": "INS123456",
- "is_first_time_patient": false,
- "id_tags": [
- 101,
- 102
]
}{- "idEvent": "743905",
- "idDoctor": "1",
- "idClinic": "2292",
- "idPatientFile": "1001",
- "idCalendar": "1",
- "idUserModifiedBy": "56576",
- "idUserCreatedBy": "56576",
- "isConfirmedByProvider": false,
- "isConfirmedByPatient": false,
- "isFirstTimePatient": false,
- "isStatusModifiedByPatient": false,
- "isDeletedForDoctor": false,
- "statusAppointment": "BOOKED",
- "statusAvailability": "BUSY",
- "startDate": "2025-07-15",
- "timeFrom": "11:00:00",
- "endDate": "2025-07-15",
- "timeTo": "11:30:00",
- "createdOn": "2025-07-02T16:00:29Z",
- "insuranceName": "Premium Health Insurance",
- "insuranceNumber": "PREM789012"
}Retrieve appointment details by event ID
| eventID required | string Event/Appointment ID |
| id_organization required | integer Example: 4001 Organization ID for scoping operations to a specific organization |
{- "idEvent": "743905",
- "idDoctor": "1",
- "idClinic": "2292",
- "idPatientFile": "1001",
- "idCalendar": "1",
- "idUserModifiedBy": "56576",
- "idUserCreatedBy": "56576",
- "isConfirmedByProvider": false,
- "isConfirmedByPatient": false,
- "isFirstTimePatient": false,
- "isStatusModifiedByPatient": false,
- "isDeletedForDoctor": false,
- "statusAppointment": "BOOKED",
- "statusAvailability": "BUSY",
- "startDate": "2025-07-15",
- "timeFrom": "11:00:00",
- "endDate": "2025-07-15",
- "timeTo": "11:30:00",
- "createdOn": "2025-07-02T16:00:29Z",
- "insuranceName": "Premium Health Insurance",
- "insuranceNumber": "PREM789012"
}Update appointment details.
Requirements:
BOOKED| eventID required | string Event/Appointment ID |
| id_organization required | integer Example: 4001 Organization ID for scoping operations to a specific organization |
| notes | string <= 1000000 characters Appointment notes (permission required) |
| color | string^[0-9ABCDEF]{6} Hexadecimal color for calendar display (permission required) |
| id_treatment | integer Treatment ID (permission required) |
| insurance_name | string <= 100 characters Insurance provider name |
| insurance_number | string <= 100 characters Insurance provider ID |
| is_first_time_patient | boolean First-time patient flag (permission required) |
| is_deleted_for_doctor | boolean Control visibility on doctor calendar |
| id_tags | Array of integers Tag IDs to assign (replaces existing tags) |
{- "notes": "Follow-up consultation",
- "color": "33FF57",
- "id_treatment": 602,
- "insurance_name": "Premium Health Insurance",
- "insurance_number": "PREM789012",
- "is_first_time_patient": false,
- "is_deleted_for_doctor": false,
- "id_tags": [
- 594767,
- 609675
]
}{- "idEvent": "743905",
- "idDoctor": "1",
- "idClinic": "2292",
- "idPatientFile": "1001",
- "idCalendar": "1",
- "idUserModifiedBy": "56576",
- "idUserCreatedBy": "56576",
- "isConfirmedByProvider": false,
- "isConfirmedByPatient": false,
- "isFirstTimePatient": false,
- "isStatusModifiedByPatient": false,
- "isDeletedForDoctor": false,
- "statusAppointment": "BOOKED",
- "statusAvailability": "BUSY",
- "startDate": "2025-07-15",
- "timeFrom": "11:00:00",
- "endDate": "2025-07-15",
- "timeTo": "11:30:00",
- "createdOn": "2025-07-02T16:00:29Z",
- "insuranceName": "Premium Health Insurance",
- "insuranceNumber": "PREM789012"
}Cancel an appointment, changing its status to CANCELLED and availability to IGNORE.
Effects:
BOOKED to CANCELLEDBUSY to IGNOREisStatusModifiedByPatient flag based on request| eventID required | string Event/Appointment ID |
| id_organization required | integer Example: 4001 Organization ID for scoping operations to a specific organization |
| is_status_modified_by_patient required | boolean Flag to indicate if the cancellation was requested by the patient |
{- "is_status_modified_by_patient": true
}{- "idEvent": "743905",
- "idDoctor": "1",
- "idClinic": "2292",
- "idPatientFile": "1001",
- "idCalendar": "1",
- "idUserModifiedBy": "56576",
- "idUserCreatedBy": "56576",
- "isConfirmedByProvider": false,
- "isConfirmedByPatient": false,
- "isFirstTimePatient": false,
- "isStatusModifiedByPatient": false,
- "isDeletedForDoctor": false,
- "statusAppointment": "BOOKED",
- "statusAvailability": "BUSY",
- "startDate": "2025-07-15",
- "timeFrom": "11:00:00",
- "endDate": "2025-07-15",
- "timeTo": "11:30:00",
- "createdOn": "2025-07-02T16:00:29Z",
- "insuranceName": "Premium Health Insurance",
- "insuranceNumber": "PREM789012"
}Mark an appointment as confirmed by patient.
Effects:
isConfirmedByPatient to trueBOOKED| eventID required | string Event/Appointment ID |
| id_organization required | integer Example: 4001 Organization ID for scoping operations to a specific organization |
{- "idEvent": "743905",
- "idDoctor": "1",
- "idClinic": "2292",
- "idPatientFile": "1001",
- "idCalendar": "1",
- "idUserModifiedBy": "56576",
- "idUserCreatedBy": "56576",
- "isConfirmedByProvider": false,
- "isConfirmedByPatient": false,
- "isFirstTimePatient": false,
- "isStatusModifiedByPatient": false,
- "isDeletedForDoctor": false,
- "statusAppointment": "BOOKED",
- "statusAvailability": "BUSY",
- "startDate": "2025-07-15",
- "timeFrom": "11:00:00",
- "endDate": "2025-07-15",
- "timeTo": "11:30:00",
- "createdOn": "2025-07-02T16:00:29Z",
- "insuranceName": "Premium Health Insurance",
- "insuranceNumber": "PREM789012"
}Reschedule an existing appointment to a new date and time.
Requirements:
BOOKED can be rescheduledEffects:
RESCHEDULEDBusiness Rules:
| eventID required | string Event/Appointment ID |
| id_organization required | integer Example: 4001 Organization ID for scoping operations to a specific organization |
| isStatusModifiedByPatient required | boolean Flag to indicate if the reschedule was requested by the patient |
| startDate required | string[0-9]{4}-[0-9]{2}-[0-9]{2} New start date for the appointment (YYYY-MM-DD) |
| timeFrom required | string[0-9]{2}:[0-9]{2}:[0-9]{2} New start time for the appointment (HH:MM:SS) |
| endDate | string[0-9]{4}-[0-9]{2}-[0-9]{2} New end date for the appointment (YYYY-MM-DD) |
| timeTo | string[0-9]{2}:[0-9]{2}:[0-9]{2} New end time for the appointment (HH:MM:SS) |
| sourceEvent | string Availability event ID for the new appointment slot |
{- "isStatusModifiedByPatient": true,
- "startDate": "2024-07-15",
- "timeFrom": "14:30:00",
- "endDate": "2024-07-15",
- "timeTo": "15:00:00",
- "sourceEvent": "12345"
}{- "idEvent": "743905",
- "idDoctor": "1",
- "idClinic": "2292",
- "idPatientFile": "1001",
- "idCalendar": "1",
- "idUserModifiedBy": "56576",
- "idUserCreatedBy": "56576",
- "isConfirmedByProvider": false,
- "isConfirmedByPatient": false,
- "isFirstTimePatient": false,
- "isStatusModifiedByPatient": false,
- "isDeletedForDoctor": false,
- "statusAppointment": "BOOKED",
- "statusAvailability": "BUSY",
- "startDate": "2025-07-15",
- "timeFrom": "11:00:00",
- "endDate": "2025-07-15",
- "timeTo": "11:30:00",
- "createdOn": "2025-07-02T16:00:29Z",
- "insuranceName": "Premium Health Insurance",
- "insuranceNumber": "PREM789012"
}Mark an appointment as no-show when patient doesn't attend.
Requirements:
BOOKED or COMPLETEDEffects:
NOSHOW| eventID required | string Event/Appointment ID |
| id_organization required | integer Example: 4001 Organization ID for scoping operations to a specific organization |
{- "idEvent": "743905",
- "idDoctor": "1",
- "idClinic": "2292",
- "idPatientFile": "1001",
- "idCalendar": "1",
- "idUserModifiedBy": "56576",
- "idUserCreatedBy": "56576",
- "isConfirmedByProvider": false,
- "isConfirmedByPatient": false,
- "isFirstTimePatient": false,
- "isStatusModifiedByPatient": false,
- "isDeletedForDoctor": false,
- "statusAppointment": "BOOKED",
- "statusAvailability": "BUSY",
- "startDate": "2025-07-15",
- "timeFrom": "11:00:00",
- "endDate": "2025-07-15",
- "timeTo": "11:30:00",
- "createdOn": "2025-07-02T16:00:29Z",
- "insuranceName": "Premium Health Insurance",
- "insuranceNumber": "PREM789012"
}Get all appointments for a specific doctor with filtering and pagination support.
Required Parameters:
from and to) is mandatory for filtering appointmentsFiltering:
| doctorID required | string Doctor ID |
| from required | string <date-time> Example: from=2024-01-01T00:00:00Z Start date filter (ISO 8601 format) |
| to required | string <date-time> Example: to=2024-12-31T23:59:59Z End date filter (ISO 8601 format) |
| idClinic | string Example: idClinic=2877 Filter by specific clinic ID |
| status_appointment | string Enum: "BOOKED" "RESCHEDULED" "COMPLETED" "CANCELLED" "NOSHOW" Example: status_appointment=COMPLETED Filter by appointment status |
| limit | integer Example: limit=20 Maximum number of results to return |
| offset | integer Example: offset=0 Number of results to skip for pagination |
| id_organization required | integer Example: 4001 Organization ID for scoping operations to a specific organization |
{- "appointments": [
- {
- "idEvent": "743905",
- "idDoctor": "1",
- "idClinic": "2292",
- "idPatientFile": "1001",
- "idCalendar": "1",
- "idUserModifiedBy": "56576",
- "idUserCreatedBy": "56576",
- "isConfirmedByProvider": false,
- "isConfirmedByPatient": false,
- "isFirstTimePatient": false,
- "isStatusModifiedByPatient": false,
- "isDeletedForDoctor": false,
- "statusAppointment": "BOOKED",
- "statusAvailability": "BUSY",
- "startDate": "2025-07-15",
- "timeFrom": "11:00:00",
- "endDate": "2025-07-15",
- "timeTo": "11:30:00",
- "createdOn": "2025-07-02T16:00:29Z",
- "insuranceName": "Premium Health Insurance",
- "insuranceNumber": "PREM789012"
}
], - "total": "1003",
- "size": "20"
}Get all appointments for a specific patient with filtering and pagination support.
| patientFileID required | string Patient file ID |
| from | string <date-time> Example: from=2024-01-01T00:00:00Z Start date filter (ISO 8601 format) |
| to | string <date-time> Example: to=2024-12-31T23:59:59Z End date filter (ISO 8601 format) |
| status_appointment | string Enum: "BOOKED" "RESCHEDULED" "COMPLETED" "CANCELLED" "NOSHOW" Example: status_appointment=COMPLETED Filter by appointment status |
| limit | integer Example: limit=20 Maximum number of results to return |
| offset | integer Example: offset=0 Number of results to skip for pagination |
| id_organization required | integer Example: 4001 Organization ID for scoping operations to a specific organization |
{- "appointments": [
- {
- "idEvent": "743905",
- "idDoctor": "1",
- "idClinic": "2292",
- "idPatientFile": "1001",
- "idCalendar": "1",
- "idUserModifiedBy": "56576",
- "idUserCreatedBy": "56576",
- "isConfirmedByProvider": false,
- "isConfirmedByPatient": false,
- "isFirstTimePatient": false,
- "isStatusModifiedByPatient": false,
- "isDeletedForDoctor": false,
- "statusAppointment": "BOOKED",
- "statusAvailability": "BUSY",
- "startDate": "2025-07-15",
- "timeFrom": "11:00:00",
- "endDate": "2025-07-15",
- "timeTo": "11:30:00",
- "createdOn": "2025-07-02T16:00:29Z",
- "insuranceName": "Premium Health Insurance",
- "insuranceNumber": "PREM789012"
}
], - "total": "7",
- "size": "5"
}Get all available booking tags for the organization with pagination support.
Tags can be used to categorize and filter appointments based on custom organizational criteria.
| limit | integer Example: limit=10 Maximum number of tags to return |
| offset | integer Example: offset=0 Number of tags to skip for pagination |
| id_organization required | integer Example: 4001 Organization ID for scoping operations to a specific organization |
{- "tags": [
- {
- "idTag": "594601",
- "idOrganization": "3001",
- "color": "#ffa400",
- "description": "Paciente nuevo",
- "status": "ACTIVE",
- "idUserModifiedBy": "3001",
- "createdOn": "2021-02-03T19:03:50Z",
- "modifiedOn": "2025-05-21T15:40:40Z"
}
], - "total": "16",
- "size": "10"
}Get doctor information by doctor ID from the doctor service.
This endpoint retrieves comprehensive doctor data including specialties, clinic associations, and user information.
| IDDoctor required | string Example: 1001 Doctor ID |
| id_organization required | integer Example: 4001 Organization ID for scoping operations to a specific organization |
{- "id": "1001",
- "photo": "huli/doctor/photo/22032024/83606/a5992af667c91b8b054a48309001c97c.jpg",
- "url": "dr-healthcare-professional",
- "status": "ACTIVE",
- "idUser": "2001",
- "user": {
- "id": "2001",
- "email": "doctor@example.com",
- "displayName": "Dr. Healthcare Professional",
- "firstName": "Healthcare",
- "lastName": "Professional",
- "gender": "MALE",
- "phoneNumber": 5551234567,
- "status": "ACTIVE"
}, - "specialty": [
- {
- "id": 501,
- "name": "Cardiology",
- "status": "ACTIVE"
}
], - "doctorClinic": [
- {
- "id": "3001",
- "building": "Medical Plaza",
- "floor": "3rd Floor",
- "office": "Suite 305",
- "phone": [
- {
- "id": 5001,
- "type": "MOBILE",
- "phone_number": 5551234567,
- "country": {
- "id": "188",
- "iso2": "CR",
- "iso3": "CRI",
- "name": "Costa Rica",
- "phonePrefix": "506"
}, - "phone_extension": 123
}
], - "email": [
- "clinic@example.com"
], - "idClinic": "4001",
- "clinic": {
- "id": "2001",
- "name": "Healthcare Center",
- "latitude": 9.9280694,
- "longitude": -84.0907246,
- "address": "123 Medical Street",
- "phoneNumber": "5551234567",
- "email": "info@clinic.com",
- "url": "healthcare-center",
- "status": "ACTIVE",
- "idCity": "1",
- "city": {
- "id": "1",
- "name": "San José",
- "province": {
- "id": "7",
- "name": "San José",
- "country": {
- "id": "188",
- "iso2": "CR",
- "iso3": "CRI",
- "name": "Costa Rica",
- "phonePrefix": "506"
}, - "timeZone": "America/Costa_Rica"
}
}, - "idUser": "3001",
- "user": {
- "id": "2001",
- "email": "doctor@example.com",
- "displayName": "Dr. Healthcare Professional",
- "firstName": "Healthcare",
- "lastName": "Professional",
- "gender": "MALE",
- "phoneNumber": 5551234567,
- "status": "ACTIVE"
}, - "type": "PHYSICAL",
- "cityName": "San José"
}, - "status": "ACTIVE",
- "idPaymentMethods": [
- "1",
- "2",
- "3"
], - "insurances": [
- {
- "id": 0,
- "status": "string",
- "idUserModifiedBy": "string",
- "notes": "string",
- "affiliations": [
- {
- "id": 0,
- "idPatientInsurance": 0,
- "status": "string",
- "idInsurance": "string",
- "insuranceNumber": "string",
- "insuranceName": "Pan-American Life (PALIG)"
}
]
}
]
}
], - "professionalLicense": [
- {
- "id": "358",
- "idProfessionalLicense": "6",
- "name": "Medical and Surgical College",
- "licenseNumber": "12345",
- "licenseStatus": "ACTIVE",
- "licenseType": "DOCTOR_AND_SURGEON",
- "status": "ACTIVE"
}
]
}Get doctor information by user ID
| IDUser required | string Example: 3001 User ID |
| id_organization required | integer Example: 4001 Organization ID for scoping operations to a specific organization |
{- "id": "1001",
- "photo": "huli/doctor/photo/22032024/83606/a5992af667c91b8b054a48309001c97c.jpg",
- "url": "dr-healthcare-professional",
- "status": "ACTIVE",
- "idUser": "2001",
- "user": {
- "id": "2001",
- "email": "doctor@example.com",
- "displayName": "Dr. Healthcare Professional",
- "firstName": "Healthcare",
- "lastName": "Professional",
- "gender": "MALE",
- "phoneNumber": 5551234567,
- "status": "ACTIVE"
}, - "specialty": [
- {
- "id": 501,
- "name": "Cardiology",
- "status": "ACTIVE"
}
], - "doctorClinic": [
- {
- "id": "3001",
- "building": "Medical Plaza",
- "floor": "3rd Floor",
- "office": "Suite 305",
- "phone": [
- {
- "id": 5001,
- "type": "MOBILE",
- "phone_number": 5551234567,
- "country": {
- "id": "188",
- "iso2": "CR",
- "iso3": "CRI",
- "name": "Costa Rica",
- "phonePrefix": "506"
}, - "phone_extension": 123
}
], - "email": [
- "clinic@example.com"
], - "idClinic": "4001",
- "clinic": {
- "id": "2001",
- "name": "Healthcare Center",
- "latitude": 9.9280694,
- "longitude": -84.0907246,
- "address": "123 Medical Street",
- "phoneNumber": "5551234567",
- "email": "info@clinic.com",
- "url": "healthcare-center",
- "status": "ACTIVE",
- "idCity": "1",
- "city": {
- "id": "1",
- "name": "San José",
- "province": {
- "id": "7",
- "name": "San José",
- "country": {
- "id": "188",
- "iso2": "CR",
- "iso3": "CRI",
- "name": "Costa Rica",
- "phonePrefix": "506"
}, - "timeZone": "America/Costa_Rica"
}
}, - "idUser": "3001",
- "user": {
- "id": "2001",
- "email": "doctor@example.com",
- "displayName": "Dr. Healthcare Professional",
- "firstName": "Healthcare",
- "lastName": "Professional",
- "gender": "MALE",
- "phoneNumber": 5551234567,
- "status": "ACTIVE"
}, - "type": "PHYSICAL",
- "cityName": "San José"
}, - "status": "ACTIVE",
- "idPaymentMethods": [
- "1",
- "2",
- "3"
], - "insurances": [
- {
- "id": 0,
- "status": "string",
- "idUserModifiedBy": "string",
- "notes": "string",
- "affiliations": [
- {
- "id": 0,
- "idPatientInsurance": 0,
- "status": "string",
- "idInsurance": "string",
- "insuranceNumber": "string",
- "insuranceName": "Pan-American Life (PALIG)"
}
]
}
]
}
], - "professionalLicense": [
- {
- "id": "358",
- "idProfessionalLicense": "6",
- "name": "Medical and Surgical College",
- "licenseNumber": "12345",
- "licenseStatus": "ACTIVE",
- "licenseType": "DOCTOR_AND_SURGEON",
- "status": "ACTIVE"
}
]
}Get doctor information at a specific clinic
| doctorID required | string Example: 1001 Doctor ID |
| clinicID required | string Example: 2001 Clinic ID |
| id_organization required | integer Example: 4001 Organization ID for scoping operations to a specific organization |
{- "id": "3001",
- "building": "Medical Plaza",
- "floor": "3rd Floor",
- "office": "Suite 305",
- "phone": [
- {
- "id": 5001,
- "type": "MOBILE",
- "phone_number": 5551234567,
- "country": {
- "id": "188",
- "iso2": "CR",
- "iso3": "CRI",
- "name": "Costa Rica",
- "phonePrefix": "506"
}, - "phone_extension": 123
}
], - "email": [
- "clinic@example.com"
], - "idClinic": "4001",
- "clinic": {
- "id": "2001",
- "name": "Healthcare Center",
- "latitude": 9.9280694,
- "longitude": -84.0907246,
- "address": "123 Medical Street",
- "phoneNumber": "5551234567",
- "email": "info@clinic.com",
- "url": "healthcare-center",
- "status": "ACTIVE",
- "idCity": "1",
- "city": {
- "id": "1",
- "name": "San José",
- "province": {
- "id": "7",
- "name": "San José",
- "country": {
- "id": "188",
- "iso2": "CR",
- "iso3": "CRI",
- "name": "Costa Rica",
- "phonePrefix": "506"
}, - "timeZone": "America/Costa_Rica"
}
}, - "idUser": "3001",
- "user": {
- "id": "2001",
- "email": "doctor@example.com",
- "displayName": "Dr. Healthcare Professional",
- "firstName": "Healthcare",
- "lastName": "Professional",
- "gender": "MALE",
- "phoneNumber": 5551234567,
- "status": "ACTIVE"
}, - "type": "PHYSICAL",
- "cityName": "San José"
}, - "status": "ACTIVE",
- "idPaymentMethods": [
- "1",
- "2",
- "3"
], - "insurances": [
- {
- "id": 0,
- "status": "string",
- "idUserModifiedBy": "string",
- "notes": "string",
- "affiliations": [
- {
- "id": 0,
- "idPatientInsurance": 0,
- "status": "string",
- "idInsurance": "string",
- "insuranceNumber": "string",
- "insuranceName": "Pan-American Life (PALIG)"
}
]
}
]
}Get doctor's phone number at a specific clinic
| doctorID required | string Doctor ID |
| clinicID required | string Clinic ID |
| id_organization required | integer Example: 4001 Organization ID for scoping operations to a specific organization |
{- "idDoctor": "1",
- "idClinic": "2292",
- "phone": [
- "+506 88776655 (ext 123)"
]
}Get doctor's address at a specific clinic
| doctorID required | string Doctor ID |
| clinicID required | string Clinic ID |
| id_organization required | integer Example: 4001 Organization ID for scoping operations to a specific organization |
{- "idDoctor": "1",
- "idClinic": "2292",
- "address": "123 Medical Plaza, Building A, Floor 2, Office 15"
}Webhook notifications sent when appointment-related events occur in the system.
Event Types:
APPOINTMENT_CREATED - Triggered when a new appointment is scheduledAPPOINTMENT_UPDATED - Triggered when appointment details are modifiedAPPOINTMENT_CANCELLED - Triggered when an appointment is cancelledAPPOINTMENT_RESCHEDULED - Triggered when an appointment is moved to a different timeSetup Required: Webhook subscriptions must be requested through Huli support. Contact support with your webhook endpoint URL, preferred authentication method, and which events you want to receive.
| id required | integer Unique identifier for this webhook delivery |
| event required | string Enum: "APPOINTMENT_CREATED" "APPOINTMENT_UPDATED" "APPOINTMENT_CANCELLED" "APPOINTMENT_RESCHEDULED" Type of appointment event that triggered this webhook |
| timestamp required | string <date-time> ISO 8601 timestamp when the event occurred |
required | object Appointment-specific data payload |
{- "id": 12345,
- "event": "APPOINTMENT_CREATED",
- "timestamp": "2023-12-01T10:00:00Z",
- "data": {
- "id_event": 67890,
- "id_appointment": 54321,
- "patient": {
- "id": 98765,
- "name": "John Doe",
- "email": "john.doe@example.com"
}, - "doctor": {
- "id": 11111,
- "name": "Dr. Smith"
}, - "appointment_time": "2023-12-01T14:00:00Z",
- "status": "SCHEDULED"
}
}Webhook notifications sent when checkup-related events occur in the system.
Event Types:
CHECKUP_CREATED - Triggered when a new checkup is completedCHECKUP_UPDATED - Triggered when checkup data is modifiedUsing Webhook Data:
The checkup data provided in the webhook payload can be used to retrieve detailed information using the checkup API endpoints in the "EHR - Checkups" section. Use the id_event field to fetch specific checkup data like vital signs, systematic examination, and other checkup details.
Setup Required: Webhook subscriptions must be requested through Huli support. Contact support with your webhook endpoint URL, preferred authentication method, and which events you want to receive.
| id required | integer Unique identifier for this webhook delivery |
| event required | string Enum: "CHECKUP_CREATED" "CHECKUP_UPDATED" Type of checkup event that triggered this webhook |
| timestamp required | string <date-time> ISO 8601 timestamp when the event occurred |
required | object Checkup-specific data payload. Use the |
{- "id": 12347,
- "event": "CHECKUP_CREATED",
- "timestamp": "2023-12-01T15:30:00Z",
- "data": {
- "id_event": 67892,
- "patient": {
- "id": 98765,
- "name": "John Doe"
}, - "doctor": {
- "id": 11111,
- "name": "Dr. Smith"
}, - "checkup_date": "2023-12-01T15:00:00Z",
- "type": "REGULAR_CHECKUP"
}
}