Skip to main content

What is the Practice API?

The Practice API is for provider practices that have their own licensed prescribers on file. Your doctor writes the prescription in your own EMR; VitaRelay records it as an external-source prescription and handles fulfillment, routing, and shipping. You pay VitaRelay; VitaRelay routes to the pharmacy. This is distinct from the VitaClinic API, where prescribing happens through VitaRelay’s Internal Doctor Network (IDN). The Practice API does not use the IDN — you use your own doctors, and your own licensed provider is the prescriber of record.
Your prescriber must already be on your practice roster in VitaRelay (with NPI, and DEA for controlled substances). The API resolves the prescriber by NPI against your roster — it never accepts prescriber identity from the request body.

How it works

1

Pull the catalog

List the unified catalog (GET /catalog) covering all product types — R&D, 503B, and 503A. No pricing is exposed through this API.
2

Include prescriber + prescription lines

For any order containing 503A or 503B products, include your prescriber’s NPI (prescriber_npi) and one prescriptions line per prescription product. The prescriber is resolved against your roster by NPI.
3

Submit the order

POST /orders records an external-source signed prescription for each Rx line and creates the order. VitaRelay fulfills it and charges your card on file. Pass external_order_id to make retries idempotent.
4

Track order status

Poll GET /orders/{orderId} for status, payment, and fulfillment/tracking details.

Product types

Access & scopes

Test keys run in a full sandbox — no real orders or prescriptions are created and nothing is charged. Live keys create real prescriptions, real orders, and charge your card.

Safety & compliance

  • Tenant isolation — you can only reference your own patients and your own prescriber roster. Anything else returns 404.
  • Server-derived prescriber identity — name, DEA, and license are always resolved from your roster by NPI, never accepted from the request.
  • Controlled substances — the resolved prescriber must have a DEA on file for the patient’s state, or the order is rejected with controlled_requires_dea before anything is written.