Quickstart

A code. A location. A clear answer.

Start with a single code

FeeBase turns a procedure code and a little context into a Medicare Physician Fee Schedule amount. Choose a facility or non-facility setting, then add a ZIP or locality for a local rate. Leave location out for the national, geographically unadjusted amount.

Data endpoints require an API key and an active plan. Each successful lookup counts once, including a result whose amount is unavailable. Examples use illustrative amounts.


Connect your account

Create a named API key in your team’s settings. Keep it on your server and send it in the Authorization: Bearer header. You can check your credentials with GET /api/v1/me, which is implemented and does not consume your monthly lookup quota.

Read about authentication.


Request a rate

The rate endpoint is GET /api/v1/rates/{code}. A code and setting are required. The service date defaults to today; qp_status defaults to non_qp. Supply either zip or locality to localize the amount.

Explore the rate reference.

To build a lookup: search for a code, retrieve its facts, resolve a locality, then fetch a single or batch rate. Code sets supply fee-sheet presets, releases support history, utilization supplies historical rankings, and therapy estimates handle timed units and MPPR. Provider pricing uses the same rate resource.


Read the amount

Final USD amounts are integer cents: 15327 means $153.27. An unavailable amount is null, never a substitute zero. Calculation factors that need finer precision use decimal strings.

Rates represent the base participating-physician fee schedule, before claim-level adjustments. They are not patient liability or a guarantee of payment.


Where the numbers come from

Every amount is computed from CMS's own files for the date of service: the Physician Fee Schedule RVU file, the GPCIs and conversion factor in the same release, and CMS's quarterly ZIP-to-locality crosswalk (lab codes come from the Clinical Laboratory Fee Schedule). For the same code, locality, setting, modifier and conversion factor it matches CMS, because it is CMS's calculation on CMS's rows. Add include=sources to any rate request to get the CMS archive, file and line behind each input.

See a calculation traced to its source rows.

Try a rate lookup

Runs against this environment using the selected key.

Sign in to run an authenticated request.

Request

curl --get 'https://feebase.co/api/v1/rates/99214' \
  --header "Authorization: Bearer $FEEBASE_API_KEY" \
  --header 'Accept: application/json' \
  --data-urlencode 'setting=non_facility'

Example response · 200

{
  "code": "99214",
  "amount": 13561,
  "currency": "usd",
  "setting": "non_facility",
  "date": "2026-01-01",
  "qp_status": "non_qp",
  "location": {
    "type": "national"
  }
}

Illustrative national, non-facility response for 99214 on January 1, 2026. This example does not change with the form. Run a request to see your actual response below.

© 2026 Textual, LLC. FeeBase is a Textual product.

Medicare payment data is published by the Centers for Medicare & Medicaid Services (CMS). FeeBase is an independent service, not affiliated with or endorsed by CMS or the American Medical Association (AMA).

Government-produced CMS materials are in the public domain; third-party code sets retain their copyright protections. CPT® is a registered trademark of the AMA. CPT codes and descriptions are copyrighted by the AMA. HCPCS Level II is maintained by CMS; dental codes (CDT®) are copyrighted by the American Dental Association.