Vital Lab Testing API

The lab-testing API from Vital — 0 operation(s) for lab-testing.

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/vital-io-lab-testing-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

vital-io-lab-testing-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Vital Io Lab Testing API
  version: 0.4.497
  description: 'Operations tagged lab-testing across 9 of this provider''s published API definitions: vital-lab-report-parser-api-openapi.yml, vital-lab-testing-api-openapi.yml, vital-link-api-openapi.yml, vital-openapi-original.json, vital-openapi-original.yml, vital-sense-api-openapi.yml, vital-team-api-openapi.yml, vital-users-api-openapi.yml, vital-wearables-api-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.us.junction.com
  x-fern-server-name: Production
- url: https://api.eu.junction.com
  x-fern-server-name: ProductionEU
- url: https://api.sandbox.us.junction.com
  x-fern-server-name: Sandbox
- url: https://api.sandbox.eu.junction.com
  x-fern-server-name: SandboxEU
security:
- apiKeyAuth: []
tags:
- name: lab-testing
paths: {}
webhooks:
  labtest.order.*:
    post:
      tags:
      - lab-testing
      summary: Order
      operationId: orderlabtest_order___post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ClientFacingOrderChanged'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    servers:
    - url: https://api.us.junction.com
      x-fern-server-name: Production
    - url: https://api.eu.junction.com
      x-fern-server-name: ProductionEU
    - url: https://api.sandbox.us.junction.com
      x-fern-server-name: Sandbox
    - url: https://api.sandbox.eu.junction.com
      x-fern-server-name: SandboxEU
  labtest.appointment.*:
    post:
      tags:
      - lab-testing
      summary: Appointment
      operationId: appointmentlabtest_appointment___post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ClientFacingAppointmentChanged'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    servers:
    - url: https://api.us.junction.com
      x-fern-server-name: Production
    - url: https://api.eu.junction.com
      x-fern-server-name: ProductionEU
    - url: https://api.sandbox.us.junction.com
      x-fern-server-name: Sandbox
    - url: https://api.sandbox.eu.junction.com
      x-fern-server-name: SandboxEU
  labtest.result.critical:
    post:
      tags:
      - lab-testing
      summary: Critical Result
      operationId: critical_resultlabtest_result_critical_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ClientFacingCriticalResultIdentified'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    servers:
    - url: https://api.us.junction.com
      x-fern-server-name: Production
    - url: https://api.eu.junction.com
      x-fern-server-name: ProductionEU
    - url: https://api.sandbox.us.junction.com
      x-fern-server-name: Sandbox
    - url: https://api.sandbox.eu.junction.com
      x-fern-server-name: SandboxEU
  lab_report.parsing_job.created:
    post:
      tags:
      - lab-testing
      summary: Lab Report Parsing Job Created
      operationId: lab_report_parsing_job_createdlab_report_parsing_job_created_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ClientFacingLabReportParsingJobCreatedEvent'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    servers:
    - url: https://api.us.junction.com
      x-fern-server-name: Production
    - url: https://api.eu.junction.com
      x-fern-server-name: ProductionEU
    - url: https://api.sandbox.us.junction.com
      x-fern-server-name: Sandbox
    - url: https://api.sandbox.eu.junction.com
      x-fern-server-name: SandboxEU
  lab_report.parsing_job.updated:
    post:
      tags:
      - lab-testing
      summary: Lab Report Parsing Job Updated
      operationId: lab_report_parsing_job_updatedlab_report_parsing_job_updated_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ClientFacingLabReportParsingJobUpdatedEvent'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    servers:
    - url: https://api.us.junction.com
      x-fern-server-name: Production
    - url: https://api.eu.junction.com
      x-fern-server-name: ProductionEU
    - url: https://api.sandbox.us.junction.com
      x-fern-server-name: Sandbox
    - url: https://api.sandbox.eu.junction.com
      x-fern-server-name: SandboxEU
components:
  schemas:
    Interpretation:
      type: string
      enum:
      - normal
      - abnormal
      - critical
      - unknown
      title: Interpretation
      description: ℹ️ This enum is non-exhaustive.
    SexualOrientation:
      type: string
      enum:
      - lesbian_gay_or_homosexual
      - heterosexual_or_straight
      - bisexual
      - dont_know
      - other
      title: SexualOrientation
      description: ℹ️ This enum is non-exhaustive.
    ParsingJob:
      properties:
        id:
          type: string
          format: uuid
          title: Id
        status:
          $ref: '#/components/schemas/ParsingJobStatus'
          description: ℹ️ This enum is non-exhaustive.
        failure_reason:
          anyOf:
          - $ref: '#/components/schemas/ParsingJobFailureReason'
          - type: 'null'
          description: ℹ️ This enum is non-exhaustive.
        data:
          anyOf:
          - $ref: '#/components/schemas/ParsedLabReportData'
          - type: 'null'
        needs_human_review:
          type: boolean
          title: Needs Human Review
        is_reviewed:
          type: boolean
          title: Is Reviewed
      type: object
      required:
      - id
      - status
      - needs_human_review
      - is_reviewed
      title: ParsingJob
      example:
        data:
          metadata:
            date_collected: '2024-12-30'
            date_reported: '2025-01-01'
            dob: '1990-01-01'
            lab_name: Acme Labs
            patient_first_name: Jane
            patient_last_name: Doe
            specimen_number: ABC123
          results:
          - interpretation: normal
            is_above_max_range: false
            is_below_min_range: false
            loinc_matches:
            - aliases: []
              confidence_score: 0.99
              display_name: Glucose
              loinc_code: 2345-7
              loinc_name: Glucose [Mass/volume] in Serum or Plasma
            max_reference_range: 99
            measurement_kind: direct
            min_reference_range: 70
            sample_type: serum_plasma_blood
            source_panel_name: CMP
            test_name: Glucose
            type: numeric
            units: mg/dL
            value: '90'
        id: 8eb0217f-4683-4a3c-adca-faf95ac65739
        is_reviewed: false
        needs_human_review: false
        status: completed
    AppointmentEventStatus:
      type: string
      enum:
      - pending
      - reserved
      - scheduled
      - completed
      - cancelled
      - in_progress
      title: AppointmentEventStatus
      description: ℹ️ This enum is non-exhaustive.
    OrderTransactionStatus:
      type: string
      enum:
      - active
      - completed
      - cancelled
      title: OrderTransactionStatus
      description: ℹ️ This enum is non-exhaustive.
    ClientFacingAppointmentChanged:
      properties:
        event_type:
          type: string
          enum:
          - labtest.appointment.created
          - labtest.appointment.updated
          title: Event Type
          x-junction-exhaustive: true
        user_id:
          type: string
          format: uuid
          title: User Id
        client_user_id:
          type: string
          format: uuid
          title: Client User Id
        team_id:
          type: string
          format: uuid
          title: Team Id
        data:
          $ref: '#/components/schemas/ClientFacingAppointment'
      type: object
      required:
      - event_type
      - user_id
      - client_user_id
      - team_id
      - data
      title: ClientFacingAppointmentChanged
    ClientFacingPhysician:
      properties:
        first_name:
          type: string
          title: First Name
        last_name:
          type: string
          title: Last Name
        npi:
          type: string
          title: Npi
      type: object
      required:
      - first_name
      - last_name
      - npi
      title: ClientFacingPhysician
    OrderTopLevelStatus:
      type: string
      enum:
      - received
      - collecting_sample
      - sample_with_lab
      - completed
      - cancelled
      - failed
      title: OrderTopLevelStatus
      description: ℹ️ This enum is non-exhaustive.
    ClientFacingOrderChanged:
      properties:
        event_type:
          type: string
          enum:
          - labtest.order.created
          - labtest.order.updated
          title: Event Type
          x-junction-exhaustive: true
        user_id:
          type: string
          format: uuid
          title: User Id
        client_user_id:
          type: string
          format: uuid
          title: Client User Id
        team_id:
          type: string
          format: uuid
          title: Team Id
        data:
          $ref: '#/components/schemas/ClientFacingOrder'
      type: object
      required:
      - event_type
      - user_id
      - client_user_id
      - team_id
      - data
      title: ClientFacingOrderChanged
    ClientFacingOrderInTransaction:
      properties:
        id:
          type: string
          format: uuid
          title: Id
        low_level_status:
          anyOf:
          - $ref: '#/components/schemas/OrderLowLevelStatus'
          - type: 'null'
          description: ℹ️ This enum is non-exhaustive.
        low_level_status_created_at:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Low Level Status Created At
        origin:
          anyOf:
          - $ref: '#/components/schemas/OrderOrigin'
          - type: 'null'
          description: ℹ️ This enum is non-exhaustive.
        parent_id:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          title: Parent Id
        created_at:
          type: string
          format: date-time
          title: Created At
        updated_at:
          type: string
          format: date-time
          title: Updated At
      type: object
      required:
      - id
      - created_at
      - updated_at
      title: ClientFacingOrderInTransaction
      description: Minimal order info for embedding in order_transaction payload.
    Billing:
      type: string
      enum:
      - client_bill
      - commercial_insurance
      - patient_bill_passthrough
      - patient_bill
      title: Billing
      description: ℹ️ This enum is non-exhaustive.
    ClientFacingLabReportParsingJobUpdatedEvent:
      properties:
        event_type:
          type: string
          const: lab_report.parsing_job.updated
          title: Event Type
          x-junction-exhaustive: true
        user_id:
          type: string
          format: uuid
          title: User Id
        client_user_id:
          type: string
          format: uuid
          title: Client User Id
        team_id:
          type: string
          format: uuid
          title: Team Id
        data:
          $ref: '#/components/schemas/ParsingJob'
      type: object
      required:
      - event_type
      - user_id
      - client_user_id
      - team_id
      - data
      title: ClientFacingLabReportParsingJobUpdatedEvent
    Ethnicity:
      type: string
      enum:
      - hispanic
      - non_hispanic
      - ashkenazi_jewish
      - other
      title: Ethnicity
      description: ℹ️ This enum is non-exhaustive.
    ClientFacingOrderEvent:
      properties:
        id:
          type: integer
          title: Id
        created_at:
          type: string
          format: date-time
          title: Created At
        status:
          $ref: '#/components/schemas/OrderStatus'
          description: ℹ️ This enum is non-exhaustive.
        status_detail:
          anyOf:
          - $ref: '#/components/schemas/OrderStatusDetail'
          - type: 'null'
          description: ℹ️ This enum is non-exhaustive.
      type: object
      required:
      - id
      - created_at
      - status
      title: ClientFacingOrderEvent
    ClientFacingOrder:
      properties:
        user_id:
          type: string
          format: uuid
          title: User Id
          description: User id returned by vital create user request. This id should be stored in your database against the user and used for all interactions with the vital api.
        id:
          type: string
          format: uuid
          title: Id
          description: The Vital Order ID
        team_id:
          type: string
          format: uuid
          title: Team Id
          description: Your team id.
        patient_details:
          anyOf:
          - $ref: '#/components/schemas/ClientFacingPatientDetailsCompatible'
          - type: 'null'
          description: Patient Details
        patient_address:
          anyOf:
          - $ref: '#/components/schemas/PatientAddressCompatible'
          - type: 'null'
          description: Patient Address
        lab_test:
          $ref: '#/components/schemas/ClientFacingLabTest'
          description: The Vital Test associated with the order
        details:
          anyOf:
          - $ref: '#/components/schemas/ClientFacingWalkInOrderDetails'
          - $ref: '#/components/schemas/ClientFacingTestKitOrderDetails'
          - $ref: '#/components/schemas/ClientFacingAtHomePhlebotomyOrderDetails'
          - $ref: '#/components/schemas/ClientFacingOnSiteCollectionOrderDetails'
          title: Details
        sample_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Sample Id
          description: Sample ID
        notes:
          anyOf:
          - type: string
          - type: 'null'
          title: Notes
          description: Notes associated with the order
        clinical_notes:
          anyOf:
          - type: string
          - type: 'null'
          title: Clinical Notes
        created_at:
          type: string
          format: date-time
          title: Created At
          description: When your order was created
        updated_at:
          type: string
          format: date-time
          title: Updated At
          description: When your order was last updated.
        events:
          items:
            $ref: '#/components/schemas/ClientFacingOrderEvent'
          type: array
          title: Events
        status:
          anyOf:
          - $ref: '#/components/schemas/OrderTopLevelStatus'
          - type: 'null'
          description: The top-level status of the latest event for this order. This field is deprecated. Please use `last_event` instead. ℹ️ This enum is non-exhaustive.
          deprecated: true
        last_event:
          $ref: '#/components/schemas/ClientFacingOrderEvent'
          description: The latest event in the order's lifecycle.
        physician:
          anyOf:
          - $ref: '#/components/schemas/ClientFacingPhysician'
          - type: 'null'
        health_insurance_id:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          title: Health Insurance Id
          description: Vital ID of the health insurance.
        requisition_form_url:
          anyOf:
          - type: string
          - type: 'null'
          title: Requisition Form Url
          description: DEPRECATED. Requistion form url.
        priority:
          type: boolean
          title: Priority
          description: Defines whether order is priority or not. For some labs, this refers to a STAT order.
          default: false
        shipping_details:
          anyOf:
          - $ref: '#/components/schemas/ShippingAddress'
          - type: 'null'
          description: Shipping Details. For unregistered testkit orders.
        activate_by:
          anyOf:
          - type: string
            format: date
          - type: 'null'
          title: Activate By
          description: Schedule an Order to be processed in a future date.
        passthrough:
          anyOf:
          - type: string
          - type: 'null'
          title: Passthrough
        billing_type:
          $ref: '#/components/schemas/Billing'
          default: client_bill
          description: ℹ️ This enum is non-exhaustive.
        icd_codes:
          anyOf:
          - items:
              type: string
            type: array
          - type: 'null'
          title: Icd Codes
        has_abn:
          type: boolean
          title: Has Abn
          description: Defines whether the order has an Advanced Beneficiary Notice (ABN) form or not.
        interpretation:
          anyOf:
          - $ref: '#/components/schemas/Interpretation'
          - type: 'null'
          description: Interpretation of the order result. Can be one of (normal, abnormal, critical). ℹ️ This enum is non-exhaustive.
        has_missing_results:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Has Missing Results
          description: Defines whether the order result has missing biomarkers.
        expected_result_by_date:
          anyOf:
          - type: string
            format: date
          - type: 'null'
          title: Expected Result By Date
          description: The common-case date by which the order result is expected to be available.
        worst_case_result_by_date:
          anyOf:
          - type: string
            format: date
          - type: 'null'
          title: Worst Case Result By Date
          description: The latest date by which the order result is expected to be available.
        origin:
          anyOf:
          - $ref: '#/components/schemas/OrderOrigin'
          - type: 'null'
          description: ℹ️ This enum is non-exhaustive.
        order_transaction:
          anyOf:
          - $ref: '#/components/schemas/ClientFacingOrderTransaction'
          - type: 'null'
      type: object
      required:
      - user_id
      - id
      - team_id
      - patient_details
      - patient_address
      - lab_test
      - details
      - sample_id
      - notes
      - created_at
      - updated_at
      - events
      - last_event
      - health_insurance_id
      - requisition_form_url
      - shipping_details
      - has_abn
      title: ClientFacingOrder
      example:
        activate_by: '2020-01-01'
        created_at: '2020-01-01T00:00:00Z'
        details:
          data:
            created_at: '2020-01-01T00:00:00Z'
            id: a655f0e4-6405-4a1d-80b7-66f06c2108a7
            shipment:
              created_at: '2020-01-01T00:00:00.000Z'
              id: d55210cc-3d9f-4115-8262-5013f700c7be
              inbound_courier: usps
              inbound_tracking_number: <inbound_tracking_number>
              inbound_tracking_url: <inbound_tracking_url>
              notes: <notes>
              outbound_courier: usps
              outbound_tracking_number: <outbound_tracking_number>
              outbound_tracking_url: <outbound_tracking_url>
              updated_at: '2020-01-01T00:00:00.000Z'
            updated_at: '2020-01-01T00:00:00Z'
          type: testkit
        events:
        - created_at: '2022-01-01T00:00:00Z'
          id: 1
          status: received.testkit.ordered
        - created_at: '2022-01-02T00:00:00Z'
          id: 2
          status: received.testkit.requisition_created
        - created_at: '2022-01-03T00:00:00Z'
          id: 3
          status: collecting_sample.testkit.transit_customer
        has_abn: false
        health_insurace_id: 1b0518f4-02cd-4b5f-a009-8015da6e9654
        id: 304bdcdb-3ab5-41f3-ba97-de1a6702bd39
        lab_test:
          description: Cholesterol test
          method: testkit
          name: Lipids Panel
        last_event:
          created_at: '2022-01-03T00:00:00Z'
          id: 3
          status: collecting_sample.testkit.transit_customer
        notes: This is a note
        order_transaction:
          id: a655f0e4-6405-4a1d-80b7-66f06c2108a7
          orders:
          - created_at: '2020-01-01T00:00:00Z'
            id: d55210cc-3d9f-4115-8262-5013f700c7be
            low_level_status: transit_customer
            low_level_status_created_at: '2020-01-05T00:00:00Z'
            origin: initial
            updated_at: '2020-01-05T00:00:00Z'
          - created_at: '2020-01-05T01:00:00Z'
            id: e66321dd-4e0g-5226-9373-6124g811d8cf
            low_level_status: requisition_created
            low_level_status_created_at: '2020-01-05T01:00:00Z'
            origin: redraw
            updated_at: '2020-01-05T01:00:00Z'
          status: active
        origin: initial
        patient_address:
          city: San Francisco
          country: United States
          first_line: 123 Main St.
          phone_number: '+11234567890'
          receiver_name: John Doe
          second_line: Apt. 208
          state: CA
          zip: '91189'
        patient_details:
          dob: '2020-01-01'
          gender: male
        requisition_form_url: https://www.example.com
        sample_id: '123456789'
        status: collecting_sample
        team_id: 8b394366-3502-48e9-a07a-f9503091fd9c
        updated_at: '2020-01-01T00:00:00Z'
        user_id: 1fb6c1b6-9572-4596-8cfd-930e45ea9d01
    AppointmentType:
      type: string
      enum:
      - phlebotomy
      - patient_service_center
      title: AppointmentType
      description: ℹ️ This enum is non-exhaustive.
    ResultMetadata:
      properties:
        patient_first_name:
          anyOf:
          - type: string
          - type: 'null'
          title: Patient First Name
        patient_last_name:
          anyOf:
          - type: string
          - type: 'null'
          title: Patient Last Name
        dob:
          anyOf:
          - type: string
          - type: 'null'
          title: Dob
        gender:
          type: string
          enum:
          - male
          - female
          - other
          title: Gender
          default: other
          description: ℹ️ This enum is non-exhaustive.
        lab_name:
          anyOf:
          - type: string
          - type: 'null'
          title: Lab Name
        date_reported:
          anyOf:
          - type: string
          - type: 'null'
          title: Date Reported
        date_collected:
          anyOf:
          - type: string
          - type: 'null'
          title: Date Collected
        specimen_number:
          anyOf:
          - type: string
          - type: 'null'
          title: Specimen Number
      type: object
      title: ResultMetadata
    ClientFacingCriticalResultIdentified:
      properties:
        event_type:
          type: string
          const: labtest.result.critical
          title: Event Type
          x-junction-exhaustive: true
        user_id:
          type: string
          format: uuid
          title: User Id
        client_user_id:
          type: string
          format: uuid
          title: Client User Id
        team_id:
          type: string
          format: uuid
          title: Team Id
        data:
          $ref: '#/components/schemas/ClientFacingCriticalResult'
      type: object
      required:
      - event_type
      - user_id
      - client_user_id
      - team_id
      - data
      title: ClientFacingCriticalResultIdentified
    ClientFacingLab:
      properties:
        id:
          type: integer
          title: Id
        slug:
          type: string
          title: Slug
        name:
          type: string
          title: Name
        first_line_address:
          type: string
          title: First Line Address
        city:
          type: string
          title: City
        zipcode:
          type: string
          title: Zipcode
        collection_methods:
          items:
            $ref: '#/components/schemas/LabTestCollectionMethod'
          type: array
          title: Collection Methods
        sample_types:
          items:
            $ref: '#/components/schemas/LabTestSampleType'
          type: array
          title: Sample Types
      type: object
      required:
      - id
      - slug
      - name
      - first_line_address
      - city
      - zipcode
      - collection_methods
      - sample_types
      title: ClientFacingLab
      example:
        city: San Francisco
        collection_methods:
        - testkit
        first_line_address: 123 Main St
        id: 1
        name: LabCorp
        sample_types:
        - saliva
        slug: labcorp
        zipcode: '91789'
    ClientFacingOnSiteCollectionOrderDetails:
      properties:
        type:
          type: string
          const: on_site_collection
          title: Type
        data:
          anyOf:
          - $ref: '#/components/schemas/ClientFacingOnSiteCollectionOrder'
          - type: 'null'
      type: object
      required:
      - type
      title: ClientFacingOnSiteCollectionOrderDetails
    LabReportResult:
      properties:
        test_name:
          type: string
          title: Test Name
        value:
          type: string
          title: Value
        sample_type:
          type: string
          enum:
          - urine
          - serum_plasma_blood
          - capillary_blood
          - stool
          - saliva
          - other
          - unknown
          title: Sample Type
          default: unknown
          description: ℹ️ This enum is non-exhaustive.
        measurement_kind:
          type: string
          enum:
          - direct
          - calculated
          - ratio
          - unknown
          title: Measurement Kind
          default: unknown
          description: ℹ️ This enum is non-exhaustive.
        type:
          anyOf:
          - $ref: '#/components/schemas/LabReportResultType'
          - type: 'null'
          description: ℹ️ This enum is non-exhaustive.
        units:
          anyOf:
          - type: string
          - type: 'null'
          title: Units
        max_reference_range:
          anyOf:
          - type: number
          - type: 'null'
          title: Max Reference Range
        min_reference_range:
          anyOf:
          - type: number
          - type: 'null'
          title: Min Reference Range
        source_panel_name:
          anyOf:
          - type: string
          - type: 'null'
          title: Source Panel Name
        loinc_matches:
          anyOf:
          - items:
              $ref: '#/components/schemas/LoincMatch'
            type: array
          - type: 'null'
          title: Loinc Matches
        loinc_match_status:
          anyOf:
          - type: string
            enum:
            - auto_match
            - needs_review
            - no_match
          - type: 'null'
          title: Loinc Match Status
          description: ℹ️ This enum is non-exhaustive.
        interpretation:
          anyOf:
          - $ref: '#/components/schemas/Interpretation'
          - type: 'null'
          description: ℹ️ This enum is non-exhaustive.
        is_above_max_range:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Is Above Max Range
        is_below_min_range:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Is Below Min Range
      type: object
      required:
      - test_name
      - value
      title: LabReportResult
    ParsingJobStatus:
      type: string
      enum:
      - upload_pending
      - started
      - completed
      - failed
      title: ParsingJobStatus
      description: ℹ️ This enum is non-exhaustive.
    ClientFacingOnSiteCollectionOrder:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: The Junction on-site collection Order ID
        created_at:
          type: string
          format: date-time
          title: Created At
        updated_at:
          type: string
          format: date-time
          title: Updated At
      type: object
      required:
      - id
      - created_at
      - updated_at
      title: ClientFacingOnSiteCollectionOrder
      description: 'Schema for an on-site collection order in the client facing API.

        To be used as part of a ClientFacingOrder.'
      example:
        created_at: '2020-01-01T00:00:00Z'
        id: 64d787c3-825d-462b-bf0c-5b895f7a9bf5
        updated_at: '2020-01-01T00:00:00Z'
    GuarantorDetails:
      properties:
        first_name:
          type: string
          title: First Name
        last_name:
          type: string
          title: Last Name
        address:
          $ref: '#/components/schemas/Address'
        phone_number:
          type: string
          title: Phone Number
        household_income:
          anyOf:
          - type: integer
          - type: 'null'
          title: Household Income
        household_size:
          anyOf:
          - type: integer
          - type: 'null'
          title: Household Size
        email:
          anyOf:
          - type: string
          - type: 'null'
          title: Email
      type: object
      required:
      - first_name
      - last_name
      - address
      - phone_number
      title: GuarantorDetails
    Race:
      type: string
      enum:
      - african_american_or_black
      - asian
      - indigenous_native_american_alaska_native
      - other
      - pacific_islander_or_hawaiian
      - white_caucasian
      title: Race
      description: ℹ️ This enum is non-exhaustive.
    ClientFacingTestkitOrder:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: The Vital TestKit Order ID
        shipment:
          anyOf:
          - $ref: '#/components/schemas/ClientFacingShipment'
          - type: 'null'
          description: Shipment object
        created_at:
          type: string
          format: date-time
          title: Created At
        updated_at:
          type: string
          format: date-time
          title: Updated At
      type: object
      required:
      - id
      - shipment
      - created_at
      - updated_at
      title: ClientFacingTestkitOrder
      description: 'Schema for a testkit order in the client facing API.


        To be used as part of a ClientFacingOrder.'
      example:
        created_at: '2020-01-01T00:00:00Z'
        id: b31c2663-88de-44b7-977d-c37ef107254f
        shipment:
          created_at: '2020-01-01T00:00:00.000Z'
          id: e56c84fb-f8fa-4d74-bed0-a129b04cb3bc
          inbound_courier: usps
          inbound_tracking_number: <inbound_tracking_number>
          inbound_tracking_url: <inbound_tracking_url>
          notes: <notes>
          outbound_courier: usps
          outbound_tracking_number: <outbound_tracking_number>

# --- truncated at 32 KB (66 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/vital-io/refs/heads/main/openapi/vital-io-lab-testing-api-openapi.yml