Built for technology partners

A medical records API for platforms whose customers need the outside record.

Your customers ask you for the outside record and you have nowhere to get it. Building it means network participation, provider directories, patient matching, document parsing and the legal apparatus around all of it, and none of that is the product you set out to build. The incumbent electronic medical record systems do not sell you the answer either.

The decision

A platform needs the outside record as data.

Product, engineering and partnership leads at health technology companies whose customers are treating providers: intake and care-coordination platforms, EHR-adjacent tools, risk and quality products, and anyone whose roadmap contains "get the outside records".

Every platform serving care operations eventually arrives at the same wall. Your customers ask for the outside record, and getting it means joining networks, resolving provider identities, matching patients, parsing documents nobody formatted for machines, and carrying the legal apparatus that makes any of it lawful. None of that differentiates your product, and the large electronic medical record vendors are not going to sell you the answer.

Vivlio already does that work for provider organizations. The public API is the same capability, addressable: you provision your customers as clients, push their patients and appointments in, and read back the record as structured data under each customer’s own authority.

The full reference is yours for the asking - request it below. It covers authentication, the scope model, every endpoint, the field reference for all fourteen record domains, and the changelog. A platform team should be able to decide whether an integration is worth a meeting before it takes one, so the request does not commit you to a call.

The list below is what a platform needs before it can build on someone else’s retrieval, and what Vivlio does to the record beyond fetching it.

Before the decision

What the technology partner record has to contain.

Not a generic records list. What has to be on the table before this decision can be made well.

  1. One integration, not a network project

    Network participation, provider directories, patient matching and document parsing are the cost of the outside record. They are also not your product. This is one REST API over the top of all of it.

  2. Patient identity that survives your roster

    Batch upsert matches on the external identifier you already use, then on demographics, before creating anything. Sending the same patient again updates them rather than doubling them.

  3. Record data, not a pile of PDFs

    Fourteen domains - medications, allergies, problem list, encounters, notes, vitals, labs, procedures, immunizations, care team, plan of care and the histories - arrive as parsed data your product can render, diff or act on. The underlying files stay available through their own endpoints when the document itself is what matters.

  4. Authority, declared per customer

    Each of your customers authenticates with its own NPI and purpose of use. The authorization travels with the token, so your platform never becomes the thing asserting a legal basis it does not have.

  5. An event, not a poll

    Signed webhooks tell your product when a patient's record has changed. Signature validation is documented, with the digest over the raw body.

What arrives

Organized for this decision, not just retrieved.

Retrieval is the commodity. What arrives has already been sorted for the decision above, and each line says where it came from.

One record per event, whichever source sent it
The same discharge summary released by a hospital and again by its health system arrives once, with both sources named, so your product is not left de-duplicating someone else's records.
A source and a date on every line
Every record carries the organization that released it and when it arrived. Anything you build on top can show its provenance, because the provenance came with the data.
Structure you do not have to invent
Domains are separate endpoints with stable shapes rather than one blob to be mined. What your product needs is addressable without a parsing layer of your own.
Errors you can act on
Failures return a structured error with a code, a message, the offending field and a request identifier, so a support conversation starts with the request rather than a screenshot.

The record

This is what arrives.

The portal itself, rendered from the product's own source over a synthetic patient. Every line carries the organization that released it and the date it arrived.

Vivlio portal, release 5.30.0, rendered from source · Synthetic patient, no PHI

Rivera, Elena

Date of birth03/18/1958
Viewing records from facility:
LabsDiagnostic TestsMedicationsNotesPlan of CareHospitalizationsSurgeries

Showing 1–10 of 27 records

Date of ServiceRecord TitleFacilityDepartment/LocationProviderTransaction Date
08/27/2026Progress NoteNorthside Regional Medical CenterInternal MedicinePriya Natarajan, MD09/02/2026
08/14/2026Consult NoteAtlanta Cardiology AssociatesCardiologyMarcus Bell, MD09/02/2026
07/30/2026Admission DischargeNorthside Regional Medical CenterInpatientHannah Okafor, DO09/02/2026
07/22/2026Clinical DocumentPeachtree Family MedicinePrimary CareDaniel Reyes, MD09/02/2026
06/09/2026Image DocumentLakeview Imaging PartnersRadiologySunil Mehta, MD09/02/2026
05/12/2026Operative NoteNorthside Regional Medical CenterSurgeryGrace Lindqvist, MD09/02/2026
03/03/2026Patient HistoryPeachtree Family MedicinePrimary CareDaniel Reyes, MD09/02/2026
01/15/2026Progress NoteAtlanta Cardiology AssociatesCardiologyMarcus Bell, MD09/02/2026
12/02/2025Clinical DocumentLakeview Imaging PartnersRadiologySunil Mehta, MD09/02/2026
10/21/2025Consult NoteNorthside Regional Medical CenterEndocrinologyRina Adeyemi, MD09/02/2026

Demographics

DOB: 03/18/1958
Age: 68 years old
Gender: Female
Email: N/A
Phone: (404) 555-0134
Address:
1420 Willow Creek Dr
Decatur, GA 30030

Data Summary

Encounters: 14 records
Labs: 22 records
Diagnostic Tests: 6 records
Medications: 11 records
Notes: 9 records
Plan of Care: 3 records
Hospitalizations: 1 record
Surgeries: 2 records

Encounters

Go to Encounters
Office visit
Follow-up, atrial fibrillation
Marcus Bell, MD
08/14/2026
Hospital
Chest pain, observation
Hannah Okafor, DO
07/30/2026
Office visit
Diabetes management
Daniel Reyes, MD
07/22/2026
Telephone
Medication question
Daniel Reyes, MD
06/18/2026

Vitals

Go to Vitals
Blood Pressure128/82 mmHg
08/27/2026
Heart Rate72 bpm
08/27/2026
Weight164 lb
08/27/2026
BMI27.3
08/27/2026

Allergies

Penicillin- Hives
03/03/2026
Sulfonamides- Rash
03/03/2026

Immunizations

Influenza, seasonal
10/02/2025
COVID-19, mRNA
10/02/2025
Tdap
05/11/2022

Problem List

Type 2 diabetes mellitus
Daniel Reyes, MD
07/22/2026
Atrial fibrillation
Marcus Bell, MD
08/14/2026
Essential hypertension
Daniel Reyes, MD
07/22/2026
Hyperlipidemia
Daniel Reyes, MD
07/22/2026

Care Team

Daniel Reyes, MD
Primary care
Peachtree Family Medicine
Marcus Bell, MD
Cardiology
Atlanta Cardiology Associates
Rina Adeyemi, MD
Endocrinology
Northside Regional Medical Center
The Vivlio portal, release 5.30.0, rendered from its own source: a patient's Electronic Records, with the Full Records grid and the Highlights cards. The patient, the facilities, the providers and every record shown are synthetic.

See the full record view

Questions

Questions technology partner teams ask first.

Answered here in the same words as the structured data behind the page, so what a search engine shows is what a reader gets.

What does the API return?
Parsed record data by domain, read-only, across fourteen domains: medications, allergies, problem list, encounters, notes, vitals, labs and diagnostics, procedures and surgeries, immunizations, care team, plan of care, social history, family history and general history. Every record names the source document it was parsed from, and on request carries that document's file name, the facility that submitted it and the date it arrived. The patient's files are available through their own endpoints when the document itself is what matters. List responses are paginated with limit and offset, report whether more remain, and can be filtered by date and, on several domains, by type. The full field reference for every domain is in the API reference, which you can request from this page.
How does authentication work for a platform with many customers?
Two token types. A Partner token, obtained through an OAuth 2.0 client-credentials exchange, manages your own clients and their API keys: create a client when you onboard a customer, issue keys at partner or client level, update or soft-delete as your own accounts change. A Client token, carrying that customer's NPI and declared purpose of use, is what actually reads patients and records. Tokens are signed JWTs with a sixty-minute life, and every call is HTTPS.
Whose authority do the records move under?
Your customer's, not yours and not ours. A client token carries an NPI and a declared purpose of use, and the records move for treatment under that provider's authority with a signed BAA behind it. That makes the fit test simple: if your customers are treating providers, this works the way it is built. If the use is case management eligibility, payer or utilization review, or disability and legal, that is a different legal basis and a conversation to have before anything is built.
Can we load patients at volume?
Yes. Patients can be created one at a time or upserted in batches of up to a hundred per call, matched first on the external identifier you already use and then on demographics before a new record is created, so re-sending your roster does not duplicate it. Providers and appointments have the same shape of endpoint, so a platform can mirror its own scheduling into Vivlio and let retrieval follow the calendar.
How do we know when something arrives?
Webhooks, signed, configured per client. Each request carries an X-Webhook-Signature header holding an HMAC-SHA256 digest of the raw body, computed with your client secret. Validate before you parse: an unvalidated webhook endpoint is an open door. The validation code is in the API reference, which you can request from this page.
Can we read the API reference before we talk to you?
Yes. Request it with the form on this page and it comes by email; you do not have to book a call to get it. It covers authentication, the scope model, every endpoint, the field reference for all fourteen record domains, pagination, rate limits and the error codes, plus the changelog. Two things are not in it: what a partner pays, and how a sandbox tenant gets provisioned. Both are quick answers on the call.

Talk to us

Request the API reference

Tell us who you are and what your platform needs the outside record for, and the reference comes by email. The calendar opens here too, for the things it does not answer: the sandbox, the scopes your integration needs, what your customers would have to sign, and what it costs.

  1. Request the referenceTwo minutes. Name, work email, phone and company, and what your platform needs the outside record for if you can say.
  2. Pick a timeThirty minutes on the integration itself: the sandbox, the scopes, what your customers sign and what it costs. Optional; the request is already with us.

Who this is for, and who it is not

  • Coverage comes firstVivlio retrieves from providers, hospitals and health systems it can reach through national exchange networks and direct connections. Name the facilities your patients come from on the form and we check coverage before anyone spends thirty minutes on a demo.
  • You can say what the chasing costsThe form asks how many hours a week your team loses to chasing records. If nobody can put a number near it, the case for Vivlio is not there yet, and we would rather say so than sell you a demo.
  • Patients and files at volumeThis is built for intake that runs every day. For one record, once, your patient can request it from the provider directly, and that will be faster than going through us.
  • Treatment, with the paperwork doneProduction access needs an NPI, a declared purpose of use and a signed BAA. Nobody swipes a card onto live PHI.

If none of those describe you, say so in the last field and we will come back in writing instead of booking a call.

Or call sales directly at 404-777-5772

Step 1 of 2

Request the API reference