ReferenceReference
Results endpoints
Exact request and response contracts for the results endpoints, generated from the enforced Partner API contract.
Machine-readable OpenAPI descriptionOn this page
Endpoints in this group
/v1/orders/{orderId}/resultsRetrieve released structured results/v1/orders/{orderId}/results/{resultId}Retrieve one released result version in full/v1/orders/{orderId}/results/{resultId}/reportRetrieve the governed laboratory report for a released resultImportant
Base path: /api/public/partner/v1. Every response carries request_id; every failure uses the standard error envelope documented under Errors.
GET/v1/orders/{orderId}/results
Retrieve released structured results
Released results only. An unreleased or in-progress result version is reported as pending and is never returned, whatever its internal status. Versions are append-only: a partial version stays retrievable after the final version is released, and a corrected or amended version supersedes rather than replaces the version before it. version_lineage states the current authoritative version and every superseded version. Observation values, units and reference intervals are exactly as the laboratory supplied them; LOINC is reported as not_modeled because Core holds no observation-level LOINC authority, and no code is ever derived.
Authentication & scope
- Authentication:
Authorization: Bearer <API key>. The key is bound to one laboratory, one API client and one environment. - Required scope:
results:read. A key without it is refused with 403forbidden.
Path parameters
orderId(required) — string (uuid). Order identifier.
Synthetic schema examples are illustrative, not eligible records. Set PROGRAM_ID and ITEM_ID from granted Programs/Catalog, ORDER_ID and RESULT_ID from current responses, and EXTERNAL_SUBJECT_ID to an opaque synthetic reference. Replace body identifiers with authorized records and include patient/provider/question fields only when current requirements request them. Use Sandbox; Production requires separate approval.
cURL
curl -s "$SOLIA_API_BASE/orders/$ORDER_ID/results" \
-H "Authorization: Bearer $SOLIA_API_KEY"Responses
- 200 — Released results, if any.
- 401 — Missing, invalid, revoked or expired key.
- 403 — Client, environment or scope denied.
- 429 — Per-instance client rate limit exceeded; honor Retry-After.
- 500 — Canonical request failed; reconcile uncertain actions.
- 503 — Required API configuration is unavailable.
{
"data": {
"order_id": "00000000-0000-4000-8000-000000000001",
"pending": true,
"pending_reason": "synthetic",
"current_result_id": "00000000-0000-4000-8000-000000000001",
"current_version": 1,
"version_lineage": [
{
"result_id": "00000000-0000-4000-8000-000000000001",
"version": 1,
"version_type": "synthetic",
"state": "partial",
"released_at": "2026-10-19T00:00:00Z",
"supersedes_result_id": "00000000-0000-4000-8000-000000000001",
"superseded_by_result_id": "00000000-0000-4000-8000-000000000001",
"is_current": true
}
],
"results": [
{
"result_id": "00000000-0000-4000-8000-000000000001",
"order_id": "00000000-0000-4000-8000-000000000001",
"accession_id": "00000000-0000-4000-8000-000000000001",
"accession_number": "synthetic",
"panel_item_id": "00000000-0000-4000-8000-000000000001",
"version": 1,
"version_type": "synthetic",
"state": "partial",
"status": "released",
"performing_laboratory": "synthetic",
"performing_laboratory_system": "synthetic",
"source_result_id": "synthetic",
"source_provenance": "synthetic",
"collected_at": "2026-10-19T00:00:00Z",
"received_at": "2026-10-19T00:00:00Z",
"resulted_at": "2026-10-19T00:00:00Z",
"released_at": "2026-10-19T00:00:00Z",
"supersedes_result_id": "00000000-0000-4000-8000-000000000001",
"completeness": {
"state": "synthetic",
"expected_count": 1,
"received_count": 1,
"unresolved_count": 1,
"missing_biomarker_keys": [
"synthetic"
]
},
"critical": {
"is_critical": true,
"workflow_status": "synthetic",
"acknowledgement_state": "synthetic",
"escalation_state": "synthetic",
"responsible_role": "synthetic",
"notified_at": "2026-10-19T00:00:00Z",
"acknowledged_at": "2026-10-19T00:00:00Z",
"action_required": true
},
"report": {
"available": true,
"state": "available",
"reason": "synthetic",
"retrieval_path": "synthetic"
},
"observation_count": 1,
"observations": [
{
"observation_id": "00000000-0000-4000-8000-000000000001",
"canonical_biomarker_id": "synthetic",
"biomarker_key": "synthetic",
"lab_analyte_code": "synthetic",
"terminology": {
"loinc": {
"system": "LOINC",
"code": "synthetic",
"mapping_state": "not_modeled"
},
"snomed": {
"system": "SNOMED-CT",
"code": "synthetic",
"mapping_state": "not_modeled"
}
},
"method": "synthetic",
"observation_status": "synthetic",
"display_name": "synthetic",
"health_area": "synthetic",
"result_type": "numeric",
"value_numeric": 1,
"value_qualitative": "synthetic",
"value_text": "synthetic",
"source_value": "synthetic",
"unit": "synthetic",
"source_unit": "synthetic",
"normalized": {
"value": 1,
"unit": "synthetic",
"method": "synthetic"
},
"mapping_state": "synthetic",
"reference_low": 1,
"reference_high": 1,
"reference_text": "synthetic",
"lab_flag": "synthetic",
"interpretation": "normal",
"is_critical": true,
"observed_at": "2026-10-19T00:00:00Z",
"position": 1
}
]
}
]
},
"request_id": "synthetic"
}GET/v1/orders/{orderId}/results/{resultId}
Retrieve one released result version in full
The same released-only boundary as the collection endpoint. An unreleased version is reported as not found rather than acknowledged.
Authentication & scope
- Authentication:
Authorization: Bearer <API key>. The key is bound to one laboratory, one API client and one environment. - Required scope:
results:read. A key without it is refused with 403forbidden.
Path parameters
orderId(required) — string (uuid). Order identifier.resultId(required) — string (uuid). Released result version identifier.
Synthetic schema examples are illustrative, not eligible records. Set PROGRAM_ID and ITEM_ID from granted Programs/Catalog, ORDER_ID and RESULT_ID from current responses, and EXTERNAL_SUBJECT_ID to an opaque synthetic reference. Replace body identifiers with authorized records and include patient/provider/question fields only when current requirements request them. Use Sandbox; Production requires separate approval.
cURL
curl -s "$SOLIA_API_BASE/orders/$ORDER_ID/results/$RESULT_ID" \
-H "Authorization: Bearer $SOLIA_API_KEY"Responses
- 200 — The released result version.
- 401 — Missing, invalid, revoked or expired key.
- 403 — Client, environment or scope denied.
- 404 — No released result version with this identifier.
- 429 — Per-instance client rate limit exceeded; honor Retry-After.
- 500 — Canonical request failed; reconcile uncertain actions.
- 503 — Required API configuration is unavailable.
{
"data": {
"result_id": "00000000-0000-4000-8000-000000000001",
"order_id": "00000000-0000-4000-8000-000000000001",
"accession_id": "00000000-0000-4000-8000-000000000001",
"accession_number": "synthetic",
"panel_item_id": "00000000-0000-4000-8000-000000000001",
"version": 1,
"version_type": "synthetic",
"state": "partial",
"status": "released",
"performing_laboratory": "synthetic",
"performing_laboratory_system": "synthetic",
"source_result_id": "synthetic",
"source_provenance": "synthetic",
"collected_at": "2026-10-19T00:00:00Z",
"received_at": "2026-10-19T00:00:00Z",
"resulted_at": "2026-10-19T00:00:00Z",
"released_at": "2026-10-19T00:00:00Z",
"supersedes_result_id": "00000000-0000-4000-8000-000000000001",
"completeness": {
"state": "synthetic",
"expected_count": 1,
"received_count": 1,
"unresolved_count": 1,
"missing_biomarker_keys": [
"synthetic"
]
},
"critical": {
"is_critical": true,
"workflow_status": "synthetic",
"acknowledgement_state": "synthetic",
"escalation_state": "synthetic",
"responsible_role": "synthetic",
"notified_at": "2026-10-19T00:00:00Z",
"acknowledged_at": "2026-10-19T00:00:00Z",
"action_required": true
},
"report": {
"available": true,
"state": "available",
"reason": "synthetic",
"retrieval_path": "synthetic"
},
"observation_count": 1,
"observations": [
{
"observation_id": "00000000-0000-4000-8000-000000000001",
"canonical_biomarker_id": "synthetic",
"biomarker_key": "synthetic",
"lab_analyte_code": "synthetic",
"terminology": {
"loinc": {
"system": "LOINC",
"code": "synthetic",
"mapping_state": "not_modeled"
},
"snomed": {
"system": "SNOMED-CT",
"code": "synthetic",
"mapping_state": "not_modeled"
}
},
"method": "synthetic",
"observation_status": "synthetic",
"display_name": "synthetic",
"health_area": "synthetic",
"result_type": "numeric",
"value_numeric": 1,
"value_qualitative": "synthetic",
"value_text": "synthetic",
"source_value": "synthetic",
"unit": "synthetic",
"source_unit": "synthetic",
"normalized": {
"value": 1,
"unit": "synthetic",
"method": "synthetic"
},
"mapping_state": "synthetic",
"reference_low": 1,
"reference_high": 1,
"reference_text": "synthetic",
"lab_flag": "synthetic",
"interpretation": "normal",
"is_critical": true,
"observed_at": "2026-10-19T00:00:00Z",
"position": 1
}
]
},
"request_id": "synthetic"
}GET/v1/orders/{orderId}/results/{resultId}/report
Retrieve the governed laboratory report for a released result
Authorization is identical to the result itself: the same key, client, Program, environment, order and released version. Retrieval is always server-authorized per request — there is no permanent public link, no signed document URL, and no document URL is ever placed in a webhook delivery or a log. When no canonical laboratory report document exists the response is an explicit refusal carrying report_not_modeled; a report is never fabricated.
Authentication & scope
- Authentication:
Authorization: Bearer <API key>. The key is bound to one laboratory, one API client and one environment. - Required scope:
results:read. A key without it is refused with 403forbidden.
Path parameters
orderId(required) — string (uuid). Order identifier.resultId(required) — string (uuid). Released result version identifier.
Synthetic schema examples are illustrative, not eligible records. Set PROGRAM_ID and ITEM_ID from granted Programs/Catalog, ORDER_ID and RESULT_ID from current responses, and EXTERNAL_SUBJECT_ID to an opaque synthetic reference. Replace body identifiers with authorized records and include patient/provider/question fields only when current requirements request them. Use Sandbox; Production requires separate approval.
cURL
curl -s "$SOLIA_API_BASE/orders/$ORDER_ID/results/$RESULT_ID/report" \
-H "Authorization: Bearer $SOLIA_API_KEY"Responses
- 200 — Report availability and a short-lived, server-authorized retrieval path.
- 401 — Missing, invalid, revoked or expired key.
- 403 — Client, environment or scope denied.
- 404 — The result is not released, or no canonical report document exists for it.
- 429 — Per-instance client rate limit exceeded; honor Retry-After.
- 500 — Canonical request failed; reconcile uncertain actions.
- 503 — Required API configuration is unavailable.
{
"data": {
"order_id": "00000000-0000-4000-8000-000000000001",
"result_id": "00000000-0000-4000-8000-000000000001",
"report": {
"available": true,
"state": "available",
"reason": "synthetic",
"retrieval_path": "synthetic"
}
},
"request_id": "synthetic"
}