Rates

One code or a list. One consistent answer.

GET/api/v1/rates/{code}

Retrieve a rate

GET /api/v1/rates/{code} returns one fee-schedule amount. GET /api/v1/rates?codes[]=99213&codes[]=99214&setting=non_facility retrieves a batch with shared date, setting and location.

All data endpoints require a bearer key and an active plan. Each successful response consumes one request, including a bounded batch, search, an empty collection or unavailable amounts. Non-success responses do not consume quota. The account endpoint remains unmetered. Requests share the plan's per-minute limit and billing-period allowance.

Required attributes

  • Name
    code
    Type
    string
    Description

    Five-character procedure code supplied in the URL path.

  • Name
    setting
    Type
    string
    Description

    facility or non_facility.

Optional attributes

  • Name
    date
    Type
    string
    Description

    Service date in YYYY-MM-DD format. Defaults to today in UTC.

  • Name
    zip
    Type
    string
    Description

    Five-digit ZIP or hyphenated ZIP+4. Cannot be combined with locality.

  • Name
    locality
    Type
    string
    Description

    Contractor-locality identifier, such as 13202-01. Cannot be combined with zip.

  • Name
    qp_status
    Type
    string
    Description

    non_qp (default) or qp. Selects the payment schedule; does not establish eligibility.

  • Name
    modifier
    Type
    string
    Description

    26 for the professional component, or TC for the technical component.

  • Name
    provider_type
    Type
    string
    Description

    Defaults to physician. See Provider pricing for supported categories and restrictions.

  • Name
    participation
    Type
    string
    Description

    participating (default) or non_participating.

  • Name
    include
    Type
    string
    Description

    breakdown, sources, or breakdown,sources.

Parameter usage notes

For a single rate, put the code in the path. For a batch, supply 1–50 distinct codes[]. setting is required: facility or non_facility. The date defaults to today UTC; qp_status defaults to non_qp. Use exactly one of zip (five digits or hyphenated ZIP+4) and locality (contractor-locality ID), or omit both for a national amount.

Optional modifier is 26 or TC. It selects an actual professional/technical component row, never a percentage of the global rate. Other modifiers are rejected.

Optional include=breakdown, include=sources, or include=breakdown,sources expands the answer. See provider pricing for provider_type and participation. Unknown parameters are rejected.

Response

  • Name
    release
    Type
    integer | null
    Description

    The accepted PFS release used for this result.

  • Name
    payment_status
    Type
    string | null
    Description

    CMS PFS status indicator for the code. A, R (restricted coverage) and T (paid only without another same-day service) are priced; R and T carry coverage rules the amount does not apply. Null when the code has no rate row.

  • Name
    breakdown
    Type
    object | null · opt-in
    Description

    Exact calculation factors and base amount when include=breakdown.

  • Name
    sources
    Type
    array · opt-in
    Description

    Immutable release citations and available excerpts when include=sources.

  • Name
    code
    Type
    string
    Description

    The five-character procedure code requested. The response has no data wrapper.

  • Name
    amount
    Type
    integer | null
    Description

    Allowed amount in USD cents, including requested provider adjustments. Null means unavailable, not zero.

  • Name
    currency
    Type
    string · usd
    Description

    The currency of the amount. Always usd.

  • Name
    setting
    Type
    string · facility | non_facility
    Description

    The setting used to calculate the amount.

  • Name
    date
    Type
    string · YYYY-MM-DD
    Description

    Resolved service date, including the UTC date used when omitted.

  • Name
    qp_status
    Type
    string · non_qp | qp
    Description

    The payment schedule used. Defaults to non_qp.

  • Name
    location
    Type
    object
    Description

    The geography used to calculate the amount.

  • Name
    location.type
    Type
    string · national | locality
    Description

    National uses geographically unadjusted factors. ZIP requests resolve to a locality.

  • Name
    location.id
    Type
    string | null · conditional
    Description

    Contractor-locality identifier, such as 13202-01. Present only for locality responses; null when no geography release covers the date.

  • Name
    location.geography_match
    Type
    string · exact | prior_release · conditional
    Description

    Present for ZIP requests. prior_release means CMS has no surviving crosswalk for the requested quarter, so the latest earlier one resolved the ZIP.

  • Name
    unavailable_reason
    Type
    string · conditional
    Description

    Present only when amount is null: data_unavailable, code_not_in_release, rate_not_in_release, contractor_priced, unsupported_payment_status, setting_unavailable, or unsupported_rule.

  • Name
    release
    Type
    integer | null
    Description

    Accepted PFS release ID, or null if unavailable.

  • Name
    breakdown
    Type
    object | null · optional
    Description

    With include=breakdown: work_rvu, work_gpci, pe_rvu, pe_gpci, mp_rvu, mp_gpci, conversion_factor, base_amount, and calculation_version.

  • Name
    sources
    Type
    object[] · optional
    Description

    With include=sources: exact release provenance, source URL, file, line, and optional excerpt.

Response behavior and edge cases

Single rates have no wrapper. Batches return { "data": [...] } in requested order, one result per code. Each result echoes the code, setting, resolved date, QP status and location, and includes the accepted PFS release ID (null when no PFS release was available).

amount is integer USD cents; currency is usd. Unavailable amounts are null with an unavailable_reason. A real zero stays zero. An unknown single code returns 404 code_not_found; an unknown batch code is retained with amount: null and unavailable_reason: code_not_found. Invalid or unresolved request-level locations reject the entire batch.

breakdown contains decimal-string work_rvu, work_gpci, pe_rvu, pe_gpci, mp_rvu, and mp_gpci, plus conversion_factor, integer-cent base_amount, and calculation_version. It is null when no base calculation exists.

sources contains exact citations used by the calculation: kind, release provenance, source URL, file, line and optional excerpt. Excerpts come from the cited immutable archive; missing local archives produce null excerpts without losing the citation. National GPCIs of one have no geographic source row.

Defaults and scope

Without provider options, amounts are base participating-physician PFS rates before claim-level adjustments. They are not patient liability or a guarantee of payment. Selecting qp does not establish clinician eligibility.

A service date selects the latest accepted applicable revision; it does not pin a revision. Store the returned release ID and request sources for an audit trail. Use releases for available periods and localities for selectors. Contract percentages, productivity totals and comparisons can be calculated from these primitives in your integration.

Request

GET
/api/v1/rates/{code}
curl -G 'https://feebase.co/api/v1/rates/99214' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  --data-urlencode 'setting=non_facility'

Response

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

Illustrative response. Values and release IDs are examples.

Try this endpoint with your API key

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.


GET/api/v1/rates

List rates

Retrieve rates for 1–50 distinct codes[] with a shared setting, date, location, modifier, and provider options. All options and amount semantics are the same as the single-rate endpoint above.

Required attributes

  • Name
    codes[]
    Type
    string[]
    Description

    1–50 distinct five-character codes, returned in requested order.

  • Name
    setting
    Type
    string
    Description

    facility or non_facility.

Optional attributes

  • Name
    date
    Type
    string
    Description

    Service date in YYYY-MM-DD format. Defaults to today in UTC.

  • Name
    zip
    Type
    string
    Description

    Five-digit ZIP or hyphenated ZIP+4. Cannot be combined with locality.

  • Name
    locality
    Type
    string
    Description

    Contractor-locality identifier, such as 13202-01. Cannot be combined with zip.

  • Name
    qp_status
    Type
    string
    Description

    non_qp (default) or qp. Selects the payment schedule; does not establish eligibility.

  • Name
    modifier
    Type
    string
    Description

    26 for the professional component, or TC for the technical component.

  • Name
    provider_type
    Type
    string
    Description

    Defaults to physician. See Provider pricing for supported categories and restrictions.

  • Name
    participation
    Type
    string
    Description

    participating (default) or non_participating.

  • Name
    include
    Type
    string
    Description

    breakdown, sources, or breakdown,sources.

Parameter usage notes

codes[] and setting are required. Each code is five characters. Use the same optional date, QP status, location, modifier, include, provider_type, and participation parameters as a single lookup.

Response

  • Name
    data
    Type
    object[]
    Description

    One result per requested code, preserving request order.

  • Name
    data[].release
    Type
    integer | null
    Description

    The accepted PFS release used for this result.

  • Name
    data[].payment_status
    Type
    string | null
    Description

    CMS PFS status indicator for the code. A, R (restricted coverage) and T (paid only without another same-day service) are priced; R and T carry coverage rules the amount does not apply. Null when the code has no rate row.

  • Name
    data[].breakdown
    Type
    object | null · opt-in
    Description

    Exact calculation factors and base amount when include=breakdown.

  • Name
    data[].sources
    Type
    array · opt-in
    Description

    Immutable release citations and available excerpts when include=sources.

  • Name
    data[].code
    Type
    string
    Description

    The five-character procedure code requested. The response has no data wrapper.

  • Name
    data[].amount
    Type
    integer | null
    Description

    Allowed amount in USD cents, including requested provider adjustments. Null means unavailable, not zero.

  • Name
    data[].currency
    Type
    string · usd
    Description

    The currency of the amount. Always usd.

  • Name
    data[].setting
    Type
    string · facility | non_facility
    Description

    The setting used to calculate the amount.

  • Name
    data[].date
    Type
    string · YYYY-MM-DD
    Description

    Resolved service date, including the UTC date used when omitted.

  • Name
    data[].qp_status
    Type
    string · non_qp | qp
    Description

    The payment schedule used. Defaults to non_qp.

  • Name
    data[].location
    Type
    object
    Description

    The geography used to calculate the amount.

  • Name
    data[].location.type
    Type
    string · national | locality
    Description

    National uses geographically unadjusted factors. ZIP requests resolve to a locality.

  • Name
    data[].location.id
    Type
    string | null · conditional
    Description

    Contractor-locality identifier, such as 13202-01. Present only for locality responses; null when no geography release covers the date.

  • Name
    data[].location.geography_match
    Type
    string · exact | prior_release · conditional
    Description

    Present for ZIP requests. prior_release means CMS has no surviving crosswalk for the requested quarter, so the latest earlier one resolved the ZIP.

  • Name
    data[].unavailable_reason
    Type
    string · conditional
    Description

    Present only when amount is null: data_unavailable, code_not_in_release, rate_not_in_release, contractor_priced, unsupported_payment_status, setting_unavailable, or unsupported_rule.

  • Name
    data[].release
    Type
    integer | null
    Description

    Accepted PFS release ID.

Response behavior and edge cases

Returns { "data": [...] } in requested code order. Unknown codes are retained with amount: null and unavailable_reason: code_not_found. Invalid request-level locations reject the entire batch. A successful batch consumes one request.

Request

GET
/api/v1/rates
curl -G 'https://feebase.co/api/v1/rates' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  --data-urlencode 'codes[]=99213' \
  --data-urlencode 'codes[]=99214' \
  --data-urlencode 'setting=non_facility'

Response

{
  "data": [
    {
      "code": "99213",
      "amount": 13561,
      "currency": "usd",
      "setting": "non_facility",
      "date": "2026-01-01",
      "qp_status": "non_qp",
      "location": {
        "type": "national"
      },
      "release": 1
    },
    {
      "code": "99214",
      "amount": 13561,
      "currency": "usd",
      "setting": "non_facility",
      "date": "2026-01-01",
      "qp_status": "non_qp",
      "location": {
        "type": "national"
      },
      "release": 1
    }
  ]
}

Illustrative response. Values and release IDs are examples.

© 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.