Skip to main content

List Signals raw alerts

MethodPath
GET/v1/signals/raw-alerts

Shared authentication, project scope, and response conventions.

Lists individual alerts newest first. Ovok filters out results for Patients the caller cannot read and reads up to three Signals pages to fill a page after filtering. When filtering thins a page, continue using nextCursor until it is null, even if the current page contains fewer than limit items.

Query parameterAccepted values and meaning
statusACTIVE or RESOLVED. ACTIVE means the reading still breaches; RESOLVED means it recovered or the alert was acknowledged.
acknowledgedtrue or false. Use false for items that still need acknowledgement; an alert may already be RESOLVED while remaining unacknowledged.
patientIdOvok/Medplum Patient id. Requires read access to that Patient. If the Patient is not enrolled, the route returns 409 signals_patient_not_enrolled.
codesComma-separated LOINC codes.
sinceInclusive lower bound for createdAt, ISO 8601 date-time with an offset.
untilExclusive upper bound for createdAt, ISO 8601 date-time with an offset.
limitInteger 1–50; defaults to 50.
cursorOpaque cursor previously returned by this route for this same project.

The result is { items, nextCursor }. Each raw alert includes id, patientId, signalsPatientId, code, reason, valueNumber, valueString, message, observationId, triggerCode, triggerVersion, status, createdAt, resolvedAt, acknowledgedAt, acknowledgedBy, acknowledgedActor, and noteCount. Signals may add fields; Ovok passes those through.

reasonMeaning
TRIGGERA measurement breached a configured band.
EMPTYA reading arrived without a value.
NOTESignals created an alert associated with a note.
INACTIVEThe Patient stopped reporting.

code and the corresponding reading fields may be null when the alert did not come from a coded measurement, such as an EMPTY or INACTIVE alert.

curl --get 'https://api.sandbox.ovok.com/v1/signals/raw-alerts' \
--header "Authorization: Bearer ${OVOK_TOKEN}" \
--data-urlencode 'acknowledged=false' \
--data-urlencode 'limit=20'
StatusMeaning
403Missing signals_alerts:read.
404The supplied patientId is missing, outside the project, or unreadable.
409 signals_patient_not_enrolledThe filtered Patient has no Signals enrollment.
422Invalid query, unknown parameter, invalid cursor, or Signals rejected the filter.
503 signals_unavailableSignals could not be reached or returned an unusable response.