CVX API
Look up CVX vaccine codes from the CDC.
Overview
CVX (Vaccine Administered) codes are maintained by the CDC and identify vaccines administered to patients. FHIRfly provides fast lookups against the CDC's CVX code set.
Endpoints
| Method | Path | Description |
|---|---|---|
| GET | /v1/cvx/:code | Single CVX lookup |
| POST | /v1/cvx/_batch | Batch lookup (up to 100) |
| GET | /v1/cvx/search | Search vaccines by name, status, and type |
| GET | /v1/cvx/shapes | List available response shapes |
Searching by vaccine name is usually the entry point when you do not already have a code — see the CVX Search API for parameters, facets, and pagination.
Single Lookup
Look up COVID-19 Moderna vaccine
import { Fhirfly } from "@fhirfly-io/terminology";
const client = new Fhirfly({ apiKey: "YOUR_API_KEY" });
const result = await client.cvx.lookup("207");
console.log(result.data);Response
{
"data": {
"code": "207",
"code_system": "http://hl7.org/fhir/sid/cvx",
"display": "COVID-19, mRNA, LNP-S, PF, 100 mcg/0.5mL dose or 50 mcg/0.25mL dose",
"fhir_coding": {
"code": "207",
"display": "COVID-19, mRNA, LNP-S, PF, 100 mcg/0.5mL dose or 50 mcg/0.25mL dose",
"system": "http://hl7.org/fhir/sid/cvx"
},
"full_vaccine_name": "SARS-COV-2 (COVID-19) vaccine, mRNA, spike protein, LNP, preservative free, 100 mcg/0.5mL dose or 50 mcg/0.25mL dose",
"is_covid_vaccine": true,
"last_updated_by_cdc": "2023-10-24",
"notes": "Original monovalent Moderna adult vaccine. FDA rescinded all doses for US use 4/18/2023. Continue to used to record historic US Moderna vaccines and those administered in non-US locations (includes tradename Spikevax)",
"status": "inactive",
"vaccine_type": "mRNA"
},
"meta": {
"legal": {
"attribution_required": false,
"citation": "CDC National Center for Immunization and Respiratory Diseases. Accessed 2026-01-14 via FHIRfly.",
"license": "public_domain",
"source_name": "CDC Immunization"
}
}
}Common CVX Codes
| Code | Vaccine |
|---|---|
| 208 | Pfizer-BioNTech COVID-19 |
| 207 | Moderna COVID-19 |
| 140 | Influenza, seasonal |
| 03 | MMR |
| 21 | Varicella |
Batch Lookup
Look up multiple CVX codes in a single request (up to 100):
Look up multiple vaccines
import { Fhirfly } from "@fhirfly-io/terminology";
const client = new Fhirfly({ apiKey: "YOUR_API_KEY" });
const result = await client.cvx.lookupMany(["207","208","140"]);
console.log(result.data.results);Response
{
"count": 3,
"results": [
{
"input": "207",
"code": "207",
"status": "ok",
"data": {
"display": "COVID-19, mRNA, Moderna",
"status": "inactive"
}
},
{
"input": "208",
"code": "208",
"status": "ok",
"data": {
"display": "COVID-19, mRNA, Pfizer",
"status": "inactive"
}
},
{
"input": "140",
"code": "140",
"status": "ok",
"data": {
"display": "Influenza, seasonal, injectable",
"status": "active"
}
}
],
"meta": {
"legal": {
"license": "public_domain"
}
}
}Batch with shape=full
When using shape=full on batch requests, the response includes meta.source with provenance information:
POST /v1/cvx/_batch?shape=full
{
"count": 3,
"results": [
{
"input": "207",
"code": "207",
"status": "ok",
"data": { "display": "COVID-19, mRNA, Moderna", "status": "inactive" }
}
],
"meta": {
"source": {
"name": "CDC Immunization",
"url": "https://www2a.cdc.gov/vaccines/iis/iisstandards/vaccines.asp?rpt=cvx",
"version": "monthly",
"fhirfly_updated_at": "2026-03-01T03:00:00Z"
},
"legal": {
"license": "public_domain",
"attribution_required": false
}
}
}
Response Shapes
Control the level of detail in responses with the shape query parameter:
| Shape | Description |
|---|---|
compact | Code, display, status |
standard | + full_vaccine_name, notes, vaccine_type, fhir_coding |
full | + ingest metadata |
# Minimal data
GET /v1/cvx/207?shape=compact
# Standard data (default)
GET /v1/cvx/207?shape=standard
# Full data with provenance
GET /v1/cvx/207?shape=full
See Response Shapes for field details.
NDC Crosswalks
CVX vaccine codes can be enriched with NDC crosswalk data using the include=crosswalks query parameter. When included, the response adds a crosswalks.ndc array linking the vaccine code to specific NDC product codes.
GET /v1/cvx/207?include=crosswalks
{
"data": {
"code": "207",
"display": "COVID-19, mRNA, LNP-S, PF, 100 mcg/0.5mL dose or 50 mcg/0.25mL dose",
"status": "inactive",
"crosswalks": {
"ndc": [
{
"ndc": "80777-0273-15",
"ndc11": "80777027315",
"product_ndc": "80777-273",
"trade_name": "Moderna COVID-19 Vaccine",
"manufacturer": "Moderna US, Inc.",
"begin_date": "20210401",
"end_date": "20230418",
"source": "cdc"
},
{
"ndc": "80777-0100-11",
"ndc11": "80777010011",
"product_ndc": "80777-100",
"trade_name": "Spikevax",
"manufacturer": "Moderna US, Inc.",
"begin_date": "20220401",
"end_date": "20230418",
"source": "cdc"
}
]
}
}
}
Crosswalk fields
| Field | Type | Description |
|---|---|---|
ndc | string | Hyphenated NDC package code |
ndc11 | string | 11-digit normalized NDC, no hyphens |
product_ndc | string | Product-level NDC (labeler + product, no package segment) |
trade_name | string | null | Brand name for this package |
manufacturer | string | null | Labeler name |
begin_date | string | null | First date this NDC was valid — YYYYMMDD |
end_date | string | null | Last date this NDC was valid — YYYYMMDD |
source | string | Origin of the mapping, e.g. cdc |
Dates are YYYYMMDD strings, not ISO 8601. "20210401" is April 1, 2021. Passing
these straight to new Date() will not parse correctly — reformat before converting.
Crosswalk entries do not carry an MVX code. To get the manufacturer's MVX code,
resolve it through the MVX API — for example, manufacturer: "Moderna US, Inc." corresponds to MVX MOD.
This is useful for mapping between vaccine codes and specific drug products, particularly
in claims processing and inventory management workflows. Note that one CVX code commonly
maps to several NDCs, each valid for a different date range and sometimes carrying a
different trade name — CVX 207 above returns both Moderna COVID-19 Vaccine and
Spikevax. When mapping an administered dose, select the entry whose
begin_date/end_date window contains the date of administration.
Required Scopes
cvx.read- Single and batch lookupscvx.search- Search endpoint
See Also
- CVX Search API — Search vaccines by name, status, and type
- MVX API — Vaccine manufacturer codes
- NDC API — Drug product codes referenced by CVX crosswalks
Ready to try it?
Get a free API key and make your first request — free tier, no credit card.
