Skip to main content

API Overview

The Elix API is the same API the Elix apps use. Partner systems call it with their own credentials and are held to the same permissions, privacy rules and audit as staff.

Base address​

https://api.app.elix.ng/api/v1

Each service sits under its own prefix: /auth, /patients, /encounters, /investigations and so on. See Platform architecture for the full list.

Where to start​

  1. Get access. Write to sales@elix.ng with the facility and the integration you have in mind.
  2. Sign in. Authentication shows the sign-in calls, token refresh, and the headers that pick the facility.
  3. Find a patient. List patients searches the register.
  4. Exchange clinical data. FHIR exchange covers encounters, lab, imaging and vital signs as FHIR R4.

If you are linking an existing EMR or EHR, follow Connect your EMR from the top.

What the reference covers​

The reference pages are generated from the Elix OpenAPI description. They list the endpoints open to partners, each checked against the service code:

  • Auth: identity lookup, sign-in, refresh, sign-out and password reset
  • Patients: search, single-patient reads and the change feed
  • FHIR: encounter read and search
  • Investigations: lab and imaging orders as FHIR resources, and publishing them to a FHIR server
  • Vital signs: vital signs sets as FHIR observations

The Elix apps use other routes too. Those can change without notice and are not covered here. If you need something that is not listed, ask; we add endpoints to the reference once they are ready to be relied on.

Conventions​

  • JSON request and response bodies, except FHIR routes, which answer application/fhir+json.
  • Bearer tokens in the Authorization header.
  • Facility scope in the x-org-id and x-facility-id headers.
  • Purpose of use on patient-identifiable reads, as the purposeOfUse query parameter.
  • Ids are UUIDs. A malformed id is a 400; a well-formed id that is not yours is a 404.
  • Errors have the shape {"statusCode": 403, "message": "...", "error": "Forbidden"}. message can be a string or a list of validation messages.
  • Paging is by page and size on lists, and by cursor on the change feed and FHIR searches.

Versioning​

Everything here is under /v1. New fields are added to responses over time, so code that reads them should ignore fields it does not know.