Manage practice group settings, access tokens, and configuration. Use the access token endpoint to generate short-lived JWTs for Hero Elements.
Hero Health Public API (1.0.0)
The Hero Health Public API enables healthtech partners to build products that leverage Hero Health's IM1-assured EMIS/TPP integrated functionality.
- Patient messaging — Send SMS, email, and NHS App messages on behalf of a practice
- Appointment booking — List available slots, create reservations, and confirm bookings
- Patient management — Register and look up patients via PDS (Personal Demographics Service)
- Webhooks — Subscribe to events such as appointment confirmations and write-to-record outcomes
- Booking & form links — Generate sharable links for patient self-service flows
- Elements — Generate access tokens for embedding pre-built Hero UI components
All endpoints require an x-api-key and x-practice-group-id header. API keys are scoped to specific functionality (messaging, booking, booking links). Contact Hero support to request your key.
- Mock serverhttps://developer.herohealth.net/_mock/apis/public-api/openapi/v2/patients
- Staginghttps://api.staging.htech.app/v2/patients
- Productionhttps://api.herohealth.net/v2/patients
- curl
- NodeJS
- Ruby
curl -i -X GET \
'https://developer.herohealth.net/_mock/apis/public-api/openapi/v2/patients?field=ehr_partner_id&search=string' \
-H 'x-api-key: YOUR_API_KEY_HERE' \
-H 'x-practice-group-id: YOUR_API_KEY_HERE'{ "data": [ { … } ], "count": 0 }
Request
Retrieve a list of patients for the practice group using explicit patient filters.
This endpoint is intended for structured patient search flows where partners can provide named filters such as first_name, last_name, dob, nhs_number, or ehr_partner_id.
Compared with the v2 patients endpoint, v3 supports multi-field search in a single request instead of the older field + search format.
At least one filter must be supplied.
- Mock serverhttps://developer.herohealth.net/_mock/apis/public-api/openapi/v3/patients
- Staginghttps://api.staging.htech.app/v3/patients
- Productionhttps://api.herohealth.net/v3/patients
- curl
- NodeJS
- Ruby
curl -i -X GET \
'https://developer.herohealth.net/_mock/apis/public-api/openapi/v3/patients?page_index=string&page_size=string&first_name=string&last_name=string&dob=1990-12-31&nhs_number=string&ehr_partner_id=string' \
-H 'x-api-key: YOUR_API_KEY_HERE' \
-H 'x-practice-group-id: YOUR_API_KEY_HERE'{ "data": [ { … } ], "count": 0 }