For bulk backfill workflows (JSONL upload, job confirmation, replay), see the historical backfill guide. For clinical PDFs and related images, see resource ingestion. For multi-Hz accelerometer / gyroscope / GPS Parquet, see passive signal ingestion. For webhooks and email notifications when something happens on the platform, see outbound actions.
Installation
Authentication
Use an API key with the OAuth scopes required for each operation (see Authentication). SetOLIRA_API_KEY or pass the key explicitly.
Base URL
The default HTTP origin ishttps://app-api.prod.olira.ai/app-api. Override the base URL on init / the client constructor only when your integration uses a custom gateway or another non-default endpoint.
Initialize the client
Most examples use a process-wide singleton. Prefer an explicit client when you need multiple keys, DI, or tests.Explicit client
- Python
- C#
olira.init(...)
Raises
OliraError if no API key is available.olira.flush()
Blocks until queued logs are flushed (or fails after worker policy). Raises OliraError if init() was never called.AsyncOliraClient
Async variant with identical method names, prefixed with async/await:on_error / async_flush on the constructor; you must enter async with (or equivalent) before calling API methods, otherwise ValidationError is raised. Use await client.aclose() if not using a context manager.Error hierarchy
Exception names match across SDKs:Models and helpers (overview)
Full field lists for request/response types appear next to each method in the sidebar reference. Naming is snake_case in Python and PascalCase in C# (patient_id ↔ PatientId, OliraLogType.SYMPTOM_REPORT ↔ OliraLogType.SymptomReport).
Examples
Runnable scripts ship with each SDK:Resource ingestion
Upload clinical PDFs and related images withupload_document / UploadDocument (scope sdk:event-log). Olira runs text extraction / OCR and emits an unstructured_report or clinical_note log. Method pages live under Documents in the sidebar. For bulk packages mixed with historical rows, pass documents to create_ingestion_job / CreateIngestionJob (scope sdk:historical-ingest). Guide: Resource ingestion.
Passive signals
Upload continuous sensor Parquet withsend_signals / SendSignals (scope sdk:event-log). Supported today: accelerometer, gyroscope, GPS — more sensors will follow. Method pages live under Signals in the sidebar. Guide: Passive signal ingestion.
FHIR ingestion
Uselog_fhir / LogFhir (scope sdk:event-log, POST /v1/fhir/resource) to submit a single FHIR R4 resource. Olira maps it through the same FHIR absorber used by Epic/Cerner integrations. Full parameters, examples, and error cases are under Logs → Log FHIR resource in the sidebar.
Single-resource limit: Each call accepts one FHIR resource. Linked resources in the same payload are not resolved together. Use historical ingestion or an EHR integration for multi-resource imports.
Cohorts
Cohorts are named patient groups scoped to your organization. Use them to assign summary types to a defined set of patients without touching individual records. Method-by-method reference lives under Cohorts in the sidebar; all methods require theapi:manage-patients scope.
Projects
A project is a self-contained, isolated workspace within your organization: its own patients, event logs, patient state, views, cohorts, and platform configuration (see Projects). Every organization has exactly one default project; data written without a selected project lands there when using an org-wide key. To operate inside a project (create patients, send logs, read state), select it withproject= / project: (id or slug) on init / the client rather than through the management methods. Under the hood this is sent as the X-Olira-Project header.
create_project / CreateProject starts a project completely empty. duplicate_project / DuplicateProject copies only configuration, never patients, logs, or patient state. Method-by-method reference lives under Projects in the sidebar; all methods require the api:manage-projects scope and an org-wide key.
Schemas
Register your own event subtypes (e.g.myorg_widget_reading) and their translation into Olira’s platform catalog, self-service. Registering always lands as a pending request — Olira reviews and materializes the real schema + mapping before it can be activated. Method-by-method reference lives under Schemas in the sidebar; all methods require the api:org-config scope.
Confidence scoring
Configure how view blocks are scored for coverage, freshness, certainty, consistency, and evidence density — at the org default, view template, or block level (resolved org → view → block → platform built-ins). Method pages live under Confidence scoring in the sidebar (api:org-config). Prefer scorers[] (per builtin id such as builtin.freshness) plus top-level weights for the overall mix. Helpers get/set_view_scorer_params and set_view_confidence_weights patch one scorer or weights without rewriting the full config. See also Views & templates and View configuration.
Version
- Python: import
__version__fromolira, or check PyPI. - .NET: see the package version on NuGet, or the assembly informational version.

