ReferenceReference
Programs endpoints
Exact request and response contracts for the programs endpoints, generated from the enforced Partner API contract.
Machine-readable OpenAPI descriptionOn this page
Endpoints in this group
/v1/programsList programs this key may order from/v1/programs/{programId}Retrieve one program/v1/programs/{programId}/catalogList orderable tests in a program/v1/programs/{programId}/requirementsDiscover what an order must carryImportant
Base path: /api/public/partner/v1. Every response carries request_id; every failure uses the standard error envelope documented under Errors.
GET/v1/programs
List programs this key may order from
Authentication & scope
- Authentication:
Authorization: Bearer <API key>. The key is bound to one laboratory, one API client and one environment. - Required scope:
programs:read. A key without it is refused with 403forbidden.
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/programs" \
-H "Authorization: Bearer $SOLIA_API_KEY"Responses
- 200 — Granted programs.
- 401 — Missing, invalid, revoked or expired key.
- 403 — The key lacks
programs:read. - 429 — Per-instance client rate limit exceeded; honor Retry-After.
- 500 — Canonical request failed; reconcile uncertain actions.
- 503 — Required API configuration is unavailable.
{
"data": [
{
"program_id": "00000000-0000-4000-8000-000000000001",
"name": "synthetic",
"status": "synthetic",
"environment": "sandbox",
"currency": "synthetic"
}
],
"request_id": "synthetic"
}GET/v1/programs/{programId}
Retrieve one program
Authentication & scope
- Authentication:
Authorization: Bearer <API key>. The key is bound to one laboratory, one API client and one environment. - Required scope:
programs:read. A key without it is refused with 403forbidden.
Path parameters
programId(required) — string (uuid). Program 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/programs/$PROGRAM_ID" \
-H "Authorization: Bearer $SOLIA_API_KEY"Responses
- 200 — The program.
- 401 — Missing, invalid, revoked or expired key.
- 403 — Client, environment or scope denied.
- 404 — Unknown or ungranted program.
- 429 — Per-instance client rate limit exceeded; honor Retry-After.
- 500 — Canonical request failed; reconcile uncertain actions.
- 503 — Required API configuration is unavailable.
{
"data": {
"program_id": "00000000-0000-4000-8000-000000000001",
"name": "synthetic",
"status": "synthetic",
"environment": "sandbox",
"currency": "synthetic"
},
"request_id": "synthetic"
}GET/v1/programs/{programId}/catalog
List orderable tests in a program
Authentication & scope
- Authentication:
Authorization: Bearer <API key>. The key is bound to one laboratory, one API client and one environment. - Required scope:
catalog:read. A key without it is refused with 403forbidden.
Path parameters
programId(required) — string (uuid). Program 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/programs/$PROGRAM_ID/catalog" \
-H "Authorization: Bearer $SOLIA_API_KEY"Responses
- 200 — Orderable tests.
- 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": [
{
"item_id": "00000000-0000-4000-8000-000000000001",
"lab_orderable_id": "00000000-0000-4000-8000-000000000001",
"lab_test_code": "synthetic",
"code": "synthetic",
"description": "synthetic",
"external_code": "synthetic",
"name": "synthetic",
"kind": "synthetic",
"performing_laboratory": "synthetic",
"specimen_type": "synthetic",
"container": "synthetic",
"min_volume_ml": 1,
"collection_methods": [
"synthetic"
],
"preparation": "synthetic",
"collection_instructions": [
{
"method": "synthetic",
"instruction": "synthetic"
}
],
"handling": "synthetic",
"turnaround": "synthetic",
"regions": [
"synthetic"
],
"availability": "synthetic",
"price": 1,
"currency": "synthetic",
"price_visibility": "visible",
"loinc": {
"system": "LOINC",
"code": "synthetic",
"state": "mapped"
},
"cpt": {
"system": "LOINC",
"code": "synthetic",
"state": "mapped"
},
"biomarkers": [
"synthetic"
],
"markers": [
{
"marker_id": "00000000-0000-4000-8000-000000000001",
"canonical_key": "synthetic",
"lab_marker_code": "synthetic",
"name": "synthetic",
"loinc": {
"system": "LOINC",
"code": "synthetic",
"state": "mapped"
},
"unit": "synthetic",
"reference_range": {},
"specimen_class": "synthetic",
"mapping_state": "approved"
}
],
"aoe_requirement_refs": [
"synthetic"
],
"mapping_version": 1,
"orderable_version": 1,
"status": "synthetic",
"provenance": {
"item_id": "00000000-0000-4000-8000-000000000001",
"mapping_version": 1,
"mapping_status": "synthetic",
"mapping_validation_status": "synthetic",
"lab_orderable_id": "00000000-0000-4000-8000-000000000001",
"lab_test_code": "synthetic",
"orderable_version": 1,
"performing_laboratory": "synthetic",
"mapped_orderables": [
{
"lab_orderable_id": "00000000-0000-4000-8000-000000000001",
"lab_test_code": "synthetic",
"panel_role": "synthetic",
"is_required": true,
"position": 1,
"orderable_version": 1,
"performing_laboratory": "synthetic",
"specimen_type": "synthetic",
"container": "synthetic",
"min_volume_ml": 1,
"preparation": "synthetic",
"handling": "synthetic",
"turnaround": "synthetic",
"regions": [
"synthetic"
]
}
]
}
}
],
"request_id": "synthetic"
}GET/v1/programs/{programId}/requirements
Discover what an order must carry
Reports the laboratory's governed ordering requirements. A facet the laboratory has not configured is reported as not_configured and requires nothing.
Authentication & scope
- Authentication:
Authorization: Bearer <API key>. The key is bound to one laboratory, one API client and one environment. - Required scope:
catalog:read. A key without it is refused with 403forbidden.
Path parameters
programId(required) — string (uuid). Program identifier.
Query parameters
item_id(optional) — string (uuid)region(optional) — string
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/programs/$PROGRAM_ID/requirements" \
-H "Authorization: Bearer $SOLIA_API_KEY"Responses
- 200 — The governed requirement profile.
- 401 — Missing, invalid, revoked or expired key.
- 403 — Client, environment or scope denied.
- 404 — Unknown program for this key.
- 429 — Per-instance client rate limit exceeded; honor Retry-After.
- 500 — Canonical request failed; reconcile uncertain actions.
- 503 — Required API configuration is unavailable.
{
"data": {
"program_id": "00000000-0000-4000-8000-000000000001",
"item_id": "00000000-0000-4000-8000-000000000001",
"jurisdiction": "synthetic",
"environment": "sandbox",
"subject": {
"mode": "opaque_reference",
"required_patient_fields": [
"synthetic"
],
"authority_state": "configured"
},
"order": {
"required_fields": [
"synthetic"
],
"authority_state": "configured"
},
"provider": {
"requirement": "not_required",
"required_fields": [
"synthetic"
],
"authority_state": "configured",
"license_authority_state": "not_modeled"
},
"aoe": {
"authority_state": "configured",
"questions": [
{
"question_key": "synthetic",
"prompt": "synthetic",
"answer_type": "text",
"options": [
"synthetic"
],
"required": true,
"version": 1
}
]
},
"clinical": {
"policy": "synthetic",
"ordering_model": "synthetic",
"clinical_review": "synthetic",
"intake_required": true,
"requirement_id": "00000000-0000-4000-8000-000000000001",
"requirement_state": "configured"
},
"collection": {
"methods": [
"synthetic"
],
"regions": [
"synthetic"
]
},
"billing": {
"mode_required": true,
"authority_state": "configured"
}
},
"request_id": "synthetic"
}