Returns every log type in the platform catalog, including each type’s full payload JSON Schema.
GET
/
v1
/
log-types
import olira
olira.init(api_key="YOUR_API_KEY")
for lt in olira.list_log_types():
print(lt.subtype, lt.display_name, lt.payload_schema)
GET /v1/log-types
Authorization: Bearer YOUR_API_KEY
[
LogType(
subtype="mood_report",
category="symptom_reports",
aliases=["moods_report"],
display_name="Mood report",
description="Reserved for categorical mood or emotion labels.",
payload_schema={"type": "object", "required": ["moods"], "properties": {"...": "..."}},
payload_description="moods[]: { mood, intensity? (0-10) }, source?.",
sources=["logged"],
version=2,
),
LogType(
subtype="symptom_report",
category="symptom_reports",
aliases=[],
display_name="Symptom report",
description="Reserved for structured symptom severity with a defined instrument.",
payload_schema={"type": "object", "required": ["instrument", "symptoms"], "properties": {"...": "..."}},
payload_description="instrument (required), symptoms[]: { name, score; ... }.",
sources=["logged"],
version=1,
),
]
{
"error": true,
"status_code": 401,
"error_type": "authentication_error",
"message": "Could not validate credentials",
"details": [
{
"type": "authentication_error",
"message": "Could not validate credentials"
}
],
"timestamp": "2026-05-06T12:00:00+00:00"
}
{
"error": true,
"status_code": 403,
"error_type": "authorization_error",
"message": "Insufficient OAuth scope for this endpoint",
"details": [
{
"type": "authorization_error",
"message": "Insufficient OAuth scope for this endpoint"
}
],
"timestamp": "2026-05-06T12:00:00+00:00"
}
{
"error": true,
"status_code": 404,
"error_type": "not_found_error",
"message": "Patient not found",
"details": [
{
"type": "not_found_error",
"message": "Patient not found"
}
],
"timestamp": "2026-05-06T12:00:00+00:00"
}
{
"error": true,
"status_code": 422,
"error_type": "validation_error",
"message": "Request validation failed (1 error)",
"details": [
{
"type": "missing",
"message": "Field required",
"field": "patient_id",
"location": ["body", "patient_id"],
"input_value": null
}
],
"timestamp": "2026-05-06T12:00:00+00:00"
}
{
"error": true,
"status_code": 429,
"error_type": "server_error",
"message": "Rate limit exceeded",
"details": [
{
"type": "rate_limit",
"message": "Too many requests; retry after backoff"
}
],
"timestamp": "2026-05-06T12:00:00+00:00"
}
{
"error": true,
"status_code": 500,
"error_type": "internal_server_error",
"message": "An internal server error occurred",
"details": [
{
"type": "internal_server_error",
"message": "An unexpected error occurred while processing your request"
}
],
"timestamp": "2026-05-06T12:00:00+00:00"
}
olira.list_log_types() -> list[LogType]
OliraModule.ListLogTypes() // -> list[LogType]
sdk:event-log
Unfiltered by your organization’s configured event types — useful for agent-guided mapping, where you need the whole catalog to figure out which type a source field maps to. This is the live counterpart to the static OliraLogType enum: always current, not limited to the subtypes known when your SDK version was released.
Returns
list[LogType]
str
Canonical subtype string, e.g. “symptom_report”.
str
Platform category this subtype belongs to, e.g. “symptom_reports”.
list[str]
Deprecated alias subtypes that still resolve to this one.
str
Human-readable name.
str
What this type is reserved for, and what not to use it for.
dict
Full JSON Schema for this type’s payload.
str
Prose summary of the payload shape.
list[str]
How this type reaches the platform, e.g. “logged”.
int
Schema version.
Raises
| Exception | When |
|---|---|
AuthError | HTTP 401 or 403 — invalid API key or insufficient OAuth scope for this endpoint. |
ValidationError | HTTP 400, 404, or 422 — malformed JSON, unknown patient, or validation failure (message includes response excerpt). |
ServerError | HTTP 409 (e.g. conflicting external identifier) or repeated 5xx after retries; includes status_code when applicable. |
RateLimitError | HTTP 429 — rate limited; check retry_after (seconds). |
NetworkError | Connection timeout, DNS failure, or read error after retries. |
import olira
olira.init(api_key="YOUR_API_KEY")
for lt in olira.list_log_types():
print(lt.subtype, lt.display_name, lt.payload_schema)
GET /v1/log-types
Authorization: Bearer YOUR_API_KEY
[
LogType(
subtype="mood_report",
category="symptom_reports",
aliases=["moods_report"],
display_name="Mood report",
description="Reserved for categorical mood or emotion labels.",
payload_schema={"type": "object", "required": ["moods"], "properties": {"...": "..."}},
payload_description="moods[]: { mood, intensity? (0-10) }, source?.",
sources=["logged"],
version=2,
),
LogType(
subtype="symptom_report",
category="symptom_reports",
aliases=[],
display_name="Symptom report",
description="Reserved for structured symptom severity with a defined instrument.",
payload_schema={"type": "object", "required": ["instrument", "symptoms"], "properties": {"...": "..."}},
payload_description="instrument (required), symptoms[]: { name, score; ... }.",
sources=["logged"],
version=1,
),
]
{
"error": true,
"status_code": 401,
"error_type": "authentication_error",
"message": "Could not validate credentials",
"details": [
{
"type": "authentication_error",
"message": "Could not validate credentials"
}
],
"timestamp": "2026-05-06T12:00:00+00:00"
}
{
"error": true,
"status_code": 403,
"error_type": "authorization_error",
"message": "Insufficient OAuth scope for this endpoint",
"details": [
{
"type": "authorization_error",
"message": "Insufficient OAuth scope for this endpoint"
}
],
"timestamp": "2026-05-06T12:00:00+00:00"
}
{
"error": true,
"status_code": 404,
"error_type": "not_found_error",
"message": "Patient not found",
"details": [
{
"type": "not_found_error",
"message": "Patient not found"
}
],
"timestamp": "2026-05-06T12:00:00+00:00"
}
{
"error": true,
"status_code": 422,
"error_type": "validation_error",
"message": "Request validation failed (1 error)",
"details": [
{
"type": "missing",
"message": "Field required",
"field": "patient_id",
"location": ["body", "patient_id"],
"input_value": null
}
],
"timestamp": "2026-05-06T12:00:00+00:00"
}
{
"error": true,
"status_code": 429,
"error_type": "server_error",
"message": "Rate limit exceeded",
"details": [
{
"type": "rate_limit",
"message": "Too many requests; retry after backoff"
}
],
"timestamp": "2026-05-06T12:00:00+00:00"
}
{
"error": true,
"status_code": 500,
"error_type": "internal_server_error",
"message": "An internal server error occurred",
"details": [
{
"type": "internal_server_error",
"message": "An unexpected error occurred while processing your request"
}
],
"timestamp": "2026-05-06T12:00:00+00:00"
}
⌘I
import olira
olira.init(api_key="YOUR_API_KEY")
for lt in olira.list_log_types():
print(lt.subtype, lt.display_name, lt.payload_schema)
GET /v1/log-types
Authorization: Bearer YOUR_API_KEY
[
LogType(
subtype="mood_report",
category="symptom_reports",
aliases=["moods_report"],
display_name="Mood report",
description="Reserved for categorical mood or emotion labels.",
payload_schema={"type": "object", "required": ["moods"], "properties": {"...": "..."}},
payload_description="moods[]: { mood, intensity? (0-10) }, source?.",
sources=["logged"],
version=2,
),
LogType(
subtype="symptom_report",
category="symptom_reports",
aliases=[],
display_name="Symptom report",
description="Reserved for structured symptom severity with a defined instrument.",
payload_schema={"type": "object", "required": ["instrument", "symptoms"], "properties": {"...": "..."}},
payload_description="instrument (required), symptoms[]: { name, score; ... }.",
sources=["logged"],
version=1,
),
]
{
"error": true,
"status_code": 401,
"error_type": "authentication_error",
"message": "Could not validate credentials",
"details": [
{
"type": "authentication_error",
"message": "Could not validate credentials"
}
],
"timestamp": "2026-05-06T12:00:00+00:00"
}
{
"error": true,
"status_code": 403,
"error_type": "authorization_error",
"message": "Insufficient OAuth scope for this endpoint",
"details": [
{
"type": "authorization_error",
"message": "Insufficient OAuth scope for this endpoint"
}
],
"timestamp": "2026-05-06T12:00:00+00:00"
}
{
"error": true,
"status_code": 404,
"error_type": "not_found_error",
"message": "Patient not found",
"details": [
{
"type": "not_found_error",
"message": "Patient not found"
}
],
"timestamp": "2026-05-06T12:00:00+00:00"
}
{
"error": true,
"status_code": 422,
"error_type": "validation_error",
"message": "Request validation failed (1 error)",
"details": [
{
"type": "missing",
"message": "Field required",
"field": "patient_id",
"location": ["body", "patient_id"],
"input_value": null
}
],
"timestamp": "2026-05-06T12:00:00+00:00"
}
{
"error": true,
"status_code": 429,
"error_type": "server_error",
"message": "Rate limit exceeded",
"details": [
{
"type": "rate_limit",
"message": "Too many requests; retry after backoff"
}
],
"timestamp": "2026-05-06T12:00:00+00:00"
}
{
"error": true,
"status_code": 500,
"error_type": "internal_server_error",
"message": "An internal server error occurred",
"details": [
{
"type": "internal_server_error",
"message": "An unexpected error occurred while processing your request"
}
],
"timestamp": "2026-05-06T12:00:00+00:00"
}

