⌘K

ReferenceReference

Results endpoints

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

Machine-readable OpenAPI description
On this page

Endpoints in this group

GET/v1/orders/{orderId}/resultsRetrieve released structured results
GET/v1/orders/{orderId}/results/{resultId}Retrieve one released result version in full
GET/v1/orders/{orderId}/results/{resultId}/reportRetrieve the governed laboratory report for a released result

Important

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

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

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

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

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

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

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

Related resources