Get action delivery
Returns one delivery’s full attempt history, including payload — the exact JSON Olira sent (or will send).
GET
/
v1
/
actions
/
deliveries
/
{delivery_id}
import olira
olira.init(api_key="YOUR_API_KEY")
delivery = olira.get_action_delivery(delivery_id="685845e2fa1b3c4567890def")
for attempt in delivery.attempts:
print(attempt.attempt, attempt.outcome, attempt.http_status)
print(delivery.payload)
using Olira;
OliraModule.Init(apiKey: "YOUR_API_KEY");
var delivery = OliraModule.GetActionDelivery(deliveryId: "685845e2fa1b3c4567890def");
foreach (var attempt in delivery.Attempts)
Console.WriteLine($"{attempt.Attempt} {attempt.Outcome} {attempt.HttpStatus}");
Console.WriteLine(delivery.Payload);
GET /v1/actions/deliveries/685845e2fa1b3c4567890def
Authorization: Bearer YOUR_API_KEY
ActionDelivery(
id="685845e2fa1b3c4567890def",
destination_id="68582e4a0a0b3c1234567890",
trigger="patient.state.changed",
status="delivered",
attempts=[
DeliveryAttempt(attempt=1, outcome="delivered", http_status=200, duration_ms=173),
],
payload={"id": "685845e2fa1b3c4567890def", "type": "patient.state.changed", "data": {"change_count": 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": "Delivery not found",
"details": [
{
"type": "not_found_error",
"message": "Delivery 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": "value_error",
"message": "Request validation failed"
}
],
"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.get_action_delivery(delivery_id: str) -> ActionDelivery
OliraModule.GetActionDelivery(string deliveryId) // -> ActionDelivery
sdk:actions
Parameters
str
required
The delivery’s id.
Returns
ActionDelivery
str
Delivery id.
str
The trigger that produced this delivery.
str
pending/mapping/sending (in flight), delivered, skipped, retrying, dead_letter, or buffered.
list[DeliveryAttempt]
Every attempt made so far, in order.
dict | None
The exact JSON sent, present only on this response.
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 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")
delivery = olira.get_action_delivery(delivery_id="685845e2fa1b3c4567890def")
for attempt in delivery.attempts:
print(attempt.attempt, attempt.outcome, attempt.http_status)
print(delivery.payload)
using Olira;
OliraModule.Init(apiKey: "YOUR_API_KEY");
var delivery = OliraModule.GetActionDelivery(deliveryId: "685845e2fa1b3c4567890def");
foreach (var attempt in delivery.Attempts)
Console.WriteLine($"{attempt.Attempt} {attempt.Outcome} {attempt.HttpStatus}");
Console.WriteLine(delivery.Payload);
GET /v1/actions/deliveries/685845e2fa1b3c4567890def
Authorization: Bearer YOUR_API_KEY
ActionDelivery(
id="685845e2fa1b3c4567890def",
destination_id="68582e4a0a0b3c1234567890",
trigger="patient.state.changed",
status="delivered",
attempts=[
DeliveryAttempt(attempt=1, outcome="delivered", http_status=200, duration_ms=173),
],
payload={"id": "685845e2fa1b3c4567890def", "type": "patient.state.changed", "data": {"change_count": 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": "Delivery not found",
"details": [
{
"type": "not_found_error",
"message": "Delivery 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": "value_error",
"message": "Request validation failed"
}
],
"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")
delivery = olira.get_action_delivery(delivery_id="685845e2fa1b3c4567890def")
for attempt in delivery.attempts:
print(attempt.attempt, attempt.outcome, attempt.http_status)
print(delivery.payload)
using Olira;
OliraModule.Init(apiKey: "YOUR_API_KEY");
var delivery = OliraModule.GetActionDelivery(deliveryId: "685845e2fa1b3c4567890def");
foreach (var attempt in delivery.Attempts)
Console.WriteLine($"{attempt.Attempt} {attempt.Outcome} {attempt.HttpStatus}");
Console.WriteLine(delivery.Payload);
GET /v1/actions/deliveries/685845e2fa1b3c4567890def
Authorization: Bearer YOUR_API_KEY
ActionDelivery(
id="685845e2fa1b3c4567890def",
destination_id="68582e4a0a0b3c1234567890",
trigger="patient.state.changed",
status="delivered",
attempts=[
DeliveryAttempt(attempt=1, outcome="delivered", http_status=200, duration_ms=173),
],
payload={"id": "685845e2fa1b3c4567890def", "type": "patient.state.changed", "data": {"change_count": 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": "Delivery not found",
"details": [
{
"type": "not_found_error",
"message": "Delivery 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": "value_error",
"message": "Request validation failed"
}
],
"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"
}

