How AI is applied across API Evangelist and APIs.io. Read my AI disclosure →
API Evangelist API Evangelist
Discovery
Learnings
Guidance
Toolbox
Alignment
API Evangelist LLC
Medplum website screenshot

Medplum

Medplum is an Apache 2.0 open-source, FHIR-native developer platform for shipping clinical software. It bundles a FHIR R4 datastore, REST and GraphQL APIs, a TypeScript SDK, React component library, OAuth 2.0 / SMART on FHIR authentication, declarative Access Policies, Subscriptions, and TypeScript-based serverless Bots — sold as a hosted service at api.medplum.com and as a self-hostable monorepo on GitHub. Medplum is HIPAA, SOC 2 Type II, and ONC-certified.

agent native

Reference-quality API operations across every facet — a rich contract, published governance, transparent operations, and machine-readable commercial terms.

Kin Score

API Evangelist profiles Medplum the way a machine reads it — 78 machine-readable artifacts across 1 API, pulled from the provider's own public surface and indexed so a developer, an analyst, or an AI agent can evaluate it against every other provider on the network.

Every provider in the network is reduced to the same set of machine-readable artifacts — OpenAPI contracts, event specifications, GraphQL schemas, runnable collections, pricing and rate-limit signals, security posture, OAuth scopes, and the agent surfaces (MCP servers and skills) that let software drive the API on its own. We profile them because the interface is the part of a company you can actually inspect: it is a truer signal of what a provider does than any marketing page. From those artifacts we compute the Kin Score — Medplum scores 87.4/100 (exemplar), with a separate agent-readiness read of 52/100 (agent native). The full breakdown is below, followed by every artifact we hold — each card links through to its machine-readable definition on apis.io.

Kin Score

This is the API Evangelist rating — a single, repeatable read computed from the artifacts on this page. Green fill is points earned; the red track is points possible, so every bar shows earned-versus-possible at a glance. Every facet and dimension name is a link: it opens that measurement's page on APIs.io, where the rating runs across the whole catalog — the exact checks that feed it, how every profiled provider distributes on it, and who is at the top of it.

Kin Score Kin Score How this is scored →
scored 2026-09-08 · rubric v0.20.0
Composite quality — 87.4/100 · exemplar
Contract Quality 19.8 / 25
Access Clarity 17.4 / 20
Discoverability 6.7 / 10
Agent readiness — 52/100 · agent native
Agentic Access Contract derived 2.5 / 10
MCP Server documented 4.8 / 12
Machine-Readable Auth served 9.0 / 10
Idempotency documented 4.5 / 9
Stable Error Semantics documented 4.0 / 8
Request/Response Examples documented 1.8 / 7
Rate-Limit Signaling documented 3.5 / 7
Agent Skills derived 1.3 / 5
Medplum Kin Score — API readiness rating by API Evangelist

Put this on your own site. The badge is drawn live from Medplum's current Kin Score — paste it once and it updates itself every time the score is recomputed. It follows your visitor's light or dark setting, and it links back here so anyone who sees it can read the full breakdown.

<!-- Kin Score · API Evangelist -->
<a href="https://providers.apievangelist.com/providers/medplum/"
   title="Medplum on API Evangelist — API profile and Kin Score">
  <img src="https://apis.io/badge/medplum.svg"
       alt="Medplum Kin Score — API readiness rating by API Evangelist" width="150" height="150" loading="lazy">
</a>

More shapes, themes and sizes → · Score as JSON · How badges work

How we profile Medplum

Each block below is one kind of artifact we hold for Medplum. For each we say what it is and why it earns a place in the profile, then list every one we've indexed — capped at two rows, scroll within the panel for the rest.

APIs 4

Each API is captured as its own OpenAPI definition — every operation, parameter, and response. This is the single most useful machine-readable description of what an API does, and it's what lets us score, lint, mock, and generate against it without asking the provider for anything.

Individual APIs this provider publishes, each with its own machine-readable definition.

Medplum GraphQL API

FHIR-aware GraphQL endpoint at https://api.medplum.com/fhir/R4/$graphql. Supports typed nested queries, reverse-reference traversal (_reference), FHIRPath-style array filtering,...

Medplum Bots

Bots are TypeScript serverless functions (AWS Lambda-style) executed in response to FHIR Subscriptions, HTTP triggers, or scheduled cron. Bots are the backbone of Medplum integr...

Medplum Subscriptions

FHIR Subscription resources that match a search criteria and dispatch real-time notifications via REST hooks (webhooks) or Websockets when matching resources are created or upda...

Medplum Fhir API

The Fhir API from Medplum — 4 operation(s) for fhir.

Postman Collections 1

A runnable collection turns the contract into something a developer can execute in seconds. We profile them because the fastest way to trust an API is to make a real call against it.

Ready-to-run Postman collections for exercising this provider's APIs.

Open Collections 2

Open, tool-agnostic collections carry the same runnable value as Postman without locking you to one client — the portable, forkable form of the same exercise.

Open, tool-agnostic API collections (OpenAPI-derived and Bruno).

API Collection

OPEN COLLECTION

Arazzo Workflows 11

Real integrations are rarely a single call. Arazzo describes the multi-step sequences — auth, then create, then confirm — so both a human and an agent can follow the choreography, not just the endpoints.

Multi-step API workflows described with the Arazzo specification.

Medplum Amend Resource With History

Read a resource, update it, then inspect its version history and prior version.

ARAZZO

Medplum Clinical Data Query

Locate a patient by name, read the Patient resource, then pull that patient's Observations.

ARAZZO

Medplum Create Diagnostic Report

Create an Observation result, then assemble a DiagnosticReport that references it.

ARAZZO

Medplum Deploy Bot

Create a Bot resource, then create a Subscription that invokes the Bot on resource changes.

ARAZZO

Medplum FHIR Resource CRUD

Create a FHIR R4 resource, read it back by id, update it, then search the resource type for it.

ARAZZO

Medplum Finalize Observation

Find a preliminary Observation, patch its status to final, and read it back to confirm.

ARAZZO

Medplum Find And Delete Resource

Search a resource type, and if a match is found read it for audit then delete it.

ARAZZO

Medplum Register Patient With Observation

Create a Patient, then record a vital-sign Observation that references that patient.

ARAZZO

Medplum FHIR Resource Versioning

Create a FHIR resource, update it to mint a new version, read its history, then read a specific version.

ARAZZO

Medplum Schedule Encounter

Create a Practitioner, create an Encounter linking the patient and practitioner, then read it back.

ARAZZO

Medplum Upsert Patient

Search for a Patient by identifier and update it if found, otherwise create it.

ARAZZO

Scroll within the panel for all 11 ·

MCP Servers 1

Model Context Protocol servers expose these APIs directly to AI agents. We profile them because agent-native access is the fastest-growing way this provider's capabilities actually get used.

Model Context Protocol servers that expose these APIs to AI agents.

Medplum MCP Server

Official hosted Medplum MCP server. Exposes the Medplum FHIR API to AI clients through a single general-purpose FHIR request tool plus two client-compatibility shims, authentica...

MCP SERVER

GraphQL 1

Where a provider ships GraphQL, the schema is the contract. We profile it alongside the REST surface so the whole interface is legible in one place.

GraphQL schemas published by this provider.

Medplum GraphQL API

FHIR-aware GraphQL endpoint at https://api.medplum.com/fhir/R4/$graphql. Supports typed nested queries, reverse-reference traversal (_reference), FHIRPath-style array filtering,...

GRAPHQL

Pricing Plans 1

Pricing is part of the interface. Machine-readable plans tell you what a tier costs and includes before you commit — one of the things the Kin Score reads for access clarity — renamed from commercial clarity in rubric 0.12, because a free statutory interface has access terms and no commercial ones.

Published pricing tiers and plan structures.

Medplum Plans Pricing

6 plans

PLANS

Rate Limits 1

Rate limits are the difference between a demo that works and a production integration that doesn't fall over. Publishing them is an operational-transparency signal — and a hard requirement for any agent that plans its own throughput.

Documented rate limits and quota policies.

Medplum Rate Limits

4 limits

RATE LIMITS

FinOps 1

Cost, billing, and metering signals let a buyer model the financial operations of an API before it's live. We profile them for the same reason we profile pricing: the money is part of the contract.

Cost, billing, and metering signals for API financial operations.

Features 9

The notable capabilities this provider advertises, captured as structured features so they can be searched and compared instead of read one landing page at a time.

Notable capabilities this provider offers.

FHIR-Native Datastore

PostgreSQL-backed datastore that natively models FHIR R4 resources, including search, history, and versioning.

REST + GraphQL APIs

Dual API surface — FHIR REST and FHIR-aware GraphQL — sharing the same authorization, schema, and access policies.

Bots (Serverless TypeScript Functions)

AWS Lambda-style TypeScript functions executed by Subscriptions, HTTP, or cron triggers; the integration backbone of Medplum.

Subscriptions (Webhooks + Websockets)

FHIR Subscription resources dispatch real-time notifications when matching resources change.

Access Policies

Declarative resource- and field-level authorization rules attached to ProjectMembership.

SMART on FHIR + OAuth 2.0

Standards-based authentication and authorization, supporting SMART App Launch 2.0.0 and Bulk Data 2.0.0.

TypeScript SDK and React Components

@medplum/core, @medplum/react, and @medplum/react-hooks provide typed client and reusable UI primitives.

On-Premise Agent

Bridges local clinical systems (HL7v2, DICOM, MLLP) to Medplum cloud.

AWS CDK Deployment

First-class CDK constructs for self-hosting Medplum on AWS.

Scroll within the panel for all 9 ·

Event Specifications 1

Not every API is request/response. AsyncAPI describes the event-driven and streaming side — the webhooks and channels — so the asynchronous half of the interface is documented the same way the synchronous half is.

AsyncAPI definitions for this provider's event-driven and streaming APIs.

Semantic Vocabularies 1

JSON-LD contexts give the data shared meaning across APIs. We profile them because semantics are what let a machine reconcile 'customer' here with 'customer' somewhere else.

JSON-LD contexts and semantic vocabularies used across these APIs.

Medplum Context

18 classes · 2 properties

JSON-LD

Spectral Rules 2

Governance rulesets we run against this provider's specs — the automated checks behind parts of the score. Profiling them makes the quality bar explicit and re-runnable, not a matter of opinion.

Medplum API Rules

5 rules · 3 warnings

SPECTRAL

Medplum API Rules

5 rules · 4 warnings

SPECTRAL

JSON Schema 9

Standalone JSON Schema definitions describe the data models behind the API. We profile them so the shapes are validatable on their own — useful long after a single request is forgotten.

Standalone JSON Schema definitions for this provider's data models.

Bot

28 properties

JSON SCHEMA

Condition

34 properties

JSON SCHEMA

Encounter

32 properties

JSON SCHEMA

MedicationRequest

43 properties

JSON SCHEMA

Observation

46 properties

JSON SCHEMA

Organization

19 properties

JSON SCHEMA

Patient

27 properties

JSON SCHEMA

Practitioner

19 properties

JSON SCHEMA

Subscription

16 properties

JSON SCHEMA

Scroll within the panel for all 9 ·

JSON Structure 1

JSON Structure captures the data shapes in a form built for tooling — a complement to JSON Schema that keeps the model machine-legible.

JSON Structure definitions describing this provider's data shapes.

Medplum Patient Structure

8 properties

JSON STRUCTURE

Examples 5

Real request and response payloads are what turn a spec from abstract into obvious — and they're one of the twelve things an agent needs to call an API correctly on the first try.

Example request and response payloads for these APIs.

Security Posture 4

Authentication, domain security, vulnerability disclosure, and trust-center signals — the evidence that a provider takes security seriously enough to document it. We profile it because you can't govern what you can't see.

Authentication, domain security, vulnerability disclosure, and trust-center signals.

Medplum Authentication

http/openIdConnect/oauth2 (SMART App Launch 2.0.0, not declared in OpenAPI securitySchemes) · 4 schemes

SECURITY

Medplum Domain Security

TLSv1.3 · HSTS · DMARC

SECURITY

Medplum Vulnerability Disclosure

disclosure policy published

SECURITY

Medplum Trust Center

SOC 2, HIPAA, GDPR, CSA STAR

SECURITY

Scopes 1

OAuth scopes are the vocabulary of least-privilege access. Profiling them shows exactly what an integration — or an agent acting on a user's behalf — is allowed to do.

OAuth scopes governing access to this provider's APIs.

Medplum Scopes

12 scopes · authorizationCode/clientCredentials

12 scopes

SCOPES

Agentic Access 1

An x-agentic-access contract marks which operations are safe for an agent to run on its own and which need a human in the loop. It is the difference between an API an agent can use and one it can use safely.

Recommended x-agentic-access execution contracts for AI agents.

Medplum Agentic Access

8 operations · 4 acting

8 operations · 4 acting

AGENTIC

Use Cases 7

What developers actually build with this provider — captured so the catalogue answers 'what is this for', not just 'what does this expose'.

What developers build with this provider.

Custom EHR Development

Build custom electronic health records on top of FHIR-native storage and React UI components.

Patient Engagement Portals

Ship patient-facing portals using SMART on FHIR auth and the Medplum React component library.

AI Scribe and Clinical Documentation

Capture clinical notes, run them through LLM pipelines via Bots, and persist structured FHIR resources.

HL7v2 to FHIR Integration

Receive legacy HL7v2 ADT, ORU, and SIU messages via the on-premise Agent and convert them to FHIR with Bots.

Population Health and Analytics

Use Bulk Data 2.0 exports and GraphQL aggregations for cohort and population-level analysis.

Care Management Workflows

Model longitudinal care plans, tasks, and questionnaires with FHIR-native resources.

Revenue Cycle Automation

Automate claim, coverage, and explanation-of-benefit workflows with Bots and Subscriptions.

Scroll within the panel for all 7 ·

Integrations 8

Pre-built integrations with other platforms tell you where this provider already fits in a stack.

Pre-built integrations with other platforms and tools.

AWS

First-class deployment on AWS via CDK, with Bots running on Lambda and storage on RDS PostgreSQL.

HL7v2

Bidirectional HL7v2 messaging via the Medplum on-premise Agent.

FHIRcast

Real-time clinical-context synchronization protocol support.

Stripe

Billing and payment integration examples for revenue cycle.

Twilio

SMS, voice, and messaging integration patterns via Bots.

DocuSeal / DocuSign

Patient consent and document-signing integration examples.

SendGrid / Mailgun

Transactional email integration patterns via Bots.

AWS HealthLake

Cross-platform FHIR data exchange examples.

Scroll within the panel for all 8 ·

Solutions 6

Packaged solutions the provider offers on top of the raw API surface.

Packaged solutions this provider offers.

Custom EHR

Build production EHR systems on top of Medplum.

Patient Portal

Reference patient-facing portal application.

Provider Portal

Reference provider-facing clinical application.

AI-Powered Clinical Scribe

Solution pattern for LLM-driven clinical documentation pipelines.

Population Health Platform

Solution pattern for cohort identification and outcome tracking.

Revenue Cycle Management

Solution pattern for automating claims, coverage, and billing workflows.

Resources

Every other property we hold for Medplum — documentation, portals, status pages, policies, and corporate surface — grouped by the job it does, following the integrator's arc from getting started to running in production.

Get Started 2

Portal, sign-up, and the first successful call

Documentation 2

Reference material describing how the API behaves

Company 2

The organization behind the API

Other 2

Properties that don't map to a standard resource type

← All providers · Data indexed from github.com/api-evangelist/medplum · machine-readable index on apis.io

Where this information came from

This is an independent, third-party profile of Medplum, published by API Evangelist. We do not operate, host, resell, or support these APIs, and we are not affiliated with or endorsed by the company unless stated above. Everything here is built from publicly available information — the company's own site, developer portal, documentation, public repositories, and the specifications it publishes for public use. Nothing is obtained by breaching a system, defeating an access control, or using credentials.

The Kin Score and Agent Readiness rating are independently calculated assessments of a company's public API artifacts, scored against a published rubric. They are not certifications, endorsements, security assessments, or audits.

Corrections, re-scores, and removal are free — no partnership or purchase required, and you do not need to justify the request. A removed company is recorded as unrated, never scored zero for having asked. Acknowledgement within one business day; removal within two.

info@apievangelist.com · Read the full data-sourcing policy →
On a security or compliance team? Put security in the subject line and you will get a person, not a form — we will tell you exactly which public URLs this profile was built from.