HL7 FHIR Patient API
Patient demographic and identity resources
Patient demographic and identity resources
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.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.curl "https://apis.io/api/v1/apis/hl7-fhir-patient-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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.
openapi: 3.2.0
info:
title: HL7 FHIR R4 Healthcare Bundle Patient API
description: HL7 FHIR R4 (v4.0.1) RESTful API for healthcare data exchange. Provides access to patient demographics, clinical observations, conditions, medications, encounters, care plans, and diagnostic reports. Implements the FHIR REST specification including CRUD operations, search parameters, history, and batch/ transaction bundles. SMART on FHIR OAuth 2.0 authorization required.
version: 4.0.1
contact:
name: HL7 International
url: https://www.hl7.org/fhir/
license:
name: Creative Commons CC0
url: https://creativecommons.org/publicdomain/zero/1.0/
servers:
- url: https://fhir-server.example.com/fhir/R4
description: FHIR R4 server base URL (replace with actual server URL)
security:
- SMARTonFHIR: []
tags:
- name: Patient
description: Patient demographic and identity resources
paths:
/Patient:
get:
operationId: searchPatient
summary: Search patients
description: Searches for Patient resources matching the specified search parameters. Supports name, identifier (MRN), birthdate, gender, and address searches. Returns a Bundle containing matching Patient resources.
tags:
- Patient
parameters:
- name: _id
in: query
schema:
type: string
description: Logical id of the patient
- name: identifier
in: query
schema:
type: string
description: Patient identifier (e.g., "http://hospital.example.org/patients|12345")
- name: family
in: query
schema:
type: string
description: A portion of the family name of the patient
- name: given
in: query
schema:
type: string
description: A portion of the given name of the patient
- name: birthdate
in: query
schema:
type: string
description: The patient's date of birth (e.g., "1990-01-15" or "ge1990")
- name: gender
in: query
schema:
type: string
enum:
- male
- female
- other
- unknown
- name: _count
in: query
schema:
type: integer
default: 20
description: Number of results per page
- name: _sort
in: query
schema:
type: string
description: Sort criteria (e.g., "family,-birthdate")
- name: _include
in: query
schema:
type: string
description: Include related resources (e.g., "Patient:general-practitioner")
responses:
'200':
description: Bundle of matching Patient resources
content:
application/fhir+json:
schema:
$ref: '#/components/schemas/Bundle'
'400':
description: Invalid search parameters
content:
application/fhir+json:
schema:
$ref: '#/components/schemas/OperationOutcome'
post:
operationId: createPatient
summary: Create a patient
description: Creates a new Patient resource. The server assigns the logical ID.
tags:
- Patient
requestBody:
required: true
content:
application/fhir+json:
schema:
$ref: '#/components/schemas/Patient'
responses:
'201':
description: Patient created
headers:
Location:
schema:
type: string
description: URL of created resource (e.g., Patient/123/_history/1)
content:
application/fhir+json:
schema:
$ref: '#/components/schemas/Patient'
'400':
description: Invalid resource
/Patient/{id}:
get:
operationId: readPatient
summary: Read a patient
description: Returns the current version of a Patient resource by its logical ID.
tags:
- Patient
parameters:
- name: id
in: path
required: true
schema:
type: string
description: Logical ID of the patient
responses:
'200':
description: Patient resource returned
content:
application/fhir+json:
schema:
$ref: '#/components/schemas/Patient'
'404':
description: Patient not found
put:
operationId: updatePatient
summary: Update a patient
description: Updates an existing Patient resource using a complete replacement (PUT semantics).
tags:
- Patient
parameters:
- name: id
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
application/fhir+json:
schema:
$ref: '#/components/schemas/Patient'
responses:
'200':
description: Patient updated
content:
application/fhir+json:
schema:
$ref: '#/components/schemas/Patient'
'201':
description: Patient created (upsert)
'400':
description: Invalid resource
components:
schemas:
CodeableConcept:
type: object
properties:
coding:
type: array
items:
$ref: '#/components/schemas/Coding'
text:
type: string
Meta:
type: object
properties:
versionId:
type: string
lastUpdated:
type: string
format: date-time
profile:
type: array
items:
type: string
format: uri
tag:
type: array
items:
$ref: '#/components/schemas/Coding'
Address:
type: object
properties:
use:
type: string
enum:
- home
- work
- temp
- old
- billing
type:
type: string
enum:
- postal
- physical
- both
text:
type: string
line:
type: array
items:
type: string
city:
type: string
district:
type: string
state:
type: string
postalCode:
type: string
country:
type: string
Bundle:
type: object
description: A container for a collection of FHIR resources
properties:
resourceType:
type: string
enum:
- Bundle
id:
type: string
type:
type: string
enum:
- document
- message
- transaction
- transaction-response
- batch
- batch-response
- history
- searchset
- collection
total:
type: integer
description: Total number of matches (for searchset bundles)
link:
type: array
items:
type: object
properties:
relation:
type: string
enum:
- self
- first
- previous
- next
- last
url:
type: string
format: uri
entry:
type: array
items:
type: object
properties:
fullUrl:
type: string
format: uri
resource:
type: object
description: FHIR resource (any type)
search:
type: object
properties:
mode:
type: string
enum:
- match
- include
- outcome
score:
type: number
request:
type: object
properties:
method:
type: string
enum:
- GET
- HEAD
- POST
- PUT
- DELETE
- PATCH
url:
type: string
response:
type: object
properties:
status:
type: string
location:
type: string
required:
- resourceType
- type
Reference:
type: object
properties:
reference:
type: string
description: Relative or absolute URL (e.g., "Patient/123")
type:
type: string
format: uri
identifier:
$ref: '#/components/schemas/Identifier'
display:
type: string
Patient:
type: object
description: Demographics and administrative information about a patient
properties:
resourceType:
type: string
enum:
- Patient
id:
type: string
meta:
$ref: '#/components/schemas/Meta'
identifier:
type: array
items:
$ref: '#/components/schemas/Identifier'
description: Patient identifiers (MRN, SSN, etc.)
active:
type: boolean
name:
type: array
items:
$ref: '#/components/schemas/HumanName'
telecom:
type: array
items:
$ref: '#/components/schemas/ContactPoint'
gender:
type: string
enum:
- male
- female
- other
- unknown
birthDate:
type: string
format: date
deceased:
type: object
properties:
deceasedBoolean:
type: boolean
deceasedDateTime:
type: string
format: date-time
address:
type: array
items:
$ref: '#/components/schemas/Address'
communication:
type: array
items:
type: object
properties:
language:
$ref: '#/components/schemas/CodeableConcept'
preferred:
type: boolean
generalPractitioner:
type: array
items:
$ref: '#/components/schemas/Reference'
required:
- resourceType
Coding:
type: object
properties:
system:
type: string
format: uri
description: Identity of the terminology system (e.g., "http://loinc.org", "http://snomed.info/sct")
version:
type: string
code:
type: string
display:
type: string
userSelected:
type: boolean
Identifier:
type: object
properties:
use:
type: string
enum:
- usual
- official
- temp
- secondary
- old
type:
$ref: '#/components/schemas/CodeableConcept'
system:
type: string
format: uri
value:
type: string
ContactPoint:
type: object
properties:
system:
type: string
enum:
- phone
- fax
- email
- pager
- url
- sms
- other
value:
type: string
use:
type: string
enum:
- home
- work
- temp
- old
- mobile
HumanName:
type: object
properties:
use:
type: string
enum:
- usual
- official
- temp
- nickname
- anonymous
- old
- maiden
text:
type: string
family:
type: string
given:
type: array
items:
type: string
prefix:
type: array
items:
type: string
suffix:
type: array
items:
type: string
OperationOutcome:
type: object
properties:
resourceType:
type: string
enum:
- OperationOutcome
issue:
type: array
items:
type: object
properties:
severity:
type: string
enum:
- fatal
- error
- warning
- information
code:
type: string
details:
$ref: '#/components/schemas/CodeableConcept'
diagnostics:
type: string
expression:
type: array
items:
type: string
required:
- resourceType
- issue
securitySchemes:
SMARTonFHIR:
type: oauth2
description: SMART on FHIR OAuth 2.0 authorization
flows:
authorizationCode:
authorizationUrl: https://auth.example.com/authorize
tokenUrl: https://auth.example.com/token
scopes:
patient/Patient.read: Read patient data
patient/Observation.read: Read observations
patient/Condition.read: Read conditions
patient/MedicationRequest.read: Read medication requests
patient/Encounter.read: Read encounters
launch/patient: Patient context launch
openid: OpenID Connect identity
externalDocs:
description: HL7 FHIR R4 Specification
url: https://www.hl7.org/fhir/R4/