healthcare.dev docs
API referenceEval packs

Get an eval pack

GET /v1/eval-packs/{pack}

GET https://api.healthcare.dev/v1/eval-packs/{pack}

One version of a pack (the newest, or version) with every question: the question to ask, answer_type, the verified answer, as_of, citations (dataset, version, record key and the API request that shows the answer), difficulty and tags. Question ids are stable across versions. Every answer was read from the published data and checked again against the API when the version was built; versions never change once published. Team plan (403 plan-upgrade-required on other plans). Not metered.

Requires an API key: Authorization: Bearer hdev_live_.... See Authentication.

Path parameters

NameTypeRequiredDescriptionExample
pack"coding" | "drugs" | "providers"yescoding, drugs or providerscoding

Query parameters

NameTypeRequiredDescriptionExample
versionstringnoA version from /v1/eval-packs (default: the newest)2026.10.1

Examples

curl

curl "https://api.healthcare.dev/v1/eval-packs/coding" \
  -H "Authorization: Bearer $HDEV_API_KEY"

TypeScript

const res = await fetch("https://api.healthcare.dev/v1/eval-packs/coding", {
  headers: { Authorization: `Bearer ${process.env.HDEV_API_KEY}` },
});
const { data, meta } = await res.json();

Python

import os
import requests

res = requests.get("https://api.healthcare.dev/v1/eval-packs/coding", headers={"Authorization": f"Bearer {os.environ['HDEV_API_KEY']}"})
body = res.json()

Try it

GEThttps://api.healthcare.dev/v1/eval-packs/coding?version=2026.10.1
Get a free key
Copy as curl
curl "https://api.healthcare.dev/v1/eval-packs/coding?version=2026.10.1" \
  -H "Authorization: Bearer $HDEV_API_KEY"

Response

The pack version

{
  "data": {
    "pack": "coding",
    "version": "2026.10.1",
    "title": "string",
    "description": "string",
    "built_at": "2026-10-24T12:00:00Z",
    "as_of": "2026-10-01",
    "datasets": [
      {
        "dataset": "string",
        "data_version": "string",
        "license_terms": null
      }
    ],
    "question_count": 1,
    "questions": [
      {
        "id": "string",
        "template": "string",
        "question": "string",
        "answer_type": null,
        "answer": null,
        "tolerance": 0,
        "as_of": "2026-10-01",
        "citations": [
          null
        ],
        "difficulty": "easy",
        "tags": [
          null
        ]
      }
    ]
  },
  "meta": {
    "source": "cms-icd10",
    "data_version": "2026.1",
    "retrieved_at": "2026-10-24T12:00:00Z",
    "license": "Public domain (CMS). Reference data, not medical advice."
  },
  "links": {
    "self": "/v1/eval-packs/coding",
    "next": null
  }
}

Fields

FieldTypeAlways presentDescription
packEvalPackIdyescoding (ICD-10-CM and HCPCS Level II), drugs (NDC Directory, RxNorm, FDA shortages) or providers (Medicare enrollment, opt-out and OIG exclusions by NPI)
versionstringyesPack version, YYYY.MM.N (e.g. 2026.10.1)
titlestringyes
descriptionstringyes
built_atstring (date-time)yes
as_ofstring (date)yesThe date every answer in this version holds for
datasetsEvalPackDataset[]yesThe dataset versions the answers were verified against, with their terms
question_countintegeryes
questionsEvalQuestion[]yes

Errors

Errors are application/problem+json (RFC 9457). Branch on type, not on title. See Errors.

StatustypeWhen
400invalid-requestA parameter or the body failed validation; errors lists each field.
401unauthorizedMissing, malformed or revoked API key.
403plan-upgrade-requiredThe plan doesn't include this feature; required_plan names the plan that does.
404not-foundNo record with that id (retired records are still returned).
429rate-limited / quota-exceededToo many requests per second (retry after Retry-After), or the monthly quota is used up.

On this page