Skip to main content
Lab test versioning lets you update a panel’s biomarkers without changing orders that have already been created. Each lab test keeps the same id throughout its lifetime. When its marker membership changes, Junction creates a new immutable version of that marker set and increments the numeric version.

How versioning works

  • New lab tests begin at version 1.
  • Changing the complete marker set creates the next version.
  • Changing only the panel name, status, or other metadata does not create a version.
  • Submitting the same marker set is a no-op and returns the current version.
  • Historical versions are read-only.
Junction always selects the latest version when you create an order. You continue to provide a lab_test_id; you do not provide a version number in the order request. When the order is created, Junction pins the selected version to that order. Subsequent panel updates do not affect the order’s requisition, expected results, result processing, or billing.

Read the latest version

Use the existing Get Lab Test endpoint without a version query parameter:
The response includes the version represented by its marker list:
If you omit version, the endpoint always returns the latest version.

Read a historical version

Pass the version number to the same endpoint:
The response’s version and markers fields describe that immutable historical version. Junction returns 404 if the lab test or requested version does not exist or is unavailable to your team. Historical reads are useful when you need to display or audit the exact marker configuration used by an older order. Only marker membership is versioned; mutable metadata such as the panel name and status reflects the lab test’s current values.

List version history

Use the version-history endpoint to list versions from newest to oldest:
The endpoint returns up to 100 versions per request. When next_cursor is present, pass it unchanged in the next request.

Create a new version

Send the panel’s complete desired marker membership in marker_ids when updating the lab test:
marker_ids is a replacement set, not a list of additions or removals. Include every marker that should belong to the new version. If the set differs from the current version, Junction creates the next version and returns it:
This new version becomes the default for all subsequent orders. Existing orders remain pinned to their previous version. Test-kit panels cannot be edited through this endpoint.

Identify the version used by an order

Order responses include the pinned version in order.lab_test.version:
To retrieve that exact marker set later, read the lab test using the returned version:
Do not assume an existing order uses the lab test’s current latest version.

Custom markers and lab accounts

Account-owned custom markers require the matching lab_account_id when you create or update a panel version that contains them. Omit lab_account_id when the marker set contains only standard markers. A lab account selected for marker discovery does not make an ordinary-marker panel account-specific. Junction rejects custom markers when the supplied account is missing, unavailable to your team, or does not own the marker. It does not fall back to another marker with the same provider code.

Pricing and checkout

Pricing estimates and checkout quotes are calculated for a specific panel version. If a panel receives a newer version before checkout completes, Junction rejects the stale quote instead of silently changing the order’s markers or price. Request a new quote, review the updated price and marker set, and then retry checkout.
  1. Store or log order.lab_test.version alongside the order ID when auditing orders.
  2. Treat marker_ids in an update as the full desired set.
  3. Refresh the lab test after an update and use the returned version.
  4. Re-fetch pricing if checkout reports that a quote is stale.
  5. Use historical reads for audit and display purposes only; do not offer historical versions as order choices.