The same answers, in your own systems.
Organisation owners and administrators create keys under Operations → API. Each key is shown once, stored only as a hash, limited to 600 requests a minute, and can be revoked at any time. No patient information is accepted or needed.
GET /api/v1/codes/{code}?locality=10112-00
Description, status and Medicare amounts (non-facility and facility) for a code, nationally or for a locality.
curl -H "Authorization: Bearer $MEDPAYIQ_KEY" https://medpayiq.com/api/v1/codes/99213
POST /api/v1/ncci
Active NCCI procedure-to-procedure edits among 2 to 20 codes on a date.
curl -X POST -H "Authorization: Bearer $MEDPAYIQ_KEY" -H "Content-Type: application/json" \
-d '{"codes":["29881","29877"],"date":"2026-09-18"}' https://medpayiq.com/api/v1/ncciPOST /api/v1/claim-guard
A whole claim checked before submission: the same rules as Claim Guard, including unit limits, medical necessity for a locality and prior authorization for a payer when those data are loaded.
curl -X POST -H "Authorization: Bearer $MEDPAYIQ_KEY" -H "Content-Type: application/json" \
-d '{"date":"2026-09-18","locality":"10112-00","lines":[{"code":"99214","dx":["M17.11"],"units":1,"pos":"11"}]}' \
https://medpayiq.com/api/v1/claim-guardErrors and limits
Errors are JSON: {"error": "…"} with status 400 (bad input), 401 (missing, invalid or revoked key) or 429 (over 600 requests a minute). Every response carries X-MedPayIQ-Release, the CMS release it was computed from. Keys are for server-to-server use; never put one in a web page.