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

# 340B

> Manufacturer contract-pharmacy policy, fail-closed access, and the change feed

Use the `/v1/340b` family when a covered entity needs manufacturer contract-pharmacy rules, claims-data submission mandates, or a dated change feed. This is not the same as [payer policies](/docs/policies) (`GET /v1/policies`), which returns cited NCD/LCD/MAC documents.

Trial keys can **read**. `POST /v1/340b/watches` is a live-key write and is omitted from trial allowlists.

Missing registry rows return `access_status=unknown`. The API does not invent `allowed`.

## Resolve access

```bash theme={null}
curl "https://api-dev.rcintell.com/v1/340b/restrictions/resolve?manufacturer=amgen&entity_type=DSH&state=KS&has_in_house_pharmacy=true" \
  -H "X-API-Key: kp_test_..."
```

| Param                   | Notes                                   |
| ----------------------- | --------------------------------------- |
| `ndc`                   | 11-digit NDC                            |
| `manufacturer`          | Slug, e.g. `amgen`                      |
| `entity_type`           | OPAIS type, e.g. `DSH`, `CAH`, `FQHC`   |
| `has_in_house_pharmacy` | Boolean                                 |
| `contract_pharmacy_npi` | When the fill is at a contract pharmacy |
| `state`                 | Two-letter state                        |

Every status includes citations. Use this before a fill, not as legal advice.

## Manufacturer policy card

```bash theme={null}
curl "https://api-dev.rcintell.com/v1/340b/manufacturers?state=KS" \
  -H "X-API-Key: kp_test_..."

curl "https://api-dev.rcintell.com/v1/340b/manufacturers/amgen/policy" \
  -H "X-API-Key: kp_test_..."
```

## Covered entity

```bash theme={null}
curl "https://api-dev.rcintell.com/v1/340b/entities/DSH010001" \
  -H "X-API-Key: kp_test_..."
```

Returns the OPAIS entity and contract pharmacies when we have them.

## Change feed

```bash theme={null}
curl "https://api-dev.rcintell.com/v1/340b/changes?since=2026-01-01&limit=50" \
  -H "X-API-Key: kp_test_..."
```

Filter with `manufacturer`, `entity_type`, or `state`.

## Related reads

| Endpoint                                    | Purpose                                       |
| ------------------------------------------- | --------------------------------------------- |
| `GET /v1/340b/data-submission/requirements` | Per-manufacturer claims-data platform + scope |
| `GET /v1/340b/rebate-model/drugs`           | MFP / rebate-model NDCs in the registry       |
| `POST /v1/340b/portfolio/check`             | Batch manufacturers/drugs × sites             |

## MCP

| Tool                           | REST                                     |
| ------------------------------ | ---------------------------------------- |
| `resolve_340b_restrictions`    | `GET /v1/340b/restrictions/resolve`      |
| `list_340b_manufacturers`      | `GET /v1/340b/manufacturers`             |
| `get_340b_manufacturer_policy` | `GET /v1/340b/manufacturers/{id}/policy` |
| `get_340b_entity`              | `GET /v1/340b/entities/{id}`             |
| `list_340b_changes`            | `GET /v1/340b/changes`                   |
| `check_340b_portfolio`         | `POST /v1/340b/portfolio/check`          |
