NLM ICD-10-CM Clinical Tables Lookup Scraper
Pricing
Pay per event
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
Maintained by CommunityActor 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?
| Field | Description |
|---|---|
inputTerm | Search term submitted by the user |
code | ICD-10-CM diagnosis code |
name | NLM diagnosis name |
diagnosisDescription | Human-readable diagnosis description |
rank | Result position for that term |
totalMatchesForTerm | NLM total match count |
source | Source label |
sourceUrl | Exact API request URL |
searchFields | Effective NLM search fields |
fetchedAt | ISO timestamp |
rawRow | Raw NLM tuple |
rawCodeList | Raw 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 ApifyClientclient = 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.
Related scrapers
Explore other automation-lab actors for healthcare, API, and data enrichment workflows:
- https://apify.com/automation-lab/medlineplus-scraper
- https://apify.com/automation-lab/hash-generator
- https://apify.com/automation-lab/website-contact-finder
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.