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
| Name | Type | Required | Description | Example |
|---|---|---|---|---|
pack | "coding" | "drugs" | "providers" | yes | coding, drugs or providers | coding |
Query parameters
| Name | Type | Required | Description | Example |
|---|---|---|---|---|
version | string | no | A 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
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
| Field | Type | Always present | Description |
|---|---|---|---|
pack | EvalPackId | yes | coding (ICD-10-CM and HCPCS Level II), drugs (NDC Directory, RxNorm, FDA shortages) or providers (Medicare enrollment, opt-out and OIG exclusions by NPI) |
version | string | yes | Pack version, YYYY.MM.N (e.g. 2026.10.1) |
title | string | yes | |
description | string | yes | |
built_at | string (date-time) | yes | |
as_of | string (date) | yes | The date every answer in this version holds for |
datasets | EvalPackDataset[] | yes | The dataset versions the answers were verified against, with their terms |
question_count | integer | yes | |
questions | EvalQuestion[] | yes |
Errors
Errors are application/problem+json (RFC 9457). Branch on type, not on title. See Errors.
| Status | type | When |
|---|---|---|
| 400 | invalid-request | A parameter or the body failed validation; errors lists each field. |
| 401 | unauthorized | Missing, malformed or revoked API key. |
| 403 | plan-upgrade-required | The plan doesn't include this feature; required_plan names the plan that does. |
| 404 | not-found | No record with that id (retired records are still returned). |
| 429 | rate-limited / quota-exceeded | Too many requests per second (retry after Retry-After), or the monthly quota is used up. |