Centers for Medicare and Medicaid Services Patient API

Beneficiary (Patient) resources.

Operations 4

GET /api/v1/Patient/$export Start FHIR STU3 data export job for the specified group identifier and resource type(s) #
GET /api/v2/Patient/$export Start FHIR R4 data export job for the specified group identifier and resource type(s) #
GET /Patient Search Patient #
GET /Patient/{id} Read Patient #

Work with this as data

Every API 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 apis

7 MCP tools reach this
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/centers-for-medicare-and-medicaid-services-patient-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

cms-patient-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Cms Patient API
  version: '1.0'
  description: 'Operations tagged patient across 2 of this provider''s published API definitions: cms-bcda-openapi.yml, cms-patient-api-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.bluebutton.cms.gov/v2/fhir
  description: Blue Button 2.0 production FHIR server
- url: https://sandbox.bluebutton.cms.gov/v2/fhir
  description: Blue Button 2.0 sandbox FHIR server
tags:
- name: patient
paths:
  /api/v1/Patient/$export:
    get:
      tags:
      - patient
      summary: Start FHIR STU3 data export job for the specified group identifier and resource type(s)
      description: "Initiates a job to collect data from the Beneficiary FHIR Data API for your ACO.  \n\nIf used when specifying `_since`: all claims data which has been updated since the specified date will be returned for beneficiaries which have been attributed to the ACO since before the specified date.\n\n"
      operationId: bulkPatientRequest
      parameters:
      - name: _type
        in: query
        description: Resource types requested
        style: form
        explode: false
        schema:
          type: array
          items:
            type: string
          x-go-name: ResourceType
        x-go-name: ResourceType
      - name: _since
        in: query
        description: Only include resource versions that were created at or after the given instant in time.  Format of string must align with the FHIR Instant datatype (i.e., `2020-02-13T08:00:00.000-05:00`)
        schema:
          type: string
          x-go-name: DateTime
        x-go-name: DateTime
      - name: Prefer
        in: header
        required: true
        schema:
          type: string
          enum:
          - respond-async
      responses:
        '202':
          description: 'A data export job has been started successfully. '
          headers:
            Content-Location:
              description: Returns a URI to the jobs status endpoint, along with the job id. `/jobs/<jobId>`
              schema:
                type: string
          content: {}
        '400':
          description: Malformed request
          content:
            application/fhir+json:
              schema:
                $ref: '#/components/schemas/OperationOutcomeResponse'
        '401':
          description: Unauthorized. The provided credentials are invalid for the requested resource.
          content: {}
        '429':
          description: Too many requests. A bulk export job of this resource type is already in progress for the ACO.
          content: {}
        '500':
          description: 'Internal Server Error. '
          content:
            application/fhir+json:
              schema:
                $ref: '#/components/schemas/OperationOutcomeResponse'
      security:
      - bearer_token: []
  /api/v2/Patient/$export:
    get:
      tags:
      - patient
      summary: Start FHIR R4 data export job for the specified group identifier and resource type(s)
      description: "Initiates a job to collect data from the Beneficiary FHIR Data API for your ACO.  \n\nIf used when specifying `_since`: all claims data which has been updated since the specified date will be returned for beneficiaries which have been attributed to the ACO since before the specified date.\n\n"
      operationId: bulkPatientRequestv2
      parameters:
      - name: _type
        in: query
        description: Resource types requested
        style: form
        explode: false
        schema:
          type: array
          items:
            type: string
          x-go-name: ResourceType
        x-go-name: ResourceType
      - name: _since
        in: query
        description: Only include resource versions that were created at or after the given instant in time.  Format of string must align with the FHIR Instant datatype (i.e., `2020-02-13T08:00:00.000-05:00`)
        schema:
          type: string
          x-go-name: DateTime
        x-go-name: DateTime
      - name: Prefer
        in: header
        required: true
        schema:
          type: string
          enum:
          - respond-async
      responses:
        '202':
          description: 'A data export job has been started successfully. '
          headers:
            Content-Location:
              description: Returns a URI to the jobs status endpoint, along with the job id. `/jobs/<jobId>`
              schema:
                type: string
          content: {}
        '400':
          description: Malformed request
          content:
            application/fhir+json:
              schema:
                $ref: '#/components/schemas/OperationOutcomeResponse'
        '401':
          description: Unauthorized. The provided credentials are invalid for the requested resource.
          content: {}
        '429':
          description: Too many requests. A bulk export job of this resource type is already in progress for the ACO.
          content: {}
        '500':
          description: 'Internal Server Error. '
          content:
            application/fhir+json:
              schema:
                $ref: '#/components/schemas/OperationOutcomeResponse'
      security:
      - bearer_token: []
  /Patient:
    get:
      operationId: searchPatient
      summary: Search Patient
      description: Returns the authenticated Medicare beneficiary as a FHIR Patient resource.
      tags:
      - patient
      responses:
        '200':
          description: A FHIR Bundle of Patient resources.
          content:
            application/fhir+json:
              schema:
                $ref: '#/components/schemas/FHIRBundle'
        '401':
          $ref: '#/components/responses/Unauthorized'
      security:
      - oauth2: []
    servers:
    - url: https://api.bluebutton.cms.gov/v2/fhir
      description: Blue Button 2.0 production FHIR server
    - url: https://sandbox.bluebutton.cms.gov/v2/fhir
      description: Blue Button 2.0 sandbox FHIR server
  /Patient/{id}:
    get:
      operationId: readPatient
      summary: Read Patient
      description: Returns a single Patient resource by ID.
      tags:
      - patient
      parameters:
      - name: id
        in: path
        required: true
        description: FHIR Patient resource ID.
        schema:
          type: string
      responses:
        '200':
          description: A FHIR Patient resource.
          content:
            application/fhir+json:
              schema:
                $ref: '#/components/schemas/FHIRResource'
        '404':
          $ref: '#/components/responses/NotFound'
      security:
      - oauth2: []
    servers:
    - url: https://api.bluebutton.cms.gov/v2/fhir
      description: Blue Button 2.0 production FHIR server
    - url: https://sandbox.bluebutton.cms.gov/v2/fhir
      description: Blue Button 2.0 sandbox FHIR server
components:
  schemas:
    OperationOutcomeResponse:
      type: object
      properties:
        Issue:
          type: object
          required:
          - Severity
          - Code
          - Diagnostics
          properties:
            Severity:
              description: 'Severity of the outcome: fatal | error | warning | information'
              type: string
            Code:
              description: Error or warning code
              type: string
            Diagnostics:
              description: Additional diagnostic information about the issue
              type: string
      x-go-package: github.com/CMSgov/bcda-app/bcda/models
    FHIRBundle:
      type: object
      description: A FHIR R4 Bundle resource wrapping a collection of resources.
      properties:
        resourceType:
          type: string
          const: Bundle
        type:
          type: string
        total:
          type: integer
        entry:
          type: array
          items:
            type: object
            additionalProperties: true
      additionalProperties: true
    FHIRResource:
      type: object
      description: A generic FHIR R4 resource.
      properties:
        resourceType:
          type: string
        id:
          type: string
      additionalProperties: true
  responses:
    Unauthorized:
      description: Authentication credentials are missing or invalid.
      content:
        application/fhir+json:
          schema:
            $ref: '#/components/schemas/FHIRResource'
    NotFound:
      description: The requested resource was not found.
      content:
        application/fhir+json:
          schema:
            $ref: '#/components/schemas/FHIRResource'
  securitySchemes:
    basic_auth:
      type: http
      scheme: basic
    bearer_token:
      type: apiKey
      description: The Group and Patient endpoints require a Bearer Token. 1) Put your credentials in Basic Authentication, 2) Request a bearer token from /auth/token, 3) Put "Bearer {TOKEN}" in this field (no quotes) using the bearer token retrieved in step 2
      name: Authorization
      in: header
    oauth2:
      type: oauth2
      description: OAuth 2.0 authorization code flow used by Medicare beneficiaries to grant access to a third-party application.
      flows:
        authorizationCode:
          authorizationUrl: https://api.bluebutton.cms.gov/v2/o/authorize/
          tokenUrl: https://api.bluebutton.cms.gov/v2/o/token/
          scopes:
            patient/Patient.read: Read beneficiary Patient resource.
            patient/Coverage.read: Read beneficiary Coverage resources.
            patient/ExplanationOfBenefit.read: Read beneficiary claims.
externalDocs:
  description: CMS Blue Button 2.0 API Documentation
  url: https://bluebutton.cms.gov/api-documentation/
x-refined-from:
- cms-bcda-openapi.yml
- cms-patient-api-openapi.yml