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

MethodPathDescription
GET/v1/cvx/:codeSingle CVX lookup
POST/v1/cvx/_batchBatch lookup (up to 100)
GET/v1/cvx/searchSearch vaccines by name, status, and type
GET/v1/cvx/shapesList 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

Request
Node.js
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);
Response26 lines JSON
JSON
{
  "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

CodeVaccine
208Pfizer-BioNTech COVID-19
207Moderna COVID-19
140Influenza, seasonal
03MMR
21Varicella

Batch Lookup

Look up multiple CVX codes in a single request (up to 100):

Look up multiple vaccines

Request
Node.js
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);
Response37 lines JSON
JSON
{
  "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:

ShapeDescription
compactCode, 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

FieldTypeDescription
ndcstringHyphenated NDC package code
ndc11string11-digit normalized NDC, no hyphens
product_ndcstringProduct-level NDC (labeler + product, no package segment)
trade_namestring | nullBrand name for this package
manufacturerstring | nullLabeler name
begin_datestring | nullFirst date this NDC was valid — YYYYMMDD
end_datestring | nullLast date this NDC was valid — YYYYMMDD
sourcestringOrigin 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 lookups
  • cvx.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.

© 2026 FHIRfly.io LLC. All rights reserved.