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.
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 aversion query parameter:
version, the endpoint always returns the latest version.
Read a historical version
Pass the version number to the same endpoint: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:next_cursor is present, pass it unchanged in the next request.
Create a new version
Send the panel’s complete desired marker membership inmarker_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:
Identify the version used by an order
Order responses include the pinned version inorder.lab_test.version:
Custom markers and lab accounts
Account-owned custom markers require the matchinglab_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.Recommended integration practices
- Store or log
order.lab_test.versionalongside the order ID when auditing orders. - Treat
marker_idsin an update as the full desired set. - Refresh the lab test after an update and use the returned
version. - Re-fetch pricing if checkout reports that a quote is stale.
- Use historical reads for audit and display purposes only; do not offer historical versions as order choices.