Veterans Affairs Medical Records API
The Medical Records API from Veterans Affairs — 30 operation(s) for medical records.
The Medical Records API from Veterans Affairs — 30 operation(s) for medical records.
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/va-medical-records-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:
version: 1.0.0
title: VA My Health Medical Records API
license:
name: CC0 1.0 Universal
description: 'The Department of Veterans Affairs My Health APIs. All paths are relative to https://api.va.gov/my_health.
'
servers:
- url: https://api.va.gov/my_health
security:
- CookieAuth: []
tags:
- name: Medical Records
paths:
/v1/medical_records/allergies:
get:
description: List patient allergies
operationId: list_allergies
responses:
'200':
content:
application/json:
schema:
type: object
description: 'FHIR Bundle containing AllergyIntolerance objects. The schema can be found at <a href=''https://department-of-veterans-affairs.github.io/mhv-fhir-phr-mapping/StructureDefinition-VA.MHV.PHR.allergyIntolerance.html''>Allergies</a>.
'
description: OK
'401':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: Unauthorized
'403':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: Forbidden
summary: /v1/medical_records/allergies
tags:
- Medical Records
/v1/medical_records/allergies/{id}:
get:
description: Get a patient allergy
operationId: get_allergy
responses:
'200':
content:
application/json:
schema:
type: object
description: 'FHIR AllergyIntolerance. The schema can be found at <a href=''https://department-of-veterans-affairs.github.io/mhv-fhir-phr-mapping/StructureDefinition-VA.MHV.PHR.allergyIntolerance.html''>Allergies</a>.
'
description: OK
'401':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: Unauthorized
'403':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: Forbidden
summary: /v1/medical_records/allergies/{id}
tags:
- Medical Records
/v1/medical_records/bbmi_notification/status:
get:
description: Show the current user's preference setting for BBMI email notifications.
operationId: bbmi_notification_status
responses:
'200':
content:
application/json:
schema:
type: object
properties:
flag:
type: boolean
description: Indicates whether the BBMI email preference is enabled (`true`) or disabled (`false`).
example:
flag: true
description: OK
'401':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: Unauthorized
'403':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: Forbidden
summary: /v1/medical_records/bbmi_notification/status
tags:
- Medical Records
/v1/medical_records/ccd/generate:
get:
description: Generate a Continuity of Care Document for a patient to later download.
operationId: generate_ccd
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: ./schemas/MedicalRecordsCcdGenerateStatus.yml
'401':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: Unauthorized
'403':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: Forbidden
summary: /v1/medical_records/ccd/generate
tags:
- Medical Records
/v1/medical_records/ccd/download.{format}:
get:
summary: Download Continuity of Care Document (CCD)
description: 'Download the Continuity of Care Document (CCD) specified by the `date` parameter.
The response format is indicated by the path extension — for example:
- `/v1/medical_records/ccd/download.xml`
- `/v1/medical_records/ccd/download.html`
- `/v1/medical_records/ccd/download.pdf`
If the format extension is not included, the default is XML.
'
operationId: download_ccd
parameters:
- name: date
in: query
required: true
description: 'Date of the desired CCD, as pulled verbatim from the `generate` endpoint response.
'
schema:
type: string
format: date
- name: format
in: path
description: 'The format of the returned CCD document. Can be `xml`, `html`, or `pdf`.
'
schema:
type: string
enum:
- xml
- html
- pdf
default: xml
responses:
'200':
description: Successful download
content:
application/xml:
schema:
type: string
description: 'XML-formatted Continuity of Care Document (CCD).
'
text/html:
schema:
type: string
description: 'HTML-formatted Continuity of Care Document (CCD).
'
application/pdf:
schema:
type: string
format: binary
description: 'PDF-formatted Continuity of Care Document (CCD).
'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
'403':
description: Forbidden
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
tags:
- Medical Records
/v1/medical_records/clinical_notes:
get:
description: List patient clinical notes
operationId: list_clinical_notes
responses:
'200':
content:
application/json:
schema:
type: object
description: 'FHIR Bundle containing DocumentReference objects. The schema can be found at <a href=''https://department-of-veterans-affairs.github.io/mhv-fhir-phr-mapping/StructureDefinition-VA.MHV.PHR.note.html''>Care Summaries and Notes</a>.
'
description: OK
'401':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: Unauthorized
'403':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: Forbidden
summary: /v1/medical_records/clinical_notes
tags:
- Medical Records
/v1/medical_records/clinical_notes/{id}:
get:
description: Get a clinical note
operationId: get_clinical_note
responses:
'200':
content:
application/json:
schema:
type: object
description: 'FHIR DocumentReference. The schema can be found at <a href=''https://department-of-veterans-affairs.github.io/mhv-fhir-phr-mapping/StructureDefinition-VA.MHV.PHR.note.html''>Care Summaries and Notes</a>.
'
description: OK
'401':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: Unauthorized
'403':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: Forbidden
summary: /v1/medical_records/clinical_notes/{id}
tags:
- Medical Records
/v1/medical_records/conditions:
get:
description: List patient health conditions
operationId: list_conditions
responses:
'200':
content:
application/json:
schema:
type: object
description: 'FHIR Bundle containing Condition objects. The schema can be found at <a href=''https://department-of-veterans-affairs.github.io/mhv-fhir-phr-mapping/StructureDefinition-VA.MHV.PHR.condition.html''>Health Conditions</a>.
'
description: OK
'401':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: Unauthorized
'403':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: Forbidden
summary: /v1/medical_records/conditions
tags:
- Medical Records
/v1/medical_records/conditions/{id}:
get:
description: Get a patient health condition
operationId: get_condition
responses:
'200':
content:
application/json:
schema:
type: object
description: 'FHIR Condition. The schema can be found at <a href=''https://department-of-veterans-affairs.github.io/mhv-fhir-phr-mapping/StructureDefinition-VA.MHV.PHR.condition.html''>Health Conditions</a>.
'
description: OK
'401':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: Unauthorized
'403':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: Forbidden
summary: /v1/medical_records/conditions/{id}
tags:
- Medical Records
/v1/medical_records/imaging:
get:
description: Get a list of MHV radiology reports from CVIX for the current user. These results do not include VIA reports.
operationId: list_imaging_studies
responses:
'200':
content:
application/json:
schema:
$ref: ./schemas/MedicalRecordsImagingStudyList.yml
description: OK
'401':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: Unauthorized
'403':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: Forbidden
summary: /v1/medical_records/imaging
tags:
- Medical Records
/v1/medical_records/imaging/status:
get:
description: Get the statuses of all available CVIX study jobs for the current user.
operationId: list_study_job_statuses
responses:
'200':
content:
application/json:
schema:
type: array
items:
$ref: ./schemas/MedicalRecordsStudyJobStatus.yml
description: OK
'401':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: Unauthorized
'403':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: Forbidden
summary: /v1/medical_records/imaging
tags:
- Medical Records
/v1/medical_records/imaging/{studyId}/dicom:
get:
description: Returns a ZIP file containing DICOM images for the specified study.
operationId: download_dicom
parameters:
- name: studyId
in: path
required: true
description: Unique identifier for the imaging study
schema:
type: string
responses:
'200':
content:
application/zip:
schema:
type: string
format: binary
description: OK
'401':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: Unauthorized
'403':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: Forbidden
summary: /v1/medical_records/imaging/{studyId}/dicom
tags:
- Medical Records
/v1/medical_records/imaging/{studyId}/images/{seriesId}/{imageId}:
get:
description: Returns a JPG image for the provided study, series, and image.
operationId: download_image
parameters:
- name: studyId
in: path
required: true
description: Unique identifier for the imaging study
schema:
type: string
- name: seriesId
in: path
required: true
description: Study-scoped identifier for the image series
schema:
type: string
- name: imageId
in: path
required: true
description: Study-scoped identifier for the image within the series
schema:
type: string
responses:
'200':
content:
image/jpeg:
schema:
type: string
format: binary
description: OK
'401':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: Unauthorized
'403':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: Forbidden
summary: /v1/medical_records/imaging/{studyId}/images/{seriesId}/{imageId}
tags:
- Medical Records
/v1/medical_records/imaging/{studyId}/request:
get:
description: Request that MHV download an imaging study from CVIX. This will initiate the transfer of the images into MHV for later retrieval from vets-api as DICOM or JPGs.
operationId: request_study
responses:
'200':
content:
application/json:
schema:
$ref: ./schemas/MedicalRecordsStudyJobStatus.yml
description: OK
'400':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: Bad Request
'401':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: Unauthorized
'403':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: Forbidden
'404':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: Not Found
summary: /v1/medical_records/imaging/{studyId}/request
tags:
- Medical Records
/v1/medical_records/imaging/{studyId}/images:
get:
description: Get a list of images for the provided CVIX radiology study
operationId: list_images
responses:
'200':
content:
application/json:
schema:
type: array
items:
type: string
description: Filename representing an image in a specific series.
example:
- Series 01 - Image 01.jpg
- Series 02 - Image 01.jpg
- Series 03 - Image 01.jpg
description: OK
'400':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: Bad Request
'401':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: Unauthorized
'403':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: Forbidden
'404':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: Not Found
summary: /v1/medical_records/imaging/{studyId}/images
tags:
- Medical Records
/v1/medical_records/labs_and_tests:
get:
description: 'List patient labs and tests. This API call runs three separate backend calls, then merges the results. It returns results for the Chemistry/Hematology, EKG, Microbiology, Pathology, and Radiology domains.
'
operationId: list_labs_and_tests
responses:
'200':
content:
application/json:
schema:
type: object
description: 'FHIR Bundle containing DiagnosticReport and DocumentReference objects. The schemas can be found at <a href=''https://department-of-veterans-affairs.github.io/mhv-fhir-phr-mapping/StructureDefinition-VA.MHV.PHR.chReport.html''>Chemistry/Hematology</a>, <a href=''https://department-of-veterans-affairs.github.io/mhv-fhir-phr-mapping/StructureDefinition-VA.MHV.PHR.ecg.html''>EKG</a>, <a href=''https://department-of-veterans-affairs.github.io/mhv-fhir-phr-mapping/StructureDefinition-VA.MHV.PHR.labReport.html''>Microbiology and Pathology</a>, <a href=''https://department-of-veterans-affairs.github.io/mhv-fhir-phr-mapping/StructureDefinition-VA.MHV.PHR.imaging.html''>Radiology</a>
'
description: OK
'401':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: Unauthorized
'403':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: Forbidden
summary: /v1/medical_records/labs_and_tests
tags:
- Medical Records
/v1/medical_records/labs_and_tests/{id}:
get:
description: 'Get a patient labs and tests record of type DiagnosticReport.
'
operationId: get_labs_and_tests_diagrep
responses:
'200':
content:
application/json:
schema:
type: object
description: 'FHIR DiagnosticReport. The schemas can be found at <a href=''https://department-of-veterans-affairs.github.io/mhv-fhir-phr-mapping/StructureDefinition-VA.MHV.PHR.chReport.html''>Chemistry/Hematology</a>, <a href=''https://department-of-veterans-affairs.github.io/mhv-fhir-phr-mapping/StructureDefinition-VA.MHV.PHR.labReport.html''>Microbiology and Pathology</a> <a href=''https://department-of-veterans-affairs.github.io/mhv-fhir-phr-mapping/StructureDefinition-VA.MHV.PHR.ecg.html''>EKG</a>, <a href=''https://department-of-veterans-affairs.github.io/mhv-fhir-phr-mapping/StructureDefinition-VA.MHV.PHR.imaging.html''>Radiology</a>
'
description: OK
'401':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: Unauthorized
'403':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: Forbidden
summary: /v1/medical_records/labs_and_tests/{id}
tags:
- Medical Records
/v1/medical_records/military_service:
get:
description: Get the current user's military service
operationId: get_military_service
responses:
'200':
content:
application/json:
schema:
type: string
description: A long string containing the user's military service report
description: OK
'401':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: Unauthorized
'403':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: Forbidden
summary: /v1/medical_records/military_service
tags:
- Medical Records
/v1/medical_records/patient:
get:
description: Get the current user's patient account information, including a list of treatment facilities.
operationId: get_patient
responses:
'200':
content:
application/json:
schema:
type: object
description: 'The returned object is a <a target="_blank" href=''https://github.com/department-of-veterans-affairs/mhv-np-common-api/blob/development/src/main/java/gov/va/med/mhv/common/api/dto/PatientDTO.java''>PatientDTO object</a>.
'
description: OK
'401':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: Unauthorized
'403':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: Forbidden
summary: /v1/medical_records/patient
tags:
- Medical Records
/v1/medical_records/patient/demographic:
get:
description: Get the current user's self-entered demographic information.
operationId: get_patient_demographic
responses:
'200':
content:
application/json:
schema:
type: object
description: 'The returned object is a <a target="_blank" href=''https://github.com/department-of-veterans-affairs/mhv-np-bluebutton-api/blob/development/mhv-bluebutton-portal-data-jpa/src/main/java/gov/va/med/mhv/bluebutton/model/phr/PhrDemographics.java''>PhrDemographics object</a>.
'
description: OK
'401':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: Unauthorized
'403':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: Forbidden
summary: /v1/medical_records/patient/demographic
tags:
- Medical Records
/v1/medical_records/radiology:
get:
description: Get the current user's non-FHIR-ized list of radiology reports from VIA (through MHV).
operationId: get_mhv_radiology
responses:
'200':
content:
application/json:
schema:
$ref: ./schemas/MedicalRecordsPhrRadiologyList.yml
description: OK
'401':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: Unauthorized
'403':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: Forbidden
summary: /v1/medical_records/radiology
tags:
- Medical Records
/v1/medical_records/self_entered:
get:
description: Get the current user's self-entered information.
operationId: get_patient
responses:
'200':
content:
application/json:
schema:
type: object
properties:
responses:
type: array
description: 'A list of self-entered health information objects. Each object will be a self-entered type, such as:
- <a target="_blank" href=''https://github.com/department-of-veterans-affairs/mhv-np-getcare-api/blob/development/mhv-getcare-portal-api/src/main/java/gov/va/med/mhv/getcare/common/dto/HealthInsuranceDTO.java''>HealthInsuranceDTO</a>
- <a target="_blank" href=''https://github.com/department-of-veterans-affairs/mhv-np-health-history-api/blob/development/mhv-health-history-portal-api/src/main/java/gov/va/med/mhv/health/dto/MilitaryHistoryDTO.java''>MilitaryHistoryDTO</a>
- <a target="_blank" href=''https://github.com/department-of-veterans-affairs/mhv-np-health-history-api/blob/development/mhv-health-history-portal-api/src/main/java/gov/va/med/mhv/health/dto/ImmunizationDTO.java''>ImmunizationDTO</a>
'
items:
type: object
properties:
id:
type: string
type:
type: string
source_date:
type: string
format: date
note:
type: string
errors:
type: array
description: 'An array of errors encountered while retrieving the records, if any.
Each object may include a code and a human-readable message.
'
items:
type: object
properties:
code:
type: string
message:
type: string
required:
- responses
- errors
description: OK
'401':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: Unauthorized
'403':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: Forbidden
summary: /v1/medical_records/self_entered
tags:
- Medical Records
/v1/medical_records/session:
get:
description: Creates a session to the upstream MHV APIs. Note that any MR API call will do this as well. This endpoint ONLY creates a session.
operationId: post_session
responses:
'204':
description: No Content
'401':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: Unauthorized
'403':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: Forbidden
summary: /v1/medical_records/session
tags:
- Medical Records
/v1/medical_records/session/status:
get:
description: Returns the PHR Refresh status for the current user.
operationId: get_session_status
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: ./schemas/MedicalRecordsPatientExtractStatus.yml
'401':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: Unauthorized
'403':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: Forbidden
summary: /v1/medical_records/session/status
tags:
- Medical Records
/v1/medical_records/vaccines:
get:
description: List patient vaccines
operationId: list_vaccines
responses:
'200':
content:
application/json:
schema:
type: object
description: 'FHIR Bundle containing Immunization objects. The schema can be found at <a href=''https://department-of-veterans-affairs.github.io/mhv-fhir-phr-mapping/StructureDefinition-VA.MHV.PHR.immunization.html''>Immunization</a>
'
description: OK
'401':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: Unauthorized
'403':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: Forbidden
summary: /v1/medical_records/vaccines
tags:
- Medical Records
/v1/medical_records/vaccines/{id}:
get:
description: Get a patient vaccine
operationId: get_vaccine
responses:
'200':
content:
application/json:
schema:
type: object
description: 'FHIR Immunization. The schema can be found at <a href=''https://department-of-veterans-affairs.github.io/mhv-fhir-phr-mapping/StructureDefinition-VA.MHV.PHR.immunization.html''>Immunization</a>
'
description: OK
'401':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: Unauthorized
'403':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: Forbidden
summary: /v1/medical_records/vaccines/{id}
tags:
- Medical Records
/v1/medical_records/vitals:
get:
description: List patient vital records
operationId: list_vitals
responses:
'200':
content:
application/json:
schema:
type: object
description: 'FHIR Bundle containing Observation objects. The schema can be found at <a href=''https://department-of-veterans-affairs.github.io/mhv-fhir-phr-mapping/StructureDefinition-VA.MHV.PHR.vitals.html''>Vitals</a>
'
description: OK
'401':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: Unauthorized
'403':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: Forbidden
summary: /v1/medical_records/vitals
tags:
- Medical Records
/v1/medical_records/vitals/{id}:
get:
description: Get a patient vital record
operationId: get_vitals
responses:
'200':
content:
application/json:
schema:
type: object
description: 'FHIR Observation. The schema can be found at <a href=''https://department-of-veterans-affairs.github.io/mhv-fhir-phr-mapping/StructureDefinition-VA.MHV.PHR.vitals.html''>Vitals</a>
'
description: OK
'401':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: Unauthorized
'403':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: Forbidden
summary: /v1/medical_records/vitals/{id}
tags:
- Medical Records
/v2/medical_records/clinical_notes:
get:
description: 'List clinical notes (care summaries and notes) for the current user within a specified date range.
Returns notes from both VistA and Oracle Health sources. Each note includes a `source` field
indicating which system the record originated from.
'
operationId: listClinicalNotesV2
parameters:
- name: start_date
in: query
description: Start date for clinical notes query (format YYYY-MM-DD)
required: false
schema:
type: string
format: date
- name: end_date
in: query
description: End date for clinical notes query (format YYYY-MM-DD)
required: false
schema:
type: string
format: date
- $ref: '#/components/parameters/InflectionHeader'
responses:
'200':
description: Clinical notes list response
content:
application/json:
schema:
$ref: ./schemas/ClinicalNotesResponse.yml
'400':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: Bad Request - Invalid date parameter format
'401':
content:
application/json:
schema:
$ref: ./schemas/Errors.yml
description: Unauthorized
'403':
c
# --- truncated at 32 KB (35 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/va/refs/heads/main/openapi/va-medical-records-api-openapi.yml