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_url: notes: outbound_courier: usps outbound_tracking_number: 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_url: notes: outbound_courier: usps outbound_tracking_number: outbound_tracking_url: updated_at: '2020-01-01T00:00:00.000Z' updated_at: '2020-01-01T00:00:00Z' ClientFacingAppointment: properties: id: type: string format: uuid4 title: Id user_id: type: string format: uuid4 title: User Id order_id: type: string format: uuid4 title: Order Id order_transaction_id: anyOf: - type: string format: uuid4 - type: 'null' title: Order Transaction Id address: $ref: '#/components/schemas/USAddress' location: $ref: '#/components/schemas/LngLat' start_at: anyOf: - type: string format: date-time - type: 'null' title: Start At description: Time is in UTC end_at: anyOf: - type: string format: date-time - type: 'null' title: End At description: Time is in UTC iana_timezone: anyOf: - type: string pattern: ^(?:(?:[A-Za-z_\-]+\/[A-Za-z_\-]+(?:\/[A-Za-z_\-]+)?)|(?:Etc\/[A-Za-z0-9+\-]+(?:\/[A-Za-z0-9]+)?|(?:CET|CST6CDT|EET|EST|EST5EDT|MET|MST|MST7MDT|PST8PDT|HST)))$ - type: 'null' title: Iana Timezone type: $ref: '#/components/schemas/AppointmentType' description: ℹ️ This enum is non-exhaustive. provider: $ref: '#/components/schemas/AppointmentProvider' description: ℹ️ This enum is non-exhaustive. status: $ref: '#/components/schemas/AppointmentStatus' description: ℹ️ This enum is non-exhaustive. provider_id: type: string title: Provider Id external_id: anyOf: - type: string - type: 'null' title: External Id can_reschedule: type: boolean title: Can Reschedule appointment_notes: anyOf: - type: string maxLength: 1000 - type: 'null' title: Appointment Notes event_status: $ref: '#/components/schemas/AppointmentEventStatus' description: ℹ️ This enum is non-exhaustive. event_data: anyOf: - additionalProperties: true type: object - type: 'null' title: Event Data events: items: $ref: '#/components/schemas/ClientFacingAppointmentEvent' type: array title: Events type: object required: - id - user_id - order_id - address - location - start_at - end_at - type - provider - status - provider_id - can_reschedule - event_status - events title: ClientFacingAppointment example: address: access_notes: 'Gate code #1234, use side entrance' city: San Francisco country: United States first_line: 123 Main St. second_line: Apt. 208 state: CA zip_code: '91189' appointment_notes: Please bring photo ID can_reschedule: true end_at: '2022-01-01T00:00:00' event_data: description: Metadata field containing provider specific data, like cancellation reason or origin event_status: scheduled events: - created_at: '2022-01-01T00:00:00Z' status: scheduled - created_at: '2022-01-02T00:00:00Z' status: completed external_id: ext-123 iana_timezone: America/New_York id: 1614a22c-4322-43a0-96bc-8ff01e5401c8 location: lat: 37.7749295 lng: -122.4194155 order_id: 6b6b38ef-d312-48b4-95d4-731fc2ce7a6f order_transaction_id: cc089173-7db8-428e-a233-c58472226917 provider: getlabs provider_id: '123' start_at: '2022-01-01T00:00:00' status: confirmed type: phlebotomy user_id: 61fac3ce-a2c9-4218-b404-941ca948776f AoE: properties: questions: items: $ref: '#/components/schemas/Question' type: array title: Questions type: object required: - questions title: AoE LabTestStatus: type: string enum: - active - pending_approval - inactive title: LabTestStatus description: ℹ️ This enum is non-exhaustive. QuestionType: type: string enum: - choice - text - numeric - multi_choice title: QuestionType description: ℹ️ This enum is non-exhaustive. LoincMatch: properties: loinc_code: type: string title: Loinc Code loinc_name: type: string title: Loinc Name display_name: type: string title: Display Name default: '' aliases: items: type: string type: array title: Aliases default: [] confidence_score: type: number title: Confidence Score type: object required: - loinc_code - loinc_name - confidence_score title: LoincMatch ClientFacingAtHomePhlebotomyOrderDetails: properties: type: type: string const: at_home_phlebotomy title: Type data: anyOf: - $ref: '#/components/schemas/ClientFacingAtHomePhlebotomyOrder' - type: 'null' type: object required: - type title: ClientFacingAtHomePhlebotomyOrderDetails USAddress: properties: first_line: type: string title: First Line second_line: anyOf: - type: string - type: 'null' title: Second Line city: type: string title: City state: type: string title: State zip_code: type: string pattern: ^\d{5}(-\d{4})?$ title: Zip Code unit: anyOf: - type: string - type: 'null' title: Unit description: Deprecated. Use `second_line` instead to provide the unit number. Subject to removal after 20 Nov 2023. deprecated: true access_notes: anyOf: - type: string maxLength: 1000 - type: 'null' title: Access Notes type: object required: - first_line - city - state - zip_code title: USAddress Question: properties: id: type: integer format: int64 title: Id required: type: boolean title: Required code: type: string title: Code value: type: string title: Value type: $ref: '#/components/schemas/QuestionType' description: ℹ️ This enum is non-exhaustive. sequence: type: integer title: Sequence answers: items: $ref: '#/components/schemas/Answer' type: array title: Answers constraint: anyOf: - type: string - type: 'null' title: Constraint default: anyOf: - type: string - type: 'null' title: Default type: object required: - id - required - code - value - type - sequence - answers title: Question ParsedLabReportData: properties: metadata: $ref: '#/components/schemas/ResultMetadata' results: items: $ref: '#/components/schemas/LabReportResult' type: array title: Results type: object required: - metadata - results title: ParsedLabReportData LabTestSampleType: type: string enum: - dried_blood_spot - arm_collector - serum - saliva - urine - stool title: LabTestSampleType description: The type of sample used to perform a lab test. ℹ️ This enum is non-exhaustive. GenderIdentity: type: string enum: - male - female - female_to_male_ftm_transgender_male_trans_man - male_to_female_mtf_transgender_female_trans_woman - genderqueer - other title: GenderIdentity description: ℹ️ This enum is non-exhaustive. Address: properties: first_line: type: string title: First Line second_line: anyOf: - type: string - type: 'null' title: Second Line default: '' country: type: string title: Country zip: type: string title: Zip city: type: string title: City state: type: string title: State access_notes: anyOf: - type: string maxLength: 1000 - type: 'null' title: Access Notes type: object required: - first_line - country - zip - city - state title: Address ClientFacingAtHomePhlebotomyOrder: properties: id: type: string format: uuid title: Id description: The Vital at-home phlebotomy Order ID appointment_id: anyOf: - type: string format: uuid - type: 'null' title: Appointment 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: ClientFacingAtHomePhlebotomyOrder description: 'Schema for a at-home-phlebotomy test order in the client facing API. To be used as part of a ClientFacingOrder.' example: appointment_id: 10d7a598-5a7d-4743-9045-6038c73eeace created_at: '2020-01-01T00:00:00Z' id: 81d0f268-303b-486a-b8c9-1d2e4466e50b updated_at: '2020-01-01T00:00:00Z' PatientAddressCompatible: properties: receiver_name: type: string title: Receiver Name default: '' first_line: type: string title: First Line second_line: anyOf: - type: string - type: 'null' title: Second Line city: type: string title: City state: type: string title: State zip: type: string title: Zip country: type: string title: Country access_notes: anyOf: - type: string maxLength: 1000 - type: 'null' title: Access Notes phone_number: anyOf: - type: string - type: 'null' title: Phone Number type: object required: - first_line - city - state - zip - country title: PatientAddressCompatible ParsingJobFailureReason: type: string enum: - invalid_input - low_quality - not_english title: ParsingJobFailureReason description: Machine-readable failure reasons for parsing jobs. ℹ️ This enum is non-exhaustive. ClientFacingLabTest: properties: id: type: string format: uuid title: Id description: '' slug: type: string title: Slug description: '' name: type: string title: Name description: '' sample_type: $ref: '#/components/schemas/LabTestSampleType' description: ℹ️ This enum is non-exhaustive. method: $ref: '#/components/schemas/LabTestCollectionMethod' description: ℹ️ This enum is non-exhaustive. price: type: number title: Price description: '' is_active: type: boolean title: Is Active description: Deprecated. Use status instead. status: $ref: '#/components/schemas/LabTestStatus' description: ℹ️ This enum is non-exhaustive. fasting: type: boolean title: Fasting description: Defines whether a lab test requires fasting. default: false lab: anyOf: - $ref: '#/components/schemas/ClientFacingLab' - type: 'null' description: '' markers: anyOf: - items: $ref: '#/components/schemas/ClientFacingMarker' type: array - type: 'null' title: Markers description: '' is_delegated: type: boolean title: Is Delegated description: Deprecated and always false. Delegation is now at the lab account level. Used to denote whether a lab test requires using non-Vital physician networks. default: false deprecated: true auto_generated: type: boolean title: Auto Generated description: Whether the lab test was auto-generated by Vital default: false has_collection_instructions: anyOf: - type: boolean - type: 'null' title: Has Collection Instructions description: Whether or not the lab test has collection instructions. common_tat_days: anyOf: - type: integer - type: 'null' title: Common Tat Days description: The common turnaround time in days for the lab test. This is the expected time for the lab to process the test and return results. worst_case_tat_days: anyOf: - type: integer - type: 'null' title: Worst Case Tat Days description: The worst-case turnaround time in days for the lab test. This is the maximum time the lab may take to process the test and return results. type: object required: - id - slug - name - sample_type - method - price - is_active - status - lab - markers title: ClientFacingLabTest example: lab_test: description: Cholesterol test fasting: false has_collection_instructions: false is_delegated: false lab: city: New York first_line_address: 123 Main St name: US Specialty Lab slug: USSL zipcode: '10001' markers: - description: Hemoglobin A1c is a form of hemoglobin that is measured identify your average blood sugar levels over the past 3 months. id: 1 lab_id: 1 name: Hemoglobin A1c price: '10.00' provider_id: '1234' slug: hemoglobin-a1c type: biomarker unit: '%' method: testkit name: Lipids Panel price: 10 sample_type: dried blood spot status: active OrderStatus: type: string enum: - received.walk_in_test.ordered - received.walk_in_test.requisition_created - received.walk_in_test.requisition_bypassed - completed.walk_in_test.completed - sample_with_lab.walk_in_test.partial_results - failed.walk_in_test.sample_error - cancelled.walk_in_test.cancelled - collecting_sample.walk_in_test.appointment_pending - collecting_sample.walk_in_test.appointment_scheduled - collecting_sample.walk_in_test.appointment_cancelled - collecting_sample.walk_in_test.redraw_available - received.at_home_phlebotomy.ordered - received.at_home_phlebotomy.requisition_created - received.at_home_phlebotomy.requisition_bypassed - collecting_sample.at_home_phlebotomy.appointment_pending - collecting_sample.at_home_phlebotomy.appointment_scheduled - collecting_sample.at_home_phlebotomy.draw_completed - collecting_sample.at_home_phlebotomy.appointment_cancelled - completed.at_home_phlebotomy.completed - sample_with_lab.at_home_phlebotomy.partial_results - cancelled.at_home_phlebotomy.cancelled - failed.at_home_phlebotomy.sample_error - received.testkit.ordered - received.testkit.awaiting_registration - received.testkit.requisition_created - received.testkit.requisition_bypassed - received.testkit.registered - collecting_sample.testkit.transit_customer - collecting_sample.testkit.out_for_delivery - collecting_sample.testkit.with_customer - collecting_sample.testkit.transit_lab - sample_with_lab.testkit.delivered_to_lab - sample_with_lab.testkit.lab_processing_blocked - completed.testkit.completed - failed.testkit.failure_to_deliver_to_customer - failed.testkit.failure_to_deliver_to_lab - failed.testkit.sample_error - failed.testkit.lost - cancelled.testkit.cancelled - cancelled.testkit.do_not_process - collecting_sample.testkit.problem_in_transit_customer - collecting_sample.testkit.problem_in_transit_lab - received.on_site_collection.ordered - received.on_site_collection.requisition_created - received.on_site_collection.requisition_bypassed - sample_with_lab.on_site_collection.draw_completed - completed.on_site_collection.completed - cancelled.on_site_collection.cancelled - sample_with_lab.on_site_collection.partial_results - failed.on_site_collection.sample_error - completed.walk_in_test.corrected - completed.at_home_phlebotomy.corrected - completed.on_site_collection.corrected - completed.testkit.corrected title: OrderStatus description: 'Used in combination with OrderStatusDetail to represent the current order state. OrderStatus is driven by a FSM whereas OrderStatusDetail is descriptive only. ℹ️ This enum is non-exhaustive.' ClientFacingWalkInOrderDetails: properties: type: type: string const: walk_in_test title: Type data: anyOf: - $ref: '#/components/schemas/ClientFacingWalkInTestOrder' - type: 'null' type: object required: - type title: ClientFacingWalkInOrderDetails AppointmentStatus: type: string enum: - confirmed - pending - reserved - in_progress - completed - cancelled title: AppointmentStatus description: ℹ️ This enum is non-exhaustive. LngLat: properties: lng: type: number maximum: 180 minimum: -180 title: Lng lat: type: number maximum: 90 minimum: -90 title: Lat type: object required: - lng - lat title: LngLat AppointmentProvider: type: string enum: - getlabs - phlebfinders - quest - sonora_quest title: AppointmentProvider description: ℹ️ This enum is non-exhaustive. LabReportResultType: type: string enum: - numeric - range - comment - boolean - duration - percentage - ratio title: LabReportResultType description: ℹ️ This enum is non-exhaustive. HTTPValidationError: properties: detail: title: Detail type: object title: HTTPValidationError ShippingAddress: properties: receiver_name: type: string title: Receiver Name first_line: type: string title: First Line second_line: anyOf: - type: string - type: 'null' title: Second Line city: type: string title: City state: type: string title: State zip: type: string title: Zip country: type: string title: Country phone_number: type: string title: Phone Number type: object required: - receiver_name - first_line - city - state - zip - country - phone_number title: ShippingAddress ClientFacingLabReportParsingJobCreatedEvent: properties: event_type: type: string const: lab_report.parsing_job.created 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: ClientFacingLabReportParsingJobCreatedEvent ClientFacingShipment: properties: id: type: string format: uuid title: Id description: The Vital Shipment ID outbound_tracking_number: anyOf: - type: string - type: 'null' title: Outbound Tracking Number description: Tracking number for delivery to customer outbound_tracking_url: anyOf: - type: string - type: 'null' title: Outbound Tracking Url description: Tracking url for delivery to customer inbound_tracking_number: anyOf: - type: string - type: 'null' title: Inbound Tracking Number description: Tracking number for delivery to lab inbound_tracking_url: anyOf: - type: string - type: 'null' title: Inbound Tracking Url description: Tracking url for delivery to lab outbound_courier: anyOf: - type: string - type: 'null' title: Outbound Courier description: Courier used for delivery to customer inbound_courier: anyOf: - type: string - type: 'null' title: Inbound Courier description: Courier used for delivery to lab notes: anyOf: - type: string - type: 'null' title: Notes description: Notes associated to the Vital shipment type: object required: - id - outbound_tracking_number - outbound_tracking_url - inbound_tracking_number - inbound_tracking_url - outbound_courier - inbound_courier - notes title: ClientFacingShipment description: 'Schema for a Shipment in the client facing API. To be used as part of a ClientFacingTestkitOrder.' example: id: 6d249293-7ee9-4c7f-8889-113ccbf5f89b inbound_courier: usps inbound_tracking_number: inbound_tracking_url: notes: outbound_courier: usps outbound_tracking_number: outbound_tracking_url: LabTestCollectionMethod: type: string enum: - testkit - walk_in_test - at_home_phlebotomy - on_site_collection title: LabTestCollectionMethod description: The method used to perform a lab test. ℹ️ This enum is non-exhaustive. OrderStatusDetail: type: string enum: - fulfillment_error - date_of_collection_unspecified - demographic_information_unspecified - demographic_information_mismatch - sample_quantity_not_sufficient - sample_contaminated - sample_stability_exceeded - sample_hemolyzed - sample_improper_collection title: OrderStatusDetail description: A descriptive-only additional field to be used in combination with OrderStatus. Exposed in the API. ℹ️ This enum is non-exhaustive. Answer: properties: id: type: integer title: Id code: type: string title: Code value: type: string title: Value type: object required: - id - code - value title: Answer ClientFacingMarker: properties: id: type: integer title: Id name: type: string title: Name slug: type: string title: Slug description: anyOf: - type: string - type: 'null' title: Description lab_id: anyOf: - type: integer - type: 'null' title: Lab Id provider_id: anyOf: - type: string - type: 'null' title: Provider Id type: anyOf: - $ref: '#/components/schemas/MarkerType' - type: 'null' description: ℹ️ This enum is non-exhaustive. unit: anyOf: - type: string - type: 'null' title: Unit price: anyOf: - type: string - type: 'null' title: Price aoe: anyOf: - $ref: '#/components/schemas/AoE' - type: 'null' a_la_carte_enabled: type: boolean title: A La Carte Enabled default: false common_tat_days: anyOf: - type: integer - type: 'null' title: Common Tat Days worst_case_tat_days: anyOf: - type: integer - type: 'null' title: Worst Case Tat Days is_orderable: anyOf: - type: boolean - type: 'null' title: Is Orderable default: true type: object required: - id - name - slug title: ClientFacingMarker example: aoe: questions: - answers: - code: answer_code id: 1 value: answer_value code: question_code id: 1 value: question_value common_tat_days: 3 description: Hemoglobin A1c is a form of hemoglobin that is measured identify your average blood sugar levels over the past 3 months. id: 1 is_orderable: true lab_id: 1 name: Hemoglobin A1c price: '10.00' provider_id: '1234' slug: hemoglobin-a1c type: biomarker unit: '%' worst_case_tat_days: 5 ClientFacingAppointmentEvent: properties: created_at: type: string format: date-time title: Created At status: $ref: '#/components/schemas/AppointmentEventStatus' description: ℹ️ This enum is non-exhaustive. data: anyOf: - additionalProperties: true type: object - type: 'null' title: Data type: object required: - created_at - status title: ClientFacingAppointmentEvent ClientFacingOrderTransaction: properties: id: type: string format: uuid title: Id status: $ref: '#/components/schemas/OrderTransactionStatus' description: ℹ️ This enum is non-exhaustive. orders: items: $ref: '#/components/schemas/ClientFacingOrderInTransaction' type: array title: Orders type: object required: - id - status - orders title: ClientFacingOrderTransaction description: Order transaction info. ClientFacingPatientDetailsCompatible: properties: first_name: anyOf: - type: string - type: 'null' title: First Name last_name: anyOf: - type: string - type: 'null' title: Last Name dob: type: string format: date-time title: Dob gender: type: string title: Gender phone_number: anyOf: - type: string - type: 'null' title: Phone Number email: anyOf: - type: string - type: 'null' title: Email medical_proxy: anyOf: - $ref: '#/components/schemas/GuarantorDetails' - type: 'null' description: Parent/medical_proxy details. Required if patient is a minor. race: anyOf: - $ref: '#/components/schemas/Race' - type: 'null' description: If not provided, will be set to 'Not Specified' ℹ️ This enum is non-exhaustive. ethnicity: anyOf: - $ref: '#/components/schemas/Ethnicity' - type: 'null' description: If not provided, will be set to 'Not Specified' ℹ️ This enum is non-exhaustive. sexual_orientation: anyOf: - $ref: '#/components/schemas/SexualOrientation' - type: 'null' description: If not provided, will be set to 'Not Specified' ℹ️ This enum is non-exhaustive. gender_identity: anyOf: - $ref: '#/components/schemas/GenderIdentity' - type: 'null' description: If not provided, will be set to 'Not Specified' ℹ️ This enum is non-exhaustive. type: object required: - dob - gender title: ClientFacingPatientDetailsCompatible ClientFacingTestKitOrderDetails: properties: type: type: string const: testkit title: Type data: anyOf: - $ref: '#/components/schemas/ClientFacingTestkitOrder' - type: 'null' type: object required: - type title: ClientFacingTestKitOrderDetails MarkerType: type: string enum: - biomarker - panel title: MarkerType description: ℹ️ This enum is non-exhaustive. OrderOrigin: type: string enum: - initial - redraw - recreation title: OrderOrigin description: ℹ️ This enum is non-exhaustive. ClientFacingWalkInTestOrder: properties: id: type: string format: uuid title: Id description: The Vital walk-in test Order ID created_at: type: string format: date-time title: Created At updated_at: type: string format: date-time title: Updated At appointment_id: anyOf: - type: string format: uuid - type: 'null' title: Appointment Id type: object required: - id - created_at - updated_at title: ClientFacingWalkInTestOrder description: 'Schema for a walk-in test order in the client facing API. To be used as part of a ClientFacingOrder.' example: appointment_id: 961495c2-aa74-43ac-bd7d-4284b46499bf created_at: '2020-01-01T00:00:00Z' id: 757df2fd-8ff1-4399-bc48-c37527d9d73a updated_at: '2020-01-01T00:00:00Z' OrderLowLevelStatus: type: string enum: - ordered - requisition_created - requisition_bypassed - transit_customer - out_for_delivery - with_customer - transit_lab - delivered_to_lab - completed - failure_to_deliver_to_lab - failure_to_deliver_to_customer - problem_in_transit_lab - problem_in_transit_customer - sample_error - appointment_scheduled - appointment_cancelled - appointment_pending - draw_completed - cancelled - lost - do_not_process - partial_results - awaiting_registration - registered - redraw_available - corrected - lab_processing_blocked title: OrderLowLevelStatus description: ℹ️ This enum is non-exhaustive. ClientFacingCriticalResult: properties: order_id: type: string format: uuid title: Order Id description: The Vital Order ID sample_id: type: string title: Sample Id description: Sample ID status: type: string title: Status description: The current results status, can be either (final, partial). interpretation: type: string title: Interpretation description: The results interpretation, can be one of (normal, abnormal, critical). team_id: type: string format: uuid title: Team Id description: Your team id. user_id: type: string format: uuid title: User Id created_at: type: string format: date-time title: Created At description: When the result was first fetched from a laboratory. updated_at: type: string format: date-time title: Updated At description: When the result was last fetched from a laboratory. type: object required: - order_id - sample_id - status - interpretation - team_id - user_id - created_at - updated_at title: ClientFacingCriticalResult example: created_at: '2020-01-01T00:00:00Z' interpretation: normal order_id: 20e2a5ba-0ea2-4c31-bef7-7a839cc6af5a sample_id: '123456789' status: final team_id: 45d73ffc-ce71-48f3-bf01-54ec2b346e93 updated_at: '2020-01-01T00:00:00Z' user_id: 0b8a38fa-bb73-4801-a401-ab0d1bb728b8 securitySchemes: apiKeyAuth: type: apiKey in: header name: x-vital-api-key description: Vital Team API Key x-refined-from: - 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