---
title: "Find billing codes for a service"
method: GET
path: "/v1/codes"
tags: ["codes"]
---

# Find billing codes for a service

`GET /v1/codes`

## Request

- Base URL: `https://api.ticexplorer.com`
- URL: `https://api.ticexplorer.com/v1/codes`
- Auth: HTTP bearer

**Workflows**

Workflow `estimate-visit-cost`, step 3/4 `find-codes`: Estimate what a visit will cost a person before care, under their plan, at a specific place.
- Purpose: Candidate codes for each expected service; `clarify` names details that change the code.
- Call after: `find_providers`
- Next: `price_claim`

Workflow `compare-places`, step 2/3 `find-codes`: Compare what the plan pays different nearby providers for the same service.
- Call after: `find_plan`
- Next: `get_rates`

Workflow `compare-coverage-routes`, step 1/2 `find-codes`: Compare the same services under the person's plan, Original Medicare and hospital cash prices in one call.
- Purpose: Confirms the codes and returns their facts (hospital status indicator, Medicare fee).
- Next: `get_rates_batch`

Workflow `market-analysis`, step 1/4 `find-codes`: Aggregate rate statistics for services across insurers and all providers in an area (benchmarking, research, negotiation prep, exports).
- Purpose: Codes for each service, from the code dictionary.
- Next: `estimate_market_analysis`

## Query parameters

- `q` string, required: Service in plain words, or one or more codes
- `zip` string, nullable: ZIP for locality-adjusted Medicare fees
- `limit` integer

## Response `200`

Successful Response

- CodesResult
  - `data` Code[], required
    - `code_type` string, required
    - `code` string, required
    - `plain_name` string, required
    - `official_description` string
    - `category` string
    - `facts` CodeFacts, required
      - `hospital_outpatient` object, nullable: OPPS status indicator, APC, packaging rule.
      - `medicare_physician_fee` object, nullable
      - `medicare_clinical_lab_fee` object, nullable: Lab tests: Medicare lab fee (ESTIMATED; the CMS CLFS file is behind the AMA license).
      - `medicare_drug_payment_limit` object, nullable: Part B drugs: ASP payment limit per billing unit.
      - `medicare_only_code` string, nullable
      - `timed_units` string, nullable
      - `add_on_code` string, nullable
  - `next_cursor` integer, nullable
  - `setting` object, nullable: Where care happens, when the words name it (urgent care, ER, telehealth, hospital outpatient, ASC, home, office): id, name, CMS place of service `pos` (+ `pos_options`), `note` on how that setting bills, `visit_codes`.
  - `clarify` string[]
  - `needs` Need[]
    - `field` string, required: The missing input or condition, e.g. which_insurer, place_of_service, wait.
    - `why` string, required: Why it changes the answer and what to do.
  - `next_steps` string[]

## Other responses

- `400`: Bad Request
- `401`: Unauthorized
- `402`: Payment Required
- `403`: Forbidden
- `404`: Not Found
- `422`: Unprocessable Entity
- `429`: Too Many Requests

---

[API](https://skmtc.dev/ticexplorer/apis/tic-explorer-api.md) · [All operations](https://skmtc.dev/ticexplorer/apis/tic-explorer-api/llms.txt) · [OpenAPI document](https://skmtc.dev/ticexplorer/apis/tic-explorer-api/revisions/9800d20135b9?raw)
