An event is created by the clinic in ClinikEHR — there is no route to create one from the API. Your key reads
events the clinic already set up and checks existing patients in to them. The patient must already exist —
create one first with
POST /v1/clinics/{clinic_id}/patients (see Patients) before checking them in.
A patient the clinic has restricted, or an event that does not exist, returns 404 with code: "not_found". The two
are never told apart. See Errors.
What an event looks like
Events and stations carry no patient information — reading the event list needsoutreach:read but no
additional patient-data approval beyond the outreach kind itself.
List events
List who is checked in
progress shows each station’s status for this attendee: done, skipped, or pending (not yet visited). This is
read-only here — recording a station visit is a clinic staff action in ClinikEHR, not a route this API exposes.
Each row is excluded, rather than refusing the whole list, when the patient is one your key or connection is not
allowed to see — a restricted patient, or, for an organization key, a patient your connection is not linked to.
Check a patient in
Idempotency-Key is required. Sending the same key again returns the first answer and does not create a second
submission. See Retries and duplicates.
The answer is 202, not 200
"review_status": "pending". The patient is not checked in yet. Read the
body, not the status code — if the clinic has chosen to accept outreach check-ins from your key automatically, the
same 202 already shows "review_status": "confirmed" and "accepted_automatically": true. See
Automatic acceptance. A check-in can only ever be confirmed while the event is open; one
sent against a planned or closed event is refused before it is ever created as a submission.
After you send one
pending: waiting for a person at the clinic.confirmed: a clinician (or the clinic’s automatic acceptance) checked the patient in, through the same single path the event’s own check-in screen uses.result_record_idis the attendee record.rejected: declined, with the reason — for example, the patient was already checked in to this event by the time it was reviewed (checking the same patient in twice is harmless, not an error, at the attendee record itself, but a submission can still be rejected if the event closed in the meantime).withdrawn: you took it back while it was pending.
409 submission_not_pending).
Clinical records tagged to an event
A patient’s triage, vitals, consultation, notes, lab tests, radiology, prescriptions and documents made while checked in and while a clinic staff member has the event open on their own screen carry the event’s id inside ClinikEHR. Those records’ own routes (for example Encounters) do not return or filter on the event id yet; use List who is checked in to know who attended. This API never lets you set that tag yourself — it is the clinic’s own session that stamps it.A worked example
- The clinic sets up “Riverside community health day” in ClinikEHR with Intake and Vitals stations, and opens it.
- A patient arrives. Your system has already registered them (
POST /v1/clinics/{clinic_id}/patients), so you sendPOST …/outreach-events/EVENT_ID/attendeeswith theirpatient_idand anIdempotency-Key. The answer is202. - A clinician at the check-in desk reviews it in Outside submissions and selects Accept.
- You read the submission again:
confirmed, withresult_record_idpointing at the attendee record. GET …/outreach-events/EVENT_ID/attendeesnow lists the patient, withprogressshowing each station aspending.