CMS PFS Look-Up Tool: How It Works, Limits and Alternatives

How the CMS PFS Look-Up Tool works, its limits (no ZIP input, five-code lists), whether CMS has a fee schedule API, and how to check any rate against CMS.

Updated CMS RVU26D10 min read

Soft clay still life of a large magnifying glass with a forest-green rim leaning on a small fan of blank index cards, beside a little folded map with two pins, on a warm off-white background.
On this page 7 sections
  1. How the CMS PFS Look-Up Tool works
  2. Where it falls short for day-to-day billing
  3. Is there a CMS API for physician fee schedule rates?
  4. CMS lookup or a third-party site: what's the difference?
  5. How to check a FeeBase number against CMS
  6. For software: the FeeBase API
  7. FAQ

The CMS PFS Look-Up Tool is CMS's free search of the Medicare Physician Fee Schedule: after you accept an AMA CPT license, it shows national and locality payment amounts, RVUs, GPCIs and payment policy indicators for a year you choose. It's built for occasional manual lookups, so you pick a MAC and payment locality by name rather than entering a ZIP code, a code list holds up to 5 codes, and history means choosing a different year rather than a date of service.

If you need a rate at a ZIP, a whole code list priced in one pass, or rates inside your own software, FeeBase's free Medicare reimbursement rate lookup prices codes at a ZIP and date of service from the same CMS files and shows the file row behind each number. For software, the FeeBase API starts at $49/month.

Key takeaways

  • The Look-Up Tool is free, but you must accept an AMA license that limits use to Medicare, Medicaid or other CMS programs and prohibits commercial use of CPT.
  • It has no ZIP field. You choose a MAC and locality by name, or pull all MACs and match locality codes yourself.
  • Single code, a list of up to 5 codes, or a range. CMS's two help pages disagree on how big a range can be.
  • It doesn't display MAC-priced codes, Part B non-payable codes or multiple procedure payment reductions.
  • CMS has no API that returns a physician fee schedule amount for a code and ZIP. The "CMS API" often suggested, the PPL API, covers hospital outpatient and ASC national averages.
  • Any tool built on CMS's RVU, GPCI and conversion factor files returns the same number. Check one against the other by matching year, locality, setting and modifier.

How the CMS PFS Look-Up Tool works

The tool lives at cms.gov/medicare/physician-fee-schedule/search. CMS's Quick Reference Search Guide walks through the same sequence every search follows:

  1. Accept the license. Click "Begin Search", then "Accept" on the AMA's CPT End User Point and Click Agreement. You can't search without it.
  2. Choose the PFS year. Each year is searched separately.
  3. Choose the type of information. Pricing Information, Payment Policy Indicators, Relative Value Units (RVUs), Geographic Practice Cost Index (GPCI), or All.
  4. Enter HCPCS criteria. A single code, a list of up to 5 codes, or a range from a starting to an ending code.
  5. Pick a modifier. Global, 26 (professional component), 53, TC (technical component), or All Modifiers. CMS suggests All Modifiers if you're unsure.
  6. Pick a MAC option. National Payment Amount, Specific MAC, Specific Locality, or All MACs. For a specific locality, you start typing the name of the region or state and choose from the list.
  7. Search Fees. Results can be saved with "Download CSV", and "Copy link" copies a link to the search.

How big a range can be depends on which CMS page you read. CMS's Sample PFS Searches page says you can search up to 300 codes at a time in a range. The Quick Reference Search Guide gives no maximum and recommends a small range, because large ranges take longer to load. If a large range stalls, split it.

Where it falls short for day-to-day billing

CMS's tool overview says it covers "more than 10,000 services". The limits below come from CMS's own help pages and the tool as it renders on October 10, 2026. They matter most when you're pricing a claim, a fee sheet or a contract, not when you're checking one code.

What you need What the Look-Up Tool does
A rate for a ZIP code No ZIP input. You choose a MAC and payment locality by name; it doesn't map a ZIP to a locality for you. "All MACs" covers the country but doesn't give locality names, so you need the codes.
A list of codes A list holds up to 5 codes. Longer sets mean several searches or a code range.
The rate on a date of service You choose the PFS year; there's no date-of-service input.
Contractor-priced and non-payable codes Not displayed: the tool "doesn't display Medicare Administrative Contractor (MAC) priced codes or Medicare Part B non-payable codes".
Multiple procedure reductions Not displayed: CMS "can't display multiple procedures payment reductions (MPPRs) since too many combinations of HCPCS codes exist".
A spreadsheet Supported: "Download CSV" exports the results, and "Copy link" shares the search.
Use in a commercial product The license authorizes use "internally within your organization", limits use to "Medicare, Medicaid or other programs administered by CMS" and prohibits "making any commercial use of CPT".

Choosing a locality by name is the step that trips most people. CMS maps ZIP codes to payment localities in a separate quarterly file, and some ZIPs need the ZIP+4 because they fall in more than one locality:

109payment localities in CMS's October 2026 GPCI file
42,957five-digit ZIP rows in CMS's Q4 2026 crosswalk
1,087,640ZIP+4 rows for ZIPs split across localities

If you don't know which locality your office is in, browse every Medicare payment locality or let a ZIP-based lookup resolve it for you.

Is there a CMS API for physician fee schedule rates?

No CMS API returns a Medicare Physician Fee Schedule allowed amount for a code and a ZIP. When people say "the CMS API", they usually mean one of three things, and each answers a different question:

CMS Procedure Price Lookup (PPL) API pfs.data.cms.gov query API
What it is National average payments for about 3,900 procedures in hospital outpatient departments and ambulatory surgical centers An open JSON query API over CMS's PFS data catalog, the RVU and GPCI tables the Look-Up Tool displays
Access AMA license plus a CMS-issued API key; keys expire every 60 days Public, no key
Physician fee schedule pricing No. National averages, no locality, no ZIP Table rows (RVUs, indicators, conversion factor, GPCIs), not a price
ZIP to locality No No crosswalk dataset
Date-of-service history Not described One dataset per year, updated in place

The PPL API. CMS's PPL API page says "To use the PPL API, you must have an AMA license and an API key", that CMS reviews key requests, and that "API keys expire every 60 days". It covers "approximately 3,900 medical procedures" in ambulatory surgical centers and hospital outpatient departments as national averages. It doesn't mention the Physician Fee Schedule, so it can't price a physician service at your locality.

pfs.data.cms.gov. CMS's PFS data catalog is public-domain data with an open, keyless query API. Each year has an Indicators dataset (RVUs, payment indicators and the conversion factor) and a Localities dataset (GPCIs by MAC and locality). It returns rows, not prices: you still choose the facility or non-facility practice expense RVU, apply the GPCIs and the right conversion factor, and map a ZIP to a locality from a separate CMS file. For 2026 the Indicators dataset lists each code twice, once per conversion factor (33.4009 and 33.5675), distinguished only by that value, so you need to know which is the non-QP and which the QP factor. And because the catalog keeps one Indicators dataset per year and updates it in place, it answers "what is the rate now", not "what was it on the date of service".

developer.cms.gov. The third place people look, CMS's developer portal, lists the AB2D, BCDA, Blue Button 2.0, Data at the Point of Care, Finder, Marketplace, PPL and QPP Submissions APIs. None of them is a physician fee schedule pricing API.

If you want to build pricing on CMS's raw files yourself, how to build a Medicare fee schedule API lists the files, the formula and what tends to break.

CMS lookup or a third-party site: what's the difference?

The number shouldn't be one of the differences. Medicare's allowed amount is (work RVU × work GPCI + PE RVU × PE GPCI + MP RVU × MP GPCI) × conversion factor, and every tool that reads CMS's RVU, GPCI and conversion factor files for the same year, locality and setting gets the same result. "Use CMS for the authoritative rate and a third-party site for speed" is a false choice when the third-party number is computed from CMS's files and shows you which ones.

Here's a live rate from FeeBase. Enter a ZIP to see the local amount; the label underneath names the CMS release it came from:

Medicare rate · 99214

Office visit, established patient, moderate complexity

Office or facility?

Work RVUs
1.92
Total RVUs
4.06
Global days
XXX

National rate · 2026

$135.61

Office setting, before claim adjustments.

See every locality for 99214 →Billed by an NP, PA or therapist? →

What does differ between FeeBase and the Look-Up Tool is how you get to the number:

  • Inputs. FeeBase takes a ZIP or ZIP+4 and a date of service. It maps the ZIP to a locality with CMS's quarterly crosswalk for that date, and asks for the four-digit extension when a ZIP is split across localities instead of guessing.
  • Releases. Rates come from the CMS release in effect on the date of service, with Physician Fee Schedule and ZIP-to-locality releases from January 2013 onward, including mid-year corrections.
  • Coverage. Lab codes that the PFS doesn't price are priced from the Clinical Laboratory Fee Schedule. Contractor-priced and non-payable codes show a status and the reason, never a zero. The API also handles anesthesia time units and provider-type percentages.
  • Traceability. Open any row to see the RVUs, GPCIs and conversion factor, and the line in the CMS relative value, GPCI and ZIP files each one came from.
  • Code lists. Paste a whole code list, price it at one ZIP and date, and export CSV.

The Look-Up Tool remains a good fit for payment policy indicators across a code range or a view of every MAC at once. For what FeeBase covers, see data coverage.

How to check a FeeBase number against CMS

Comparing two tools means comparing the same inputs. When numbers differ, one of these usually doesn't match:

  1. Same year and quarter. The Look-Up Tool searches a PFS year; FeeBase uses the release in effect on your date of service and shows its label (for example RVU26D). A mid-year correction can change a code's RVUs.
  2. Same locality. FeeBase shows the locality it mapped your ZIP to. Pick that exact locality in the Look-Up Tool's Specific Locality search.
  3. Same setting. Compare non-facility with non-facility, facility with facility. See facility vs non-facility.
  4. Same modifier. Global, 26 and TC are separate rows for codes with professional and technical components.
  5. Same conversion factor. From 2026 there are two. Compare non-QP with non-QP; see QP vs non-QP.
  6. Check the inputs, not just the total. Match the RVUs and GPCIs line by line. FeeBase shows the CMS file and line for each, so you can open the same file yourself.

For software: the FeeBase API

If the rates need to live in your billing system, estimator or analytics, the FeeBase API returns the same calculation as JSON: GET /v1/rates/{code} with a ZIP or locality, setting, date of service and QP status, with the CMS file rows behind each rate available on request. Plans start at $49/month; there's no free API tier. The API docs cover every endpoint, and the CMS reference index links the underlying releases.

Sources: CMS, Search the Physician Fee Schedule (cms.gov/medicare/physician-fee-schedule/search) and PFS Look-Up Tool Overview (cms.gov/medicare/physician-fee-schedule/search/overview); CMS, PFS Quick Reference Search Guide (cms.gov/help/pfs-quick-reference-search-guide); CMS, Sample PFS Searches (cms.gov/help/sample-pfs-searches); AMA License for Use of Current Procedural Terminology, End User Point and Click Agreement (as shown in the Look-Up Tool); CMS, Procedure Price Lookup API (developer.cms.gov/ppl-api) and CMS Developer portal (developer.cms.gov); CMS PFS data catalog (pfs.data.cms.gov); CMS PFS Relative Value Files, RVU26D (rvu26d-updated-08-26-2026.zip); CMS Zip Code to Carrier Locality File, updated August 13, 2026. Verified October 10, 2026. FeeBase is independent and not affiliated with or endorsed by CMS.

FAQ

Is the CMS physician fee schedule lookup free?

Yes. The PFS Look-Up Tool on cms.gov is free, but you must accept the AMA's CPT license before you can search. That license limits use to Medicare, Medicaid or other CMS programs, internally within your organization.

Can I look up Medicare rates by ZIP code on CMS?

Not directly. The Look-Up Tool asks you to choose a MAC and payment locality by name; it doesn't take a ZIP code. CMS publishes a separate ZIP-to-locality file you can use to find the locality first. FeeBase's free rate lookup takes a ZIP and does the mapping for you.

Does the PFS Look-Up Tool have an API?

CMS doesn't describe one for the tool. The data behind it is queryable through the open pfs.data.cms.gov API, which returns RVU and GPCI rows rather than prices. The PPL API on developer.cms.gov is a different product covering hospital outpatient and ASC national averages.

Why doesn't my number match the CMS lookup?

Usually because one input differs: a different year or quarterly revision, a different locality, facility vs non-facility, a modifier (26 or TC), or the QP vs non-QP conversion factor from 2026. Match those and compare the RVUs and GPCIs line by line.

Do I have to accept the AMA license?

Yes, to use the Look-Up Tool. CMS's Quick Reference Search Guide says to click Accept to show you've read and agree to the licensing agreement before the search page opens.

Did this answer your question about CMS PFS Look-Up Tool: How It Works, Limits and Alternatives?

Tell us what you were actually trying to work out. We’ll answer you directly, or build the page that does.