> ## Documentation Index
> Fetch the complete documentation index at: https://docs.rcintell.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Payer policies

> National vs state vs Medicare MAC — versioned policy lookup

## Look up cited policy

Coding engines need cited payer policy, not a single Medicare blob. Use `GET /v1/policies` with an `X-API-Key`. This is the client-facing policy API. `POST /v1/policy/parse` is an admin ingest path, not a client lookup.

Medicare Fee-For-Service is national for NCDs and MAC-scoped for LCDs. Massachusetts and New York are both MAC JK (NGS). The API returns that jurisdiction instead of inventing two documents.

## Query parameters

| Param       | Required | Notes                                                    |
| ----------- | -------- | -------------------------------------------------------- |
| `payer`     | yes      | Slug, e.g. `medicare_ffs` or `uhc`                       |
| `code`      | no       | CPT/HCPCS                                                |
| `state`     | no       | US state (`MA`, `NY`). Resolves Medicare MAC             |
| `plan_type` | no       | `ffs`, `medicare_advantage`, `medicaid`, or `commercial` |
| `scope`     | no       | `general` = national only, even if `state` is sent       |
| `as_of`     | no       | Point-in-time `YYYY-MM-DD`                               |
| `limit`     | no       | 1–200, default 50                                        |

Each row includes `geo_scope`, `geo_codes`, `mac_jurisdiction`, `document_version`, `policy_type` (`medical` / `payment` / `prior_auth` / `provider_manual`), `codes_covered`, `codes_not_covered`, `icd10`, `delegated_entity`, and `effective_until`. Code arrays and ICD are empty until `mart_policy_document` has extracted them — we do not invent coverage lists.

## Change feed

`GET /v1/policies/changes` is pull-only (same idea as `GET /v1/340b/changes`). Filter with `payer` and `since`. There is no policy webhook.

```bash theme={null}
curl "https://api-dev.rcintell.com/v1/policies/changes?payer=medicare_ffs" \
  -H "X-API-Key: kp_test_..."
```

## REST

```bash theme={null}
curl "https://api-dev.rcintell.com/v1/policies?payer=medicare_ffs&code=99213" \
  -H "X-API-Key: kp_test_..."

curl "https://api-dev.rcintell.com/v1/policies?payer=medicare_ffs&code=99213&state=MA" \
  -H "X-API-Key: kp_test_..."

curl "https://api-dev.rcintell.com/v1/policies?payer=medicare_ffs&code=99213&state=NY" \
  -H "X-API-Key: kp_test_..."

curl "https://api-dev.rcintell.com/v1/policies?payer=medicare_ffs&code=99213&state=MA&scope=general" \
  -H "X-API-Key: kp_test_..."
```

## MCP

Tool name: `lookup_policy`

```json theme={null}
{
  "name": "lookup_policy",
  "arguments": {
    "payer": "medicare_ffs",
    "code": "99213",
    "state": "MA"
  }
}
```

## Plan types

Medicare Advantage is not a second `medicare_ffs` payer. Use the commercial parent slug (`uhc`, `humana`, `bcbs`) with `plan_type=medicare_advantage`.

340B manufacturer contract-pharmacy rules are a different API: [340B](/docs/policy-340b). Prior auth determinations: [Prior authorization](/docs/prior-auth).
