Skip to main content
The Olira SDKs are the supported way to send health logs, manage patients, run historical data ingestion jobs, upload passive sensor Parquet, mint patient tokens, read patient state, run batch exports, and manage outbound-action destinations from your backend. Method-by-method reference with parameters, responses, REST equivalents, and Python / C# examples lives under the category groups in the sidebar. 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). Set OLIRA_API_KEY or pass the key explicitly.

Base URL

The default HTTP origin is https://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

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:
Differences from sync: no 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_idPatientId, OliraLogType.SYMPTOM_REPORTOliraLogType.SymptomReport).

Examples

Runnable scripts ship with each SDK:

Resource ingestion

Upload clinical PDFs and related images with upload_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 with send_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

Use log_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 the api: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 with project= / 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__ from olira, or check PyPI.
  • .NET: see the package version on NuGet, or the assembly informational version.