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.
openapi: 3.2.0
info:
title: CMS Blue Button 2.0 Patient API
description: Blue Button 2.0 is the Centers for Medicare & Medicaid Services (CMS) patient-facing API that lets Medicare beneficiaries share their Parts A, B, and D claims data with applications they authorize.
version: '2.0'
contact:
name: CMS Blue Button 2.0
url: https://bluebutton.cms.gov
termsOfService: https://bluebutton.cms.gov/terms/
servers:
- url: https://api.bluebutton.cms.gov/v2/fhir
description: Production (approved applications only)
- url: https://sandbox.bluebutton.cms.gov/v2/fhir
description: Sandbox (synthetic Medicare enrollee data, self-serve)
security:
- oauth2:
- patient/ExplanationOfBenefit.read
- patient/Patient.read
- patient/Coverage.read
tags:
- name: Patient
description: Beneficiary demographic and administrative data.
paths:
/Patient:
get:
operationId: searchPatient
tags:
- Patient
summary: Search the authorized beneficiary's Patient resource
description: Returns the beneficiary's demographic and administrative record as a Patient resource in a FHIR Bundle. Available only if the beneficiary chose to share demographic data during authorization.
parameters:
- name: _id
in: query
description: The FHIR logical id of the Patient resource.
schema:
type: string
- name: identifier
in: query
description: Search by business identifier (Medicare Beneficiary Identifier hash system identifiers).
schema:
type: string
- $ref: '#/components/parameters/lastUpdated'
- $ref: '#/components/parameters/count'
- $ref: '#/components/parameters/startIndex'
responses:
'200':
description: A FHIR Bundle containing the Patient resource.
content:
application/fhir+json:
schema:
$ref: '#/components/schemas/Bundle'
'401':
$ref: '#/components/responses/Unauthorized'
/Patient/{id}:
get:
operationId: readPatient
tags:
- Patient
summary: Read the beneficiary's Patient resource by id
description: Returns the Patient resource for the authorizing beneficiary.
parameters:
- $ref: '#/components/parameters/resourceId'
responses:
'200':
description: A Patient resource.
content:
application/fhir+json:
schema:
$ref: '#/components/schemas/Patient'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
components:
responses:
NotFound:
description: No resource exists with the supplied id for this beneficiary.
Unauthorized:
description: Missing, expired, or invalid OAuth 2.0 access token.
schemas:
Bundle:
type: object
description: A FHIR R4 searchset Bundle wrapping matching resources.
properties:
resourceType:
type: string
enum:
- Bundle
type:
type: string
total:
type: integer
link:
type: array
items:
type: object
properties:
relation:
type: string
url:
type: string
entry:
type: array
items:
type: object
properties:
resource:
type: object
Patient:
type: object
description: FHIR R4 Patient resource for the authorizing Medicare beneficiary.
properties:
resourceType:
type: string
enum:
- Patient
id:
type: string
identifier:
type: array
items:
type: object
name:
type: array
items:
type: object
birthDate:
type: string
address:
type: array
items:
type: object
parameters:
startIndex:
name: startIndex
in: query
description: Zero-based index of the first record to return for pagination.
schema:
type: integer
lastUpdated:
name: _lastUpdated
in: query
description: Filter by the record's last_updated date using gt/lt prefixes; may be supplied more than once to define a range.
schema:
type: string
count:
name: _count
in: query
description: Number of records per page for pagination.
schema:
type: integer
resourceId:
name: id
in: path
required: true
description: The FHIR logical id of the resource.
schema:
type: string
securitySchemes:
oauth2:
type: oauth2
description: OAuth 2.0 authorization-code flow with mandatory PKCE (S256 only). Beneficiaries log in with their Medicare.gov credentials and choose whether to share demographic data. Access tokens expire after 1 hour. One-time-use refresh tokens are issued only to approved 13-month and research application types. Sandbox uses https://sandbox.bluebutton.cms.gov/v2/o/authorize/ and https://sandbox.bluebutton.cms.gov/v2/o/token/.
flows:
authorizationCode:
authorizationUrl: https://api.bluebutton.cms.gov/v2/o/authorize/
tokenUrl: https://api.bluebutton.cms.gov/v2/o/token/
refreshUrl: https://api.bluebutton.cms.gov/v2/o/token/
scopes:
patient/Patient.read: Read the beneficiary's Patient demographic resource.
patient/ExplanationOfBenefit.read: Read the beneficiary's Medicare claims.
patient/Coverage.read: Read the beneficiary's Medicare coverage.
openid: OpenID Connect authentication.
profile: Access the userinfo profile endpoint.
launch/patient: Receive the patient FHIR id in the token response.