Home
Providers
Medplum
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.
Medplum publishes 1 API on the APIs.io network: Fhir API. Tagged areas include Healthcare, FHIR, Open-Source, Developer Platform, and HIPAA.
The Medplum catalog on APIs.io includes 1 event-driven AsyncAPI specification, 1 JSON-LD context, and 2 Spectral governance rulesets.
Medplum’s developer surface includes authentication, documentation, getting-started guide, API reference, CLI, developer console, pricing, and 58 more developer resources.
1 APIs
1 MCP Servers
9 Features
7 Use Cases
On this page
Kin Score
APIs 4
Postman 1
Open Collections 2
Arazzo 11
MCP Servers 1
GraphQL 1
Pricing Plans 1
Rate Limits 1
FinOps 1
Features 9
Event Specs 1
Vocabularies 1
Spectral Rules 2
JSON Schema 9
JSON Structure 1
Examples 5
Security Posture 4
Scopes 1
Agentic Access 1
Use Cases 7
Integrations 8
Solutions 6
Resources 66
apis.yml
97 Operational Transparency
0 Create-or-Update Ergonomics
Composite quality — 87.4/100 · exemplar
Agent readiness — 52/100 · agent native
Individual APIs this provider publishes, each with its own machine-readable definition.
Ready-to-run Postman collections for exercising this provider's APIs.
Open, tool-agnostic API collections (OpenAPI-derived and Bruno).
Multi-step API workflows described with the Arazzo specification.
Scroll for all 11
Model Context Protocol servers that expose these APIs to AI agents.
GraphQL schemas published by this provider.
Published pricing tiers and plan structures.
Documented rate limits and quota policies.
Cost, billing, and metering signals for API financial operations.
Notable capabilities this provider offers.
Scroll for all 9
AsyncAPI definitions for this provider's event-driven and streaming APIs.
JSON-LD contexts and semantic vocabularies used across these APIs.
Spectral governance rulesets for linting and validating these APIs.
Standalone JSON Schema definitions for this provider's data models.
Scroll for all 9
JSON Structure definitions describing this provider's data shapes.
Example request and response payloads for these APIs.
Authentication, domain security, vulnerability disclosure, and trust-center signals.
OAuth scopes governing access to this provider's APIs.
Recommended x-agentic-access execution contracts for AI agents.
What developers build with this provider.
Scroll for all 7
Pre-built integrations with other platforms and tools.
Scroll for all 8
Packaged solutions this provider offers.
Get Started 2
Portal, sign-up, and the first successful call
Documentation 2
Reference material describing how the API behaves
Agent Surfaces 5
MCP servers, agent skills, and machine-readable catalogs
Design & Contract 20
Pagination, idempotency, versioning, errors, and events
Scroll for all 20
Build 10
SDKs, sample code, and the tooling you integrate with
Scroll for all 10
Access & Security 8
Authentication, authorization, and security posture
Scroll for all 8
Operate 9
Status, limits, changes, and where to get help
Scroll for all 9
Commercial 6
Pricing, plans, and the legal terms of use
Company 2
The organization behind the API
Other 2
Properties that don't map to a standard resource type
Source (apis.yml)
aid: medplum
name: Medplum
description: 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.
type: Index
deliveryModel:
model: unknown
open_source: unknown
commercial: true
callable_host: true
label: Delivery model not determined — needs a product licence on record
confidence: low
source:
- openapi
- pricing
- repository-unlicensed
generated: '2026-08-28'
method: derived
accessModel:
pricing: freemium
onboarding: self-serve
trial: false
try_now: true
public: false
label: Freemium · Self-serve signup
confidence: high
source:
- plans
- authentication
generated: '2026-07-22'
method: derived
image: https://kinlane-images.s3.amazonaws.com/shared/apis-json/icons/medplum.png
tags:
- Healthcare
- FHIR
- Open-Source
- Developer Platform
- HIPAA
- SMART on FHIR
- Clinical
- Interoperability
tags_raw:
- Healthcare
- FHIR
- Open Source
- Developer Platform
- HIPAA
- SMART on FHIR
- Clinical
- Interoperability
url: https://raw.githubusercontent.com/api-evangelist/medplum/refs/heads/main/apis.yml
created: '2026-05-25'
modified: '2026-08-17'
specificationVersion: '0.23'
apis:
- aid: medplum:medplum-graphql-api
name: Medplum GraphQL API
description: FHIR-aware GraphQL endpoint at https://api.medplum.com/fhir/R4/$graphql. Supports typed nested queries, reverse-reference
traversal (_reference), FHIRPath-style array filtering, and access-policy enforcement at the field level.
humanURL: https://www.medplum.com/docs/graphql
baseURL: https://api.medplum.com/fhir/R4/$graphql
tags:
- GraphQL
- FHIR
- Healthcare
properties:
- type: Documentation
url: https://www.medplum.com/docs/graphql
- type: Examples
url: examples/medplum-graphql-patient-query-example.json
- url: graphql/medplum-graphql.md
type: GraphQL
- aid: medplum:medplum-bots
name: Medplum Bots
description: 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 integrations — HL7v2 to FHIR conversion, document generation,
webhook fan-out, and questionnaire-driven workflow automation.
humanURL: https://www.medplum.com/docs/bots
tags:
- Bots
- Automation
- Serverless
- Integration
properties:
- type: Documentation
url: https://www.medplum.com/docs/bots
- type: JSONSchema
url: json-schema/medplum-bot-schema.json
- type: Examples
url: examples/medplum-bot-hl7-to-fhir-example.json
- aid: medplum:medplum-subscriptions
name: Medplum Subscriptions
description: 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 updated. Subscriptions are the primary trigger for Bots
and external system integrations.
humanURL: https://www.medplum.com/docs/subscriptions
tags:
- Subscription
- Webhook
- FHIR
- Event
tags_raw:
- Subscriptions
- Webhooks
- FHIR
- Events
properties:
- type: Documentation
url: https://www.medplum.com/docs/subscriptions
- type: Examples
url: examples/medplum-subscription-webhook-example.json
- aid: medplum:medplum-fhir-api
name: Medplum Fhir API
description: The Fhir API from Medplum — 4 operation(s) for fhir.
humanURL: https://www.medplum.com/docs/api
baseURL: https://api.medplum.com/fhir/R4
tags:
- FHIR
tags_raw:
- Fhir
properties:
- type: OpenAPI
url: openapi/medplum-fhir-api-openapi.yml
- type: Documentation
url: https://www.medplum.com/docs/api
- type: APIReference
url: https://www.medplum.com/docs/api
- type: Authentication
url: https://www.medplum.com/docs/auth
- type: RateLimits
url: https://www.medplum.com/docs/rate-limits
- type: MCPServer
url: mcp/medplum-mcp.yml
- type: ToolCrosswalk
url: mcp/medplum-tool-crosswalk.yml
- type: Documentation
url: https://www.medplum.com/docs/ai/mcp
- type: JSONSchema
url: json-schema/medplum-patient-schema.json
- type: JSONSchema
url: json-schema/medplum-observation-schema.json
- type: JSONSchema
url: json-schema/medplum-encounter-schema.json
- type: JSONSchema
url: json-schema/medplum-practitioner-schema.json
- type: JSONSchema
url: json-schema/medplum-organization-schema.json
- type: JSONSchema
url: json-schema/medplum-condition-schema.json
- type: JSONSchema
url: json-schema/medplum-medicationrequest-schema.json
- type: JSONSchema
url: json-schema/medplum-subscription-schema.json
- type: JSONStructure
url: json-structure/medplum-patient-structure.json
- type: Examples
url: examples/medplum-patient-create-example.json
- type: Examples
url: examples/medplum-observation-bloodpressure-example.json
- type: Examples
url: examples/medplum-subscription-webhook-example.json
common:
- type: CapabilityMap
url: capabilities/medplum-capability-edges.yml
name: Medplum Business Capability Map
- type: IssueTracker
url: https://github.com/medplum/medplum/issues
- type: Releases
url: https://github.com/medplum/medplum/releases
- type: SecurityPolicy
url: https://github.com/medplum/medplum/blob/main/SECURITY.md
- type: MCPServer
url: mcp/medplum-mcp.yml
- type: AgenticAccess
url: agentic-access/medplum-agentic-access.yml
- type: TrustCenter
url: security/medplum-trust-center.yml
- type: VulnerabilityDisclosure
url: security/medplum-vulnerability-disclosure.yml
- type: DomainSecurity
url: security/medplum-domain-security.yml
- type: Authentication
url: authentication/medplum-authentication.yml
- type: PostmanWorkspace
url: https://www.postman.com/kinlaneapi/medplum/overview
- type: Arazzo
url: arazzo/medplum-amend-resource-with-history-workflow.yml
name: Medplum Amend Resource With History
- type: Arazzo
url: arazzo/medplum-create-diagnostic-report-workflow.yml
name: Medplum Create Diagnostic Report
- type: Arazzo
url: arazzo/medplum-deploy-and-run-bot-workflow.yml
name: Medplum Deploy Bot
- type: Arazzo
url: arazzo/medplum-finalize-observation-workflow.yml
name: Medplum Finalize Observation
- type: Arazzo
url: arazzo/medplum-find-and-delete-resource-workflow.yml
name: Medplum Find And Delete Resource
- type: Arazzo
url: arazzo/medplum-register-patient-with-observation-workflow.yml
name: Medplum Register Patient With Observation
- type: Arazzo
url: arazzo/medplum-schedule-encounter-workflow.yml
name: Medplum Schedule Encounter
- type: Arazzo
url: arazzo/medplum-upsert-patient-workflow.yml
name: Medplum Upsert Patient
- type: Website
url: https://www.medplum.com
- type: Documentation
url: https://www.medplum.com/docs
- type: GettingStarted
url: https://www.medplum.com/docs/tutorials
- type: APIReference
url: https://www.medplum.com/docs/api
- type: Authentication
url: https://www.medplum.com/docs/auth
- type: SDKs
url: https://www.medplum.com/docs/sdk/core
- type: SDKs
url: https://www.npmjs.com/package/@medplum/core
- type: SDKs
url: https://www.npmjs.com/package/@medplum/react
- type: CLI
url: https://www.medplum.com/docs/cli
- type: Console
url: https://app.medplum.com
- type: Pricing
url: https://www.medplum.com/pricing
- type: TermsOfService
url: https://www.medplum.com/terms
- type: PrivacyPolicy
url: https://www.medplum.com/privacy
- type: Blog
url: https://www.medplum.com/blog
- type: GitHubOrganization
url: https://github.com/medplum
- type: GitHubRepository
url: https://github.com/medplum/medplum
- type: Support
url: mailto:support@medplum.com
- type: Discord
url: https://discord.gg/medplum
- type: License
url: https://www.apache.org/licenses/LICENSE-2.0
- type: SpectralRules
url: rules/medplum-rules.yml
- type: Vocabulary
url: vocabulary/medplum-vocabulary.yml
- type: JSONLD
url: json-ld/medplum-context.jsonld
- type: Plans
url: plans/medplum-plans-pricing.yml
- type: RateLimits
url: rate-limits/medplum-rate-limits.yml
- type: FinOps
url: finops/medplum-finops.yml
- type: Packages
url: packages/medplum-packages.yml
- type: WellKnown
url: well-known/medplum-well-known.yml
- type: ToolCrosswalk
url: mcp/medplum-tool-crosswalk.yml
- type: LLMsTxt
url: llms/medplum-llms.txt
- type: Overlay
url: overlays/medplum-fhir-api-overlay.yaml
- type: Conformance
url: conformance/medplum-conformance.yml
- type: Compliance
url: https://www.medplum.com/docs/compliance
- type: ErrorCatalog
url: errors/medplum-problem-types.yml
- type: Lifecycle
url: lifecycle/medplum-lifecycle.yml
- type: StatusPage
url: https://status.medplum.com
- type: Deprecation
url: https://www.medplum.com/docs/compliance/alpha-beta
- type: OAuthScopes
url: scopes/medplum-scopes.yml
- type: Conventions
url: conventions/medplum-conventions.yml
- type: Idempotency
url: conventions/medplum-conventions.yml
- type: ChangeLog
url: changelog/medplum-changelog.yml
- type: CLI
url: cli/medplum-cli.yml
- type: Components
url: components/medplum-components.yml
- type: DataModel
url: data-model/medplum-data-model.yml
- type: AgentSkill
url: skills/_index.yml
- type: Webhooks
url: asyncapi/medplum-webhooks.yml
- type: Roadmap
url: https://github.com/orgs/medplum/projects/1
- type: Features
data:
- name: FHIR-Native Datastore
description: PostgreSQL-backed datastore that natively models FHIR R4 resources, including search, history, and versioning.
- name: REST + GraphQL APIs
description: Dual API surface — FHIR REST and FHIR-aware GraphQL — sharing the same authorization, schema, and access
policies.
- name: Bots (Serverless TypeScript Functions)
description: AWS Lambda-style TypeScript functions executed by Subscriptions, HTTP, or cron triggers; the integration
backbone of Medplum.
- name: Subscriptions (Webhooks + Websockets)
description: FHIR Subscription resources dispatch real-time notifications when matching resources change.
- name: Access Policies
description: Declarative resource- and field-level authorization rules attached to ProjectMembership.
- name: SMART on FHIR + OAuth 2.0
description: Standards-based authentication and authorization, supporting SMART App Launch 2.0.0 and Bulk Data 2.0.0.
- name: TypeScript SDK and React Components
description: '@medplum/core, @medplum/react, and @medplum/react-hooks provide typed client and reusable UI primitives.'
- name: On-Premise Agent
description: Bridges local clinical systems (HL7v2, DICOM, MLLP) to Medplum cloud.
- name: AWS CDK Deployment
description: First-class CDK constructs for self-hosting Medplum on AWS.
- type: UseCases
data:
- name: Custom EHR Development
description: Build custom electronic health records on top of FHIR-native storage and React UI components.
- name: Patient Engagement Portals
description: Ship patient-facing portals using SMART on FHIR auth and the Medplum React component library.
- name: AI Scribe and Clinical Documentation
description: Capture clinical notes, run them through LLM pipelines via Bots, and persist structured FHIR resources.
- name: HL7v2 to FHIR Integration
description: Receive legacy HL7v2 ADT, ORU, and SIU messages via the on-premise Agent and convert them to FHIR with Bots.
- name: Population Health and Analytics
description: Use Bulk Data 2.0 exports and GraphQL aggregations for cohort and population-level analysis.
- name: Care Management Workflows
description: Model longitudinal care plans, tasks, and questionnaires with FHIR-native resources.
- name: Revenue Cycle Automation
description: Automate claim, coverage, and explanation-of-benefit workflows with Bots and Subscriptions.
- type: Integrations
data:
- name: AWS
description: First-class deployment on AWS via CDK, with Bots running on Lambda and storage on RDS PostgreSQL.
- name: HL7v2
description: Bidirectional HL7v2 messaging via the Medplum on-premise Agent.
- name: FHIRcast
description: Real-time clinical-context synchronization protocol support.
- name: Stripe
description: Billing and payment integration examples for revenue cycle.
- name: Twilio
description: SMS, voice, and messaging integration patterns via Bots.
- name: DocuSeal / DocuSign
description: Patient consent and document-signing integration examples.
- name: SendGrid / Mailgun
description: Transactional email integration patterns via Bots.
- name: AWS HealthLake
description: Cross-platform FHIR data exchange examples.
- type: Solutions
data:
- name: Custom EHR
description: Build production EHR systems on top of Medplum.
- name: Patient Portal
description: Reference patient-facing portal application.
- name: Provider Portal
description: Reference provider-facing clinical application.
- name: AI-Powered Clinical Scribe
description: Solution pattern for LLM-driven clinical documentation pipelines.
- name: Population Health Platform
description: Solution pattern for cohort identification and outcome tracking.
- name: Revenue Cycle Management
description: Solution pattern for automating claims, coverage, and billing workflows.
- type: ArazzoWorkflows
workflows:
- url: arazzo/medplum-amend-resource-with-history-workflow.yml
name: Medplum Amend Resource With History
summary: Read a resource, update it, then inspect its version history and prior version.
- url: arazzo/medplum-clinical-data-query-workflow.yml
name: Medplum Clinical Data Query
summary: Locate a patient by name, read the Patient resource, then pull that patient's Observations.
- url: arazzo/medplum-create-diagnostic-report-workflow.yml
name: Medplum Create Diagnostic Report
summary: Create an Observation result, then assemble a DiagnosticReport that references it.
- url: arazzo/medplum-deploy-and-run-bot-workflow.yml
name: Medplum Deploy Bot
summary: Create a Bot resource, then create a Subscription that invokes the Bot on resource changes.
- url: arazzo/medplum-fhir-resource-crud-workflow.yml
name: Medplum FHIR Resource CRUD
summary: Create a FHIR R4 resource, read it back by id, update it, then search the resource type for it.
- url: arazzo/medplum-finalize-observation-workflow.yml
name: Medplum Finalize Observation
summary: Find a preliminary Observation, patch its status to final, and read it back to confirm.
- url: arazzo/medplum-find-and-delete-resource-workflow.yml
name: Medplum Find And Delete Resource
summary: Search a resource type, and if a match is found read it for audit then delete it.
- url: arazzo/medplum-register-patient-with-observation-workflow.yml
name: Medplum Register Patient With Observation
summary: Create a Patient, then record a vital-sign Observation that references that patient.
- url: arazzo/medplum-resource-versioning-workflow.yml
name: Medplum FHIR Resource Versioning
summary: Create a FHIR resource, update it to mint a new version, read its history, then read a specific version.
- url: arazzo/medplum-schedule-encounter-workflow.yml
name: Medplum Schedule Encounter
summary: Create a Practitioner, create an Encounter linking the patient and practitioner, then read it back.
- url: arazzo/medplum-upsert-patient-workflow.yml
name: Medplum Upsert Patient
summary: Search for a Patient by identifier and update it if found, otherwise create it.
maintainers:
- FN: Kin Lane
email: kin@apievangelist.com
x-enrichment:
date: '2026-08-14'
status: enriched
artifacts_added: 19
pass: local-v1
Every provider here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for providers
9 MCP tools reach this
find_providersBrowse and filter every provider in the catalog.
get_provider_artifactsEvery artifact this provider publishes, grouped by type.
get_provider_operationsEvery operation across all of their OpenAPIs — one call instead of parsing every spec.
get_provider_toolsEvery MCP tool they ship, with the operation each wraps.
get_provider_evidenceHow each part of their score was established. Free — the basis for a claim should not sit behind it.
get_provider_ratingPRO — composite, band, trend and facet scores.
apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
resolveTurn a domain, URL or GitHub org into the provider it belongs to.
find_cohortsEvery scored population of providers in the catalog.
All 92 tools →
Call it yourself
curl for this page
This provider
curl "https://apis.io/api/v1/providers/medplum"
All providers
curl "https://apis.io/api/v1/providers?limit=25"
Every operation they expose
curl "https://apis.io/api/v1/providers/medplum/operations?limit=25"
How their score was established
curl "https://apis.io/api/v1/providers/medplum/evidence"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms .
A second provider on the same verified email joins the account you already have.