Partner API sandbox

Lab testing for people and pets, as an API

Order tests, follow every kit and sample like a parcel, and get results judged on MD4 Labs reference ranges. The sandbox gives you the whole /v1 API over synthetic data, with a lab you drive yourself.

  • Synthetic data only
  • Signed webhooks with retries
  • The same contract as live
curl "$MD4_API/v1/orders/$ORDER_ID" \
  -H "Authorization: Bearer $MD4_KEY"
{
  "id": "cmhx1n8yb0004s6d8h2m1p0qe",
  "status": "kit_shipped",
  "tests": ["PET-WELLNESS"],
  "tracking": {
    "carrier": "UPS",
    "trackingNumber": "1Z8F3A9C27D41B6E05",
    "next": "The kit is on its way."
  },
  "resultsAvailable": false
}

Order order-1001, your own idFrom tracking.steps

  1. Received
  2. At the lab
  3. Kit shipped
  4. Delivered
  5. Testing
  6. Results

Your access

Checking your sign-in...

From invitation to results in an afternoon

Access is by invitation. Once you're in, everything happens on this site and against the sandbox.

  1. Get invited

    MD4 Labs sets up your organization and invites each developer by email, with a temporary password. To ask for access, write to developers@md4labs.com.

  2. Create a key

    Sign in, choose your own password, and create an API key in the console with the scopes your program needs. It's shown once.

  3. Run the quickstart

    Add a pet, order a test, play the lab step by step and read the results, for real, from this site. Every request is shown in curl, JavaScript and Python.

  4. Wire up webhooks

    Register an https endpoint and we post signed events as orders move. Check every delivery in the console and send any one again.

Docs that do things

Every page here works against the sandbox or in your browser. Nothing to install.

What the sandbox is

Synthetic data only

Everything here is made up and lives in its own database, apart from the MD4 Labs portal. Never send real patient or animal information.

A lab you drive

Orders move only when you say so: the sandbox's simulate endpoint plays the lab, from kit shipped to results and corrections, and fires the same webhooks.

The same contract as live

Paths, fields, errors and webhooks are the ones the live API will use. Moving to live means a live key and a different base URL.

See what happened

The console shows usage at a glance, every request your keys made with its status and request ID, and every webhook delivery.