Skip to main content
GET
/
v1
/
state
/
{patient_id}
/
events
import olira

olira.init(api_key="YOUR_API_KEY")
ev = olira.get_events(patient_id="8a4fde23-0f1b-4c2a-9d7e-b36c1a5f0e82", status="complete", limit=10)
print(ev.count)
EventsResult(
    patient_id="8a4fde23-0f1b-4c2a-9d7e-b36c1a5f0e82",
    count=1,
    events=[
        EventEntry(
            id="evt-001",
            trigger="log_ingested",
            log_type="symptom_report",
            status="complete",
            triggered_at="2026-01-14T12:00:01Z",
            completed_at="2026-01-14T12:00:05Z",
            source_event_log_id="log-001",
            log_payload=None,
            changes=None,
        ),
    ],
)
olira.get_events(
    patient_id: str,
    since: str | None = None,
    log_type: str | None = None,
    trace_type: str | None = None,
    trace_id: str | None = None,
    status: str = "complete",
    limit: int = 50,
) -> EventsResult
Requires scope: sdk:state-read

Parameters

patient_id
str
required
Olira patient id.
since
str | None
ISO cursor.
log_type
str | None
Filter by originating log type.
trace_type
str | None
Trace object_type filter.
trace_id
str | None
Trace object_id filter.
status
str
default:"\"complete\""
Event status filter.
limit
int
default:"50"
Page size.

Returns

EventsResult
patient_id
str
Patient id.
count
int
Returned count.
events
list[EventEntry]
Event rows.
events[].id
str
Event id.
events[].trigger
str | None
Trigger label.
events[].log_type
str | None
Source log type.
events[].status
str | None
Processing status.
events[].triggered_at
str | None
Start time.
events[].completed_at
str | None
Completion time.
events[].source_event_log_id
str | None
Source log id.
events[].log_payload
dict | None
Embedded log payload.
events[].changes
dict | None
Summarized mutations.

Raises

ExceptionWhen
AuthErrorHTTP 401 or 403 — invalid API key or insufficient OAuth scope for this endpoint.
ValidationErrorHTTP 400, 404, or 422 — malformed JSON, unknown patient, or validation failure (message includes response excerpt).
ServerErrorHTTP 409 (e.g. conflicting external identifier) or repeated 5xx after retries; includes status_code when applicable.
RateLimitErrorHTTP 429 — rate limited; check retry_after (seconds).
NetworkErrorConnection timeout, DNS failure, or read error after retries.
import olira

olira.init(api_key="YOUR_API_KEY")
ev = olira.get_events(patient_id="8a4fde23-0f1b-4c2a-9d7e-b36c1a5f0e82", status="complete", limit=10)
print(ev.count)
EventsResult(
    patient_id="8a4fde23-0f1b-4c2a-9d7e-b36c1a5f0e82",
    count=1,
    events=[
        EventEntry(
            id="evt-001",
            trigger="log_ingested",
            log_type="symptom_report",
            status="complete",
            triggered_at="2026-01-14T12:00:01Z",
            completed_at="2026-01-14T12:00:05Z",
            source_event_log_id="log-001",
            log_payload=None,
            changes=None,
        ),
    ],
)