NLM ICD-10-CM Clinical Tables Lookup Scraper avatar

NLM ICD-10-CM Clinical Tables Lookup Scraper

Pricing

Pay per event

Go to Apify Store
NLM ICD-10-CM Clinical Tables Lookup Scraper

NLM ICD-10-CM Clinical Tables Lookup Scraper

Look up ICD-10-CM diagnosis codes from the public NLM Clinical Tables API by clinical term, code prefix, or billing keyword.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Stas Persiianenko

Stas Persiianenko

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Categories

Share

Look up ICD-10-CM diagnosis codes from the public NLM Clinical Tables API and export clean, auditable results for billing, coding, EHR, analytics, and clinical data workflows.

The actor accepts diagnosis phrases, medical keywords, or code fragments such as diabetes, hypertension, asthma, or E11 and returns ICD-10-CM code matches with names, ranks, source URLs, timestamps, and raw NLM rows.

What does this ICD-10-CM scraper do?

It calls the official NLM Clinical Tables ICD-10-CM JSON endpoint.

It converts the array-based API response into typed dataset rows.

It preserves the source request URL for every result.

It can run small autocomplete checks or larger terminology exports.

It does not require a login, browser session, or third-party medical account.

Who is it for?

🏥 Healthcare billing teams can map common diagnosis terms before claim preparation.

🧾 Medical coding teams can create repeatable lookup exports for ICD-10-CM review.

🧑‍⚕️ EHR and health-app teams can prototype autocomplete and search experiences.

📊 Healthcare analytics teams can normalize free-text condition labels into candidate codes.

🤖 AI and data-labeling teams can enrich clinical labels with official code suggestions.

Why use this actor?

The NLM endpoint is public, fast, and reliable, but its response is a compact array format.

This actor gives you spreadsheet-friendly rows instead of nested API tuples.

You also get the original raw tuple for audit and QA.

Runs are lightweight because the actor uses direct HTTP requests only.

Data source

Source: National Library of Medicine Clinical Tables.

Endpoint: https://clinicaltables.nlm.nih.gov/api/icd10cm/v3/search.

Dataset: ICD-10-CM diagnosis codes.

Authentication: none required.

Anti-bot risk: low for normal lookup volumes.

What data can I extract?

FieldDescription
inputTermSearch term submitted by the user
codeICD-10-CM diagnosis code
nameNLM diagnosis name
diagnosisDescriptionHuman-readable diagnosis description
rankResult position for that term
totalMatchesForTermNLM total match count
sourceSource label
sourceUrlExact API request URL
searchFieldsEffective NLM search fields
fetchedAtISO timestamp
rawRowRaw NLM tuple
rawCodeListRaw code list from the response

How much does it cost to look up ICD-10-CM codes?

This actor uses pay-per-event pricing.

There is a small start charge per run.

There is a per-result charge for every ICD-10-CM row saved.

The default pricing is designed for inexpensive recurring lookups.

Final live tier prices are visible in the Apify Store pricing panel.

Input options

terms is the main input.

Use one term or many terms.

Examples: diabetes, hypertension, chronic kidney disease, E11, asthma.

maxResults controls how many matches are returned per term.

searchFields controls the NLM sf parameter.

displayFields optionally passes an NLM df parameter.

includeRaw keeps raw tuples for auditability.

Example input

{
"terms": ["diabetes", "hypertension", "asthma"],
"maxResults": 50,
"searchFields": "code,name",
"includeRaw": true
}

Example output

{
"inputTerm": "diabetes",
"code": "E23.2",
"name": "Diabetes insipidus",
"diagnosisDescription": "Diabetes insipidus",
"rank": 1,
"totalMatchesForTerm": 481,
"source": "NLM Clinical Tables ICD-10-CM",
"sourceUrl": "https://clinicaltables.nlm.nih.gov/api/icd10cm/v3/search?...",
"searchFields": "code,name",
"fetchedAt": "2026-06-30T00:00:00.000Z"
}

How to run the actor

Open the actor on Apify.

Enter your ICD-10-CM search terms.

Choose the maximum results per term.

Run the actor.

Download the dataset as JSON, CSV, Excel, XML, or via API.

Tips for better results

Use clinical phrases for diagnosis-name searches.

Use code prefixes for code-family exploration.

Keep searchFields as code,name for broad discovery.

Use code when you only want code-prefix matches.

Use name when you want diagnosis text matching.

Set maxResults higher for broad terms such as pain or disease.

Set maxResults lower for autocomplete use cases.

Common workflows

Build a lookup table for common intake diagnoses.

Generate candidate ICD-10-CM codes from free-text labels.

Validate whether a diagnosis phrase returns expected official codes.

Export code suggestions into a claims preprocessing pipeline.

Create a repeatable EHR autocomplete seed list.

Integrations

Send results to Google Sheets using Apify integrations.

Load the dataset into Snowflake, BigQuery, or Postgres.

Trigger runs from a clinical data pipeline with the Apify API.

Use webhooks to notify your coding QA workflow when a lookup batch finishes.

Combine with enrichment actors from automation-lab for larger healthcare data pipelines.

API usage with Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/nlm-icd10cm-clinical-tables-lookup-scraper').call({
terms: ['diabetes', 'hypertension'],
maxResults: 25
});
console.log(run.defaultDatasetId);

API usage with Python

from apify_client import ApifyClient
client = ApifyClient('YOUR_APIFY_TOKEN')
run = client.actor('automation-lab/nlm-icd10cm-clinical-tables-lookup-scraper').call(run_input={
'terms': ['diabetes', 'hypertension'],
'maxResults': 25,
})
print(run['defaultDatasetId'])

API usage with cURL

curl -X POST 'https://api.apify.com/v2/acts/automation-lab~nlm-icd10cm-clinical-tables-lookup-scraper/runs?token=YOUR_APIFY_TOKEN' \
-H 'Content-Type: application/json' \
-d '{"terms":["diabetes","hypertension"],"maxResults":25}'

MCP usage

Use this actor from Claude Desktop, Claude Code, or other MCP clients through Apify MCP.

MCP URL:

https://mcp.apify.com/?tools=automation-lab/nlm-icd10cm-clinical-tables-lookup-scraper

Claude Code command:

$claude mcp add apify-icd10cm --url "https://mcp.apify.com/?tools=automation-lab/nlm-icd10cm-clinical-tables-lookup-scraper"

Claude Desktop JSON configuration:

{
"mcpServers": {
"apify-icd10cm": {
"url": "https://mcp.apify.com/?tools=automation-lab/nlm-icd10cm-clinical-tables-lookup-scraper"
}
}
}

Example prompts:

  • "Look up ICD-10-CM candidates for diabetes and hypertension."
  • "Export 100 asthma-related ICD-10-CM code suggestions."
  • "Find ICD-10-CM names for codes starting with E11."

Automation ideas

Run nightly checks for new autocomplete seed terms.

Batch-normalize diagnosis labels before a model-training job.

Create QA samples for billing-code review.

Append source URLs to internal audit records.

Limits and caveats

The actor returns matches from NLM Clinical Tables, not a medical coding decision.

Users are responsible for clinical review and compliance.

Broad terms may return many related codes.

The description field mirrors the NLM name for default rows.

Raw fields are included for traceability, not for end-user display.

Legality and compliance

The actor queries a public U.S. National Library of Medicine endpoint.

It does not collect patient data.

Do not submit protected health information as search terms unless your Apify usage and downstream systems are approved for that workflow.

Always have qualified professionals review diagnosis coding decisions.

Troubleshooting

If you get no results, try a shorter term or switch searchFields back to code,name.

If a broad term returns too many results, lower maxResults or use a more specific phrase.

If you need exact code lookups, use the code or prefix as the term and set searchFields to code.

Explore other automation-lab actors for healthcare, API, and data enrichment workflows:

FAQ

Is this an official NLM product?

No. It is an Apify actor that uses the public NLM Clinical Tables API.

Does it provide medical advice?

No. It returns lookup candidates and source data only.

Can I use it for autocomplete?

Yes. Use small maxResults values and repeated terms to build autocomplete suggestions.

Can I export CSV?

Yes. Apify datasets can be downloaded as CSV, Excel, JSON, XML, RSS, or HTML.

Does it need proxies?

No. The current implementation uses direct HTTP requests to a public API.

Support

If a run fails, share the run URL and input with support.

Include the term, max results, and search fields you used.

The raw NLM row fields make debugging easier.

Changelog

Initial version: ICD-10-CM lookup via the NLM Clinical Tables search endpoint.