API Docs//
API Reference
/- Create an Appointment
Get an Appointment
Get Appointment Status
List Appointment Types
Get Booking Link
Count Bookable Slots
Get Bookable Slot
List Bookable Slots
Check slot availability
List Appointments
Book an Appointment
Cancel an Appointment
Reschedule Appointment
Edit an Appointment reservation
List Automated messages
List Booking links
Edit an Appointment
Book an Appointment
Cancel an Appointment
Reschedule an Appointment
Create an Appointment
Create an appointment reservation for a patient. The appointment is held in a reserved state until confirmed via the Book Appointment endpoint.
Flow: List Slots → Create Appointment (reserve) → Book Appointment (confirm).
If the reservation is not confirmed within the hold period, it will be automatically released.
The optional booking_mechanism field defaults to hero_confirmed. ehr_confirmed appointments must be managed via the v2 endpoints; v1 supports hero_confirmed only.
Security
apiKeyAuth and practiceGroupId
- Mock serverhttps://developer.herohealth.net/_mock/apis/public-api/openapi/v1/appointments
- Staginghttps://api.staging.htech.app/v1/appointments
- Productionhttps://api.herohealth.net/v1/appointments
curl -i -X POST \
https://developer.herohealth.net/_mock/apis/public-api/openapi/v1/appointments \
-H 'Content-Type: application/json' \
-H 'x-api-key: YOUR_API_KEY_HERE' \
-H 'x-practice-group-id: YOUR_API_KEY_HERE' \
-d '{
"appointment_type_id": "42",
"location_id": "7",
"practitioner_id": "15",
"duration": 15,
"start_time": "2026-03-15T09:30:00Z",
"patient_id": "1234",
"billpayer_id": "5678",
"reason": "Annual health check",
"suppress_mail": false,
"suppress_availability_check": false,
"suppress_eligibility_check": false,
"booking_mechanism": "hero_confirmed"
}'Response
{ "id": "string", "reserved_until": "2019-08-24T14:15:22Z" }