⌘K

ReferenceReference

Programs endpoints

Exact request and response contracts for the programs endpoints, generated from the enforced Partner API contract.

Machine-readable OpenAPI description
On this page

Endpoints in this group

GET/v1/programsList programs this key may order from
GET/v1/programs/{programId}Retrieve one program
GET/v1/programs/{programId}/catalogList orderable tests in a program
GET/v1/programs/{programId}/requirementsDiscover what an order must carry

Important

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 403 forbidden.

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

bash
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.
json
{
  "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 403 forbidden.

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

bash
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.
json
{
  "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 403 forbidden.

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

bash
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.
json
{
  "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 403 forbidden.

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

bash
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.
json
{
  "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"
}

Related resources