Medplum logo

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.

4 APIs 9 Features
HealthcareFHIROpen SourceDeveloper PlatformHIPAASMART on FHIRClinicalInteroperability

APIs

Medplum FHIR REST API

FHIR R4 REST API exposed at https://api.medplum.com/fhir/R4. Supports the full generic FHIR resource surface — create, read, update, patch, delete, search, history, and version-...

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...

Features

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.

Use Cases

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.

Integrations

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.

Solutions

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.

Semantic Vocabularies

Medplum Context

18 classes · 2 properties

JSON-LD

API Governance Rules

Medplum API Rules

5 rules · 4 warnings 1 info

SPECTRAL

Resources

🔗
PostmanWorkspace
PostmanWorkspace
🔗
ArazzoWorkflows
ArazzoWorkflows
🔗
Website
Website
🔗
Documentation
Documentation
🚀
GettingStarted
GettingStarted
🔗
APIReference
APIReference
🔑
Authentication
Authentication
📦
SDK
SDK
📦
SDK
SDK
📦
SDK
SDK
🔗
CLI
CLI
🌐
Console
Console
💰
Pricing
Pricing
📜
TermsOfService
TermsOfService
📜
PrivacyPolicy
PrivacyPolicy
📰
Blog
Blog
👥
GitHubOrganization
GitHubOrganization
👥
GitHubRepository
GitHubRepository
💬
Support
Support
🔗
Discord
Discord
🔗
License
License
🔗
SpectralRules
SpectralRules
🔗
Vocabulary
Vocabulary
🔗
JSON-LD
JSON-LD
🔗
Plans
Plans
🔗
RateLimits
RateLimits
🔗
FinOps
FinOps

Sources

Raw ↑
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
image: https://kinlane-images.s3.amazonaws.com/shared/apis-json/apis-json-logo.jpg
tags:
- 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-05-25'
specificationVersion: '0.19'
apis:
- aid: medplum:medplum-fhir-rest-api
  name: Medplum FHIR REST API
  description: >-
    FHIR R4 REST API exposed at https://api.medplum.com/fhir/R4. Supports the full
    generic FHIR resource surface — create, read, update, patch, delete, search, history,
    and version-read — across every FHIR R4 resource type, with US Core, SMART App Launch,
    and Bulk Data 2.0 conformance.
  humanURL: https://www.medplum.com/docs/api
  baseURL: https://api.medplum.com/fhir/R4
  tags:
  - FHIR
  - REST
  - Healthcare
  - Clinical
  properties:
  - type: Documentation
    url: https://www.medplum.com/docs/api
  - type: APIReference
    url: https://www.medplum.com/docs/api
  - type: OpenAPI
    url: openapi/medplum-openapi-original.yml
  - type: Authentication
    url: https://www.medplum.com/docs/auth
  - type: RateLimits
    url: https://www.medplum.com/docs/rate-limits
  - 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: Example
    url: examples/medplum-patient-create-example.json
  - type: Example
    url: examples/medplum-observation-bloodpressure-example.json
  - type: Example
    url: examples/medplum-subscription-webhook-example.json
  - type: NaftikoCapability
    url: capabilities/medplum-fhir-rest.yaml

- 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: Example
    url: examples/medplum-graphql-patient-query-example.json
  - type: NaftikoCapability
    url: capabilities/medplum-graphql.yaml

  - 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: Example
    url: examples/medplum-bot-hl7-to-fhir-example.json
  - type: NaftikoCapability
    url: capabilities/medplum-bots.yaml

- 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:
  - Subscriptions
  - Webhooks
  - FHIR
  - Events
  properties:
  - type: Documentation
    url: https://www.medplum.com/docs/subscriptions
  - type: Example
    url: examples/medplum-subscription-webhook-example.json

common:
- type: PostmanWorkspace
  url: https://www.postman.com/kinlaneapi/medplum/overview
- type: ArazzoWorkflows
  url: arazzo/
  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-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-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-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.
- 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: SDK
  url: https://www.medplum.com/docs/sdk/core
- type: SDK
  url: https://www.npmjs.com/package/@medplum/core
- type: SDK
  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: JSON-LD
  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: 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.

maintainers:
- FN: Kin Lane
  email: kin@apievangelist.com