ICD-10-CM Lookup Scraper avatar

ICD-10-CM Lookup Scraper

Pricing

from $7.50 / 1,000 results

Go to Apify Store
ICD-10-CM Lookup Scraper

ICD-10-CM Lookup Scraper

Searches the NLM ICD-10-CM Clinical Modification lookup and returns matched codes and full official descriptors as a flat dataset. Drive it by free-text terms and cap the results per run.

Pricing

from $7.50 / 1,000 results

Rating

0.0

(0)

Developer

ParseForge

ParseForge

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

11 days ago

Last modified

Share

ParseForge

ICD-10-CM Lookup Scraper

Scrape official ICD-10-CM codes from the NLM lookup by any symptom, condition, or code fragment, up to a million per run. Each match returns its exact code, full official description, and rank, so you can build a complete reference dataset without manual searching. Export to CSV, JSON, Excel, or XML.

The ICD-10-CM code set is the foundation of medical billing, epidemiology, and clinical research in the United States, but pulling codes one at a time from the NLM website is slow and error-prone when you need a batch of them. This ICD-10-CM Lookup Scraper reads the public NLM clinical tables directly from your search terms, collects every matched code and its official long name, and hands you a clean flat dataset. No API key, no registration, no coding against a raw HTML table.

Who uses itWhat they scrape NLM ICD-10-CM Lookup for
Medical coders and billersBuild a private index of official ICD-10-CM codes for a specialty instead of searching one by one.
Health data analystsPull a batch of codes by disease or symptom to cross-reference claims or electronic health record data.
Healthtech product managersPopulate a dropdown or autocomplete field with the exact NLM descriptors users expect.
Clinical researchersCollect the code set for a condition domain before running a literature or trial review.

What it does

This Actor searches the NLM ICD-10-CM Clinical Modification lookup for the terms you give it and returns each matched code as a flat row with its exact code and full official descriptor.

  • 🔍 Free-text search: type symptoms, conditions, diseases, or partial code strings (e.g. fever, diabetes, E11) as you would in the NLM lookup.
  • Batch collection: raise maxItems to collect thousands of codes in one unattended run, up to the NLM page limit.
  • 📋 Flat row output: every matched code returns as a single row with its code and full official descriptor, ready for a data warehouse or EHR mapping table.

Results export to CSV, JSON, Excel, or XML, or straight from the API.

What you can do with NLM ICD-10-CM Lookup data

📋 Build a specialty code list.

A medical coder searches terms like 'fracture radius' or 'COPD exacerbation' and collects the full official code set for their practice's top diagnoses in one export.

🧪 Map conditions to codes for a research cohort.

A clinical researcher enters a list of condition names and pulls the exact ICD-10-CM codes that match, then joins them to patient records for a retrospective study.

🖥️ Seed a clinical autocomplete.

A healthtech team runs the Actor against a curated set of symptoms and diseases, then loads the resulting codes and descriptors into their application's lookup field.

📊 Audit claims against the official code set.

A health plan analyst pulls all codes in a chapter (e.g., diabetes mellitus E08-E13) and cross-checks that provider claims use valid, billable codes.

Why choose this scraper

What you get
Exact NLM sourceYou get the codes directly from the U.S. National Library of Medicine tables, not a third-party index.
Full official descriptorEvery row carries the complete long name published by the CDC and CMS, not a truncated label.
No manual lookupsOne run replaces hundreds of individual browser searches when you are building a code reference.
Fixed flat schemaEvery run returns the same predictable columns, so your downstream ETL or spreadsheet will not break.

How it compares

One other Apify actor also scrapes the NLM ICD-10-CM lookup. Here is how they compare based on what each listing describes.

FeatureParseForgeICD-10 Codes Scraper
Free-text search by symptom or conditionYesYes
Full official code descriptorYesYes
Nullable hierarchy fields (parent, chapter)Not listedYes
Batch collection up to 1M codes per runYes, with maxItemsNot listed
No API key or registration requiredYesNot listed

Configure the run

Drive the Actor by one or more free-text search terms, and limit how many codes it collects per run with maxItems. The Input tab lists every parameter.

A first run with the defaults:

{
"maxItems": 10,
"terms": "fever"
}

A larger pull:

{
"maxItems": 200,
"terms": "fever"
}

Pricing

Pay-per-result: $0.0085 per result collected. You pay only for the results written to your dataset.

Results collectedApproximate cost
100 results$0.85
1,000 results$8.50
10,000 results$85.00

New Apify accounts start with $5 in free credit.

Free users

Free-plan runs return up to 10 results as a preview. Upgrade your Apify plan to collect up to 1,000,000 results per run.

Run it

  1. Create a free Apify account with $5 in credit.
  2. Open the ICD-10-CM Lookup Scraper.
  3. Set your inputs and any filters, then click Start.
  4. Export the results as CSV, Excel, JSON, or XML from the Dataset tab.

Run it programmatically through the Apify API (run-sync-get-dataset-items) or the ApifyClient for JavaScript and Python.

Use with AI agents (MCP)

Give an AI agent live access to NLM ICD-10-CM Lookup through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:

$claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/icd10cm-lookup-scraper"

Then prompt it in plain language to run the scraper and read back the results.

Troubleshooting

The run says it succeeded but I got zero results.

Your search term probably did not match any code in the NLM lookup. Try a broader term or a known code fragment like 'fever' or 'E11'. Check that the term is spelled the same way the NLM expects (e.g., 'hypertension' not 'high blood pressure').

I got fewer results than I expected.

The NLM search page only returns codes that match your exact term. It does not do fuzzy matching or expand to synonyms. Try shorter or more general search terms, and confirm that the codes you expect exist in the ICD-10-CM set for the current fiscal year.

The Actor timed out or stopped early.

A very high maxItems combined with a term that yields thousands of matches can hit the run's memory or time limit. Raise the run timeout in the advanced settings, or split the work into multiple runs with narrower search terms.

Some fields are missing or empty in my dataset.

The NLM returns only the fields it has for a given search. If the lookup table does not include a particular attribute for a code, that column will be empty in your output. This is expected behavior and matches the live site.

I entered a valid ICD-10 code but got no match.

Make sure the code is exactly correct, including the period (e.g., 'E11.9'). If the code is out of date or not part of the current fiscal year's ICD-10-CM set, the NLM will not return it. Verify the code on the live NLM lookup first.

FAQ

QuestionAnswer
Does this scraper return the full ICD-10-CM hierarchy?No. The NLM clinical lookup returns individual matched codes with their long descriptors and a rank, but it does not expose parent-child chapter or block relationships in a single view. If you need the hierarchy, you would need to source it separately.
Can I search by exact code instead of a term?Yes. Type any ICD-10-CM code or code fragment (e.g., 'E11.9' or 'E11') into the search term field, and the Actor will return the matching official entry from the NLM.
What is the maximum number of codes I can get in one run?You control the ceiling with the maxItems field. The limit you set caps how many matched records the Actor will collect, up to 1,000,000. The actual number you get depends on how many results the NLM returns for your search.
Does this cover ICD-10-PCS procedure codes?No. This Actor targets the ICD-10-CM (Clinical Modification) diagnosis code set. ICD-10-PCS procedure codes come from a different NLM lookup and are not returned by this endpoint.
Will I get the same results as the NLM website?Yes. The Actor reads the same public clinical tables that appear when you search on the NLM ICD-10-CM Lookup page, so the codes and descriptors match exactly.
How current are the codes?The codes reflect whatever the NLM publishes in its ICD-10-CM Clinical Modification tables on the day the Actor runs. Code sets update yearly, and the Actor always reads the live NLM site, so you get the latest data without a scheduled refresh.
Can I run searches for multiple terms in one go?The current input schema accepts one search term per run. To process a list of terms, you can loop the Actor from a scheduler or a parent run, passing one term per execution.
Do I need an API key or NLM UMLS account?No. The Actor reads the public NLM lookup pages directly. No registration, API key, or UMLS license is required.
What export formats do you support?You can download the results in CSV, JSON, Excel, or XML from the Apify dataset tab after the run finishes.

Browse the full ParseForge collection for more scrapers.

🆘 Need help? Email parseforge@protonmail.com with your run ID, your input, and what you expected.

⚠️ Disclaimer. This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by U.S. National Library of Medicine. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.