Centers for Medicare and Medicaid Services Cost Search API

For a given procedure code or entire set of codes, get national averages for the amount Medicare pays hospitals or surgical centers, and the national average copay amounts.

Operations 2

GET /costs/{code} Cost data for a given code #
GET /costs Gets a set of cost data for given limit #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/cms-cost-search-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

cms-cost-search-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Procedure Price Lookup Cost Search API
  version: 1.1.1
  description: 'The Procedure Price Lookup (PPL) API provides a bulk cost data endpoint to the American Medical Association (AMA) procedure descriptions and cost data associated with a subset of the CPT/HCPCS codes for CMS application development partners.

    The API allows users to get cost and copay data for approximately 4,000 medical procedures in hospital outpatient departments and ambulatory surgical centers.'
  termsOfService: http://swagger.io/terms/
  contact:
    email: ccxp-engineering@navapbc.com
  license:
    name: Apache 2.0
    url: http://www.apache.org/licenses/LICENSE-2.0.html
servers:
- url: https://www.medicare.gov/api/procedure-price-lookup/api/v1/core
tags:
- name: Cost Search
  description: For a given procedure code or entire set of codes, get national averages for the amount Medicare pays hospitals or surgical centers, and the national average copay amounts.
paths:
  /costs/{code}:
    get:
      tags:
      - Cost Search
      summary: Cost data for a given code
      description: Returns cost data for the given code.
      operationId: getCostByCode
      parameters:
      - name: code
        in: path
        description: The code to find cost values for.
        required: true
        x-exportParamName: Code
        schema:
          type: string
      responses:
        '200':
          description: Successful cost search.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Cost'
        '400':
          description: Invalid request or code format.
        '401':
          description: Missing or invalid apiKey.
        '403':
          description: Missing or invalid amaLicense.
        '404':
          description: Cost information for the given code not found.
        '500':
          description: An internal error has occurred for the request.
  /costs:
    get:
      tags:
      - Cost Search
      summary: Gets a set of cost data for given limit
      description: Returns cost data for all codes. Limits the number of returned cost items to given Limit. If no Limit parameter is given, returns cost data for ALL codes.
      operationId: getBatchCosts
      parameters:
      - name: limit
        in: query
        description: Limit the number of records returned by the search.
        required: false
        x-exportParamName: Limit
        schema:
          type: integer
      responses:
        '200':
          description: Successful cost search.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Cost'
        '400':
          description: Invalid request parameter(s).
        '401':
          description: Missing or invalid apiKey.
        '403':
          description: Missing or invalid amaLicense.
        '500':
          description: An internal error has occurred for the request.
components:
  schemas:
    Cost:
      type: object
      required:
      - copay
      - cost
      - total
      - facilityType
      properties:
        facilityType:
          type: string
          description: The type of facility that the cost data pertains to. Each facility type should only have one cost object per code.
        cost:
          type: number
        copay:
          type: number
        total:
          type: number
      example:
        cost: 1420
        facilityType: facilityType
        copay: 355
        total: 1775
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: apiKey
      description: All requests must include the `apiKey` header containing your API Key.
    amaLicense:
      type: apiKey
      in: header
      name: amaLicense
      description: All requests must include the `amaLicense` header containing your AMA License.
externalDocs:
  description: Find out more about Swagger
  url: http://swagger.io