Codes

Date-specific RVUs and payment indicators.

GET/api/v1/search

Search codes

GET /api/v1/search returns ranked matches from the current code search index. Use it for autocomplete; use codes for deterministic, date-specific records. Search is code-only and has no pagination.

Optional attributes

  • Name
    q
    Type
    string
    Description

    Search text, up to 100 characters. Empty queries use popularity ordering.

  • Name
    limit
    Type
    integer
    Description

    Results per page. Defaults to 12; accepts 1–25.

  • Name
    priced
    Type
    boolean
    Description

    1 restricts results to priced codes; 0 leaves them unrestricted.

  • Name
    therapy
    Type
    boolean
    Description

    1 restricts results to therapy codes.

  • Name
    sections[]
    Type
    string[]
    Description

    em, anesthesia, surgery, radiology, lab, medicine, cat3, cat2, hcpcs, or other.

  • Name
    global[]
    Type
    string[]
    Description

    000, 010, 090, XXX, YYY, ZZZ, or MMM.

Parameter usage notes

q is optional text, up to 100 characters. With an empty query, results use the site's popularity ordering. limit defaults to 12 and accepts 1–25.

Optional filters: priced=1, therapy=1, global[]=090, and sections[]=surgery. Boolean filters accept 0 or 1. Sections are em, anesthesia, surgery, radiology, lab, medicine, cat3, cat2, hcpcs, and other. Global values are 000, 010, 090, XXX, YYY, ZZZ, and MMM.

Response

  • Name
    data
    Type
    object[]
    Description

    Ranked code matches; exact code matches first.

  • Name
    data[].code
    Type
    string
    Description

    Five-character code.

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

    Display name.

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

    Additional display context.

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

    Code category.

  • Name
    data[].section
    Type
    string
    Description

    Search section identifier.

  • Name
    data[].priced
    Type
    boolean
    Description

    Whether a price is available in the search index.

  • Name
    data[].therapy
    Type
    boolean
    Description

    Whether the code is indexed as a therapy code.

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

    Global-surgery indicator.

Response behavior and edge cases

The response is { "data": [...] }. Each result contains code, name, subname, category, section, and priced. Names and categories may be null. Results intentionally omit full RVUs, rates and editorial content. Exact code matches rank first, followed by prefix and text relevance; ranking may improve without an API version change.

Integration

Debounce input, cancel superseded requests, and cache recent results in your integration. Keep the API key on your server. Every successful search consumes one request from the plan allowance. Date and catalog-pagination parameters are rejected; current search results are discovery hints, not proof that a code existed on a historical service date.

Request

GET
/api/v1/search
curl -G 'https://feebase.co/api/v1/search' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  --data-urlencode 'q=therapy' \
  --data-urlencode 'limit=8'

Response

{
  "data": [
    {
      "code": "97110",
      "name": null,
      "subname": null,
      "category": null,
      "section": "medicine",
      "priced": true,
      "therapy": true,
      "global_days": "XXX"
    }
  ]
}

Illustrative response. Values and release IDs are examples.


GET/api/v1/codes

List codes

Browse the date-specific catalog or retrieve a known list of codes.

Optional attributes

  • Name
    date
    Type
    string
    Description

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

  • Name
    codes[]
    Type
    string[]
    Description

    1–50 distinct five-character codes.

  • Name
    page
    Type
    integer
    Description

    Page number, starting at 1. Defaults to 1; maximum 10,000.

  • Name
    limit
    Type
    integer
    Description

    Results per page. Defaults to 25; accepts 1–50.

  • Name
    include
    Type
    string
    Description

    Set to insight to include the AI-assisted editorial explanation.

Parameter usage notes

date defaults to today in UTC. codes[] accepts 1–50 distinct five-character codes. Without a code list, use page (default 1) and limit (default 25, maximum 50). Catalog order is ascending code. A supplied code list returns all matching records in ascending code order; pagination is not applied to that list.

include=insight adds optional AI-assisted editorial explanations. q is rejected: use search. The single-code route uses date and include; use the collection route for codes, page, and limit.

Response

  • Name
    data
    Type
    object[]
    Description

    Matching code records, in ascending code order.

  • Name
    data[].code
    Type
    string
    Description

    Five-character procedure code.

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

    Display name when available.

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

    Code category when available.

  • Name
    data[].date
    Type
    string
    Description

    Resolved service date in YYYY-MM-DD format.

  • Name
    data[].release
    Type
    integer
    Description

    Accepted PFS release identifier.

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

    CMS payment status indicator.

  • Name
    data[].rvus
    Type
    object | null
    Description

    Relative value units. Missing facts are null.

  • Name
    data[].rvus.work
    Type
    decimal string | null
    Description

    work RVUs, represented as an exact decimal string.

  • Name
    data[].rvus.pe_non_facility
    Type
    decimal string | null
    Description

    pe non facility RVUs, represented as an exact decimal string.

  • Name
    data[].rvus.pe_facility
    Type
    decimal string | null
    Description

    pe facility RVUs, represented as an exact decimal string.

  • Name
    data[].rvus.mp
    Type
    decimal string | null
    Description

    mp RVUs, represented as an exact decimal string.

  • Name
    data[].indicators
    Type
    object | null
    Description

    CMS payment and procedure indicators.

  • Name
    data[].indicators.global_days
    Type
    string | null
    Description

    global days indicator from the selected release.

  • Name
    data[].indicators.pctc
    Type
    string | null
    Description

    pctc indicator from the selected release.

  • Name
    data[].indicators.multiple_procedure
    Type
    string | null
    Description

    multiple procedure indicator from the selected release.

  • Name
    data[].indicators.bilateral
    Type
    string | null
    Description

    bilateral indicator from the selected release.

  • Name
    data[].indicators.preop
    Type
    string | null
    Description

    preop indicator from the selected release.

  • Name
    data[].indicators.intraop
    Type
    string | null
    Description

    intraop indicator from the selected release.

  • Name
    data[].indicators.postop
    Type
    string | null
    Description

    postop indicator from the selected release.

  • Name
    data[].indicators.assistant
    Type
    string | null
    Description

    assistant indicator from the selected release.

  • Name
    data[].indicators.co_surgeon
    Type
    string | null
    Description

    co surgeon indicator from the selected release.

  • Name
    data[].indicators.team
    Type
    string | null
    Description

    team indicator from the selected release.

  • Name
    data[].components
    Type
    object | array
    Description

    Available 26 and TC component RVUs, keyed by modifier. Empty when no components exist.

  • Name
    data[].insight
    Type
    object | null · optional
    Description

    Included only with include=insight. Contains summary, description, FAQs, related codes, comparisons, editorial source, release, and generated_at.

  • Name
    meta.page
    Type
    integer
    Description

    Current page number.

  • Name
    meta.limit
    Type
    integer
    Description

    Maximum results per page.

  • Name
    meta.total
    Type
    integer
    Description

    Total matching records.

  • Name
    meta.next_page
    Type
    integer | null
    Description

    Next page number, or null when there are no more pages.

  • Name
    meta.date
    Type
    string
    Description

    Resolved date.

  • Name
    meta.release
    Type
    integer
    Description

    Accepted PFS release ID.

  • Name
    meta.missing_codes
    Type
    string[]
    Description

    Requested codes absent from the selected release.

Response behavior and edge cases

A single record has no wrapper. Collections return data and meta, including date, release, page, limit, total, next_page, and missing_codes. next_page is null at the end. Missing requested codes appear in missing_codes, never disappear without explanation.

Records contain code, nullable name and category, date, release, payment_status, rvus, indicators, and components. RVUs are exact decimal strings: work, pe_non_facility, pe_facility, and mp. Indicators include global_days, pctc, multiple_procedure, bilateral, preop, intraop, postop, assistant, co_surgeon, and team. Missing facts are null. components contains available 26 and TC RVUs. Use rates to price them.

Editorial content and missing data

An included insight is null when no renderable explanation exists. Otherwise it contains summary, description, faqs, related_codes, comparisons, source, its own release, and generated_at. Editorial content is not historical CMS data; its source release can differ from the requested code release.

A missing single code returns 404 code_not_in_release. A date without an accepted dataset returns 422 data_unavailable. No record is fabricated from an earlier release.

Request

GET
/api/v1/codes
curl -G 'https://feebase.co/api/v1/codes' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  --data-urlencode 'codes[]=97110' \
  --data-urlencode 'codes[]=97530'

Response

{
  "data": [
    {
      "code": "97110",
      "name": null,
      "category": null,
      "date": "2026-10-06",
      "release": 1,
      "payment_status": "A",
      "rvus": {
        "work": "1.920",
        "pe_non_facility": "1.810",
        "pe_facility": "0.740",
        "mp": "0.140"
      },
      "indicators": {
        "global_days": "XXX",
        "pctc": "0",
        "multiple_procedure": "0",
        "bilateral": "0",
        "preop": "0.0000",
        "intraop": "0.0000",
        "postop": "0.0000",
        "assistant": "0",
        "co_surgeon": "0",
        "team": "0"
      },
      "components": []
    },
    {
      "code": "97530",
      "name": null,
      "category": null,
      "date": "2026-10-06",
      "release": 1,
      "payment_status": "A",
      "rvus": {
        "work": "1.920",
        "pe_non_facility": "1.810",
        "pe_facility": "0.740",
        "mp": "0.140"
      },
      "indicators": {
        "global_days": "XXX",
        "pctc": "0",
        "multiple_procedure": "0",
        "bilateral": "0",
        "preop": "0.0000",
        "intraop": "0.0000",
        "postop": "0.0000",
        "assistant": "0",
        "co_surgeon": "0",
        "team": "0"
      },
      "components": []
    }
  ],
  "meta": {
    "date": "2026-10-06",
    "release": 1,
    "page": 1,
    "limit": 50,
    "total": 2,
    "next_page": null,
    "missing_codes": []
  }
}

Illustrative response. Values and release IDs are examples.


GET/api/v1/codes/{code}

Retrieve a code

Retrieve one code’s RVUs, payment indicators, and available professional or technical components.

Required attributes

  • Name
    code
    Type
    string
    Description

    Five-character procedure code supplied in the URL path.

Optional attributes

  • Name
    date
    Type
    string
    Description

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

  • Name
    include
    Type
    string
    Description

    Set to insight to include the AI-assisted editorial explanation.

Parameter usage notes

code is the five-character path parameter. date defaults to today UTC. include=insight adds the optional editorial explanation described above. Collection parameters are not accepted.

Response

  • Name
    code
    Type
    string
    Description

    Five-character procedure code.

  • Name
    name
    Type
    string | null
    Description

    Display name when available.

  • Name
    category
    Type
    string | null
    Description

    Code category when available.

  • Name
    date
    Type
    string
    Description

    Resolved service date in YYYY-MM-DD format.

  • Name
    release
    Type
    integer
    Description

    Accepted PFS release identifier.

  • Name
    payment_status
    Type
    string | null
    Description

    CMS payment status indicator.

  • Name
    rvus
    Type
    object | null
    Description

    Relative value units. Missing facts are null.

  • Name
    rvus.work
    Type
    decimal string | null
    Description

    work RVUs, represented as an exact decimal string.

  • Name
    rvus.pe_non_facility
    Type
    decimal string | null
    Description

    pe non facility RVUs, represented as an exact decimal string.

  • Name
    rvus.pe_facility
    Type
    decimal string | null
    Description

    pe facility RVUs, represented as an exact decimal string.

  • Name
    rvus.mp
    Type
    decimal string | null
    Description

    mp RVUs, represented as an exact decimal string.

  • Name
    indicators
    Type
    object | null
    Description

    CMS payment and procedure indicators.

  • Name
    indicators.global_days
    Type
    string | null
    Description

    global days indicator from the selected release.

  • Name
    indicators.pctc
    Type
    string | null
    Description

    pctc indicator from the selected release.

  • Name
    indicators.multiple_procedure
    Type
    string | null
    Description

    multiple procedure indicator from the selected release.

  • Name
    indicators.bilateral
    Type
    string | null
    Description

    bilateral indicator from the selected release.

  • Name
    indicators.preop
    Type
    string | null
    Description

    preop indicator from the selected release.

  • Name
    indicators.intraop
    Type
    string | null
    Description

    intraop indicator from the selected release.

  • Name
    indicators.postop
    Type
    string | null
    Description

    postop indicator from the selected release.

  • Name
    indicators.assistant
    Type
    string | null
    Description

    assistant indicator from the selected release.

  • Name
    indicators.co_surgeon
    Type
    string | null
    Description

    co surgeon indicator from the selected release.

  • Name
    indicators.team
    Type
    string | null
    Description

    team indicator from the selected release.

  • Name
    components
    Type
    object | array
    Description

    Available 26 and TC component RVUs, keyed by modifier. Empty when no components exist.

  • Name
    insight
    Type
    object | null · optional
    Description

    Included only with include=insight. Contains summary, description, FAQs, related codes, comparisons, editorial source, release, and generated_at.

Response behavior and edge cases

The code record is returned without a wrapper, using the same fields as the collection. A missing code returns 404 code_not_in_release; a date without an accepted dataset returns 422 data_unavailable.

Request

GET
/api/v1/codes/{code}
curl -G 'https://feebase.co/api/v1/codes/99214' \
  -H 'Authorization: Bearer YOUR_API_KEY'

Response

{
  "code": "99214",
  "name": null,
  "category": null,
  "date": "2026-10-06",
  "release": 1,
  "payment_status": "A",
  "rvus": {
    "work": "1.920",
    "pe_non_facility": "1.810",
    "pe_facility": "0.740",
    "mp": "0.140"
  },
  "indicators": {
    "global_days": "XXX",
    "pctc": "0",
    "multiple_procedure": "0",
    "bilateral": "0",
    "preop": "0.0000",
    "intraop": "0.0000",
    "postop": "0.0000",
    "assistant": "0",
    "co_surgeon": "0",
    "team": "0"
  },
  "components": []
}

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.