ICD-10-CM, LOINC & Clinical Terminology Scraper
parseforge/icd10-loinc-clinical-scraper
Developer toolsBusinessAutomation
Scrapes ICD-10-CM diagnosis codes, LOINC lab observations, RxTerms drugs, and other clinical terminology from the NLM Clinical Tables API. Returns each row as a flat record with search and pagination controls.
- Total users
- 2
- Monthly active
- 0
- Total runs
- 117
- Bookmarked
- 0
- Rating
- Not rated yet
- Last modified
- 12 days ago
Overview
ICD-10-CM, LOINC & Clinical Terminology Scraper
Scrape ICD-10-CM, LOINC, RxTerms, and other clinical terminology tables from the NLM Clinical Tables API. Get diagnosis codes, lab observations, drug names, and procedure terms in a flat, ready-to-analyze format. No API key or registration required. Export to CSV, JSON, Excel, or XML.
The NLM Clinical Tables API is the authoritative source for U.S. clinical terminology, but querying it directly means handling pagination, rate limits, and nested JSON. This actor reads the public tables for ICD-10-CM diagnosis codes, LOINC lab observations, RxTerms drug names, disease names, conditions, and procedures, and returns each matching row in one fixed schema. Search by code or display name, or browse an entire table from the top.
| Who uses it | What they scrape NLM Clinical Tables for |
|---|---|
| Health data analysts | Build clean reference datasets of diagnosis codes or lab observations for analytics. |
| EHR integration engineers | Pull current ICD-10-CM or LOINC codes to map clinical data in healthcare applications. |
| Clinical researchers | Gather standardized terminology for study protocols or data harmonization. |
| Medical billing specialists | Verify billable ICD-10-CM codes and their descriptions for claims. |
What it does
This Actor collects rows from the NLM Clinical Tables API for the table you select, filtered by an optional search term, and returns each row as a flat record.
- ๐ Six clinical tables: ICD-10-CM diagnosis codes, LOINC lab observations, RxTerms drugs, disease names, conditions, and procedures.
- ๐ Search or browse: Filter by code or display name, or leave the query empty to collect from the top of the table.
- ๐ Flat output: Every row is returned as a simple object with the table's native fields, ready for CSV or JSON export.
- โ๏ธ Pagination control: Set the page size up to the NLM maximum of 500 rows per request and cap the total codes collected.
Results export to CSV, JSON, Excel, or XML, or straight from the API.
What you can do with NLM Clinical Tables data
๐ Build a diagnosis code reference.
A health data analyst runs the actor on the icd10cm table with no query to collect all billable ICD-10-CM codes and descriptions for a data warehouse lookup table.
๐ฌ Harmonize lab data.
A clinical researcher searches the loinc_items table for 'glucose' to get the standard LOINC codes and names for mapping local lab results in a multi-site study.
๐ Verify drug terminology.
An EHR integration engineer queries the rxterms table for a drug name to retrieve its RxTerms code, dose, strength, and route for medication reconciliation.
๐ฅ Support billing workflows.
A medical billing specialist searches the icd10cm table for a diagnosis term to confirm the correct billable code and description before submitting a claim.
Why choose this scraper
| What you get | |
|---|---|
| No API key | The NLM Clinical Tables API is open, so you can start scraping immediately without registration. |
| Authoritative source | Data comes directly from the U.S. National Library of Medicine, the official publisher of these terminologies. |
| Flexible search | Match on code or display name, or browse an entire table when you need a full reference set. |
| Structured output | Each row is a flat object with the table's fields, making it easy to load into databases or spreadsheets. |
How it compares
No other Store actor targets NLM Clinical Tables the same way, so the honest comparison is with the alternatives teams actually weigh.
| ICD-10-CM, LOINC & Clinical Terminology Scraper | Build it in-house | By hand | |
|---|---|---|---|
| Setup | Run it now, zero config | Days of engineering | None, but hours per pull |
| When NLM Clinical Tables changes | Maintained for you | You fix it | You re-learn the page |
| Proxies, retries, anti-bot | Built in | Your problem | Browser only |
| Output | Fixed JSON schema, CSV/Excel export | Whatever you build | Copy-paste |
| Cost | Pay per result | Engineering time | Analyst hours |
Configure the run
Drive the Actor with a table selection and an optional search term, and set the maximum number of codes and the page size to control the run. The Input tab lists every parameter.
A first run with the defaults:
{
"table": "icd10cm",
"query": "diabetes",
"maxItems": 10,
"pageSize": 500
}
A larger pull:
{
"table": "icd10cm",
"query": "diabetes",
"maxItems": 200,
"pageSize": 500
}
Pricing
Pay-per-result: $0.037 per result collected. You pay only for the results written to your dataset.
| Results collected | Approximate cost |
|---|---|
| 100 results | $3.70 |
| 1,000 results | $37.00 |
| 10,000 results | $370.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
- Create a free Apify account with $5 in credit.
- Open the ICD-10-CM, LOINC & Clinical Terminology Scraper.
- Set your inputs and any filters, then click Start.
- 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 Clinical Tables 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/icd10-loinc-clinical-scraper"
Then prompt it in plain language to run the scraper and read back the results.
Troubleshooting
Why am I getting no results?
Check your search term. The actor matches against both code and display name, but the term must be exact or a substring. Try a broader term or leave the query empty to browse the table.
The run stops before collecting all codes.
Verify the 'Maximum codes' setting. If it is lower than the number of matching rows, the actor stops early. Increase the maximum or remove the search term to collect more.
I get an error about page size.
The NLM API has a hard maximum of 500 rows per request. Set the 'Page Size' to 500 or less. The actor will paginate automatically.
The output has unexpected fields.
Each table returns its own set of fields. Check the table you selected and refer to the NLM Clinical Tables documentation for field definitions.
FAQ
| Question | Answer |
|---|---|
| Do I need an API key to use this actor? | No. The NLM Clinical Tables API is open and does not require registration or an API key. You can start a run immediately. |
| Which clinical tables can I scrape? | You can select from six tables: ICD-10-CM diagnosis codes, LOINC lab observations, RxTerms drugs, disease names, conditions, and procedures. |
| How do I search for a specific code or term? | Enter a search term in the 'Code or search term' field. The actor matches against both the code and the display name, so you can search for 'E11' or 'diabetes'. |
| Can I scrape an entire table? | Yes. Leave the search term empty and set the maximum codes high enough. The actor will paginate through the table from the top, respecting the NLM page size limit of 500 rows per request. |
| What is the maximum number of codes I can collect? | You can set the maximum codes up to 1,000,000 per run. The actor will stop when it reaches that number or the table ends. |
| What format is the output data in? | The actor returns each row as a flat JSON object with the table's native fields. You can export the dataset to CSV, JSON, Excel, or XML from the Apify platform. |
| Is the data up to date? | The actor queries the NLM Clinical Tables API in real time, so you get the current version of each terminology as published by the National Library of Medicine. |
| Can I schedule this actor to run regularly? | Yes. You can set up a schedule in Apify to run the actor daily, weekly, or at any interval to keep your terminology datasets current. |
Related actors
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.
Input
| Field | Type | What it does | Default |
|---|---|---|---|
| table required | string (6 options) | Which NLM Clinical Tables resource to query: - icd10cm: ICD-10-CM diagnosis codes (billable US) - loinc_items: LOINC laboratory and clinical observations - rxterms: RxTerms drug names with dose, strength, route - disease_names: disease name dictionary - conditions: common patient-reported conditions - procedures: common medical procedures | icd10cm |
| query | string | Search terms (matches code or display name). Leave empty to browse the whole table from the top. | diabetes |
| maxItems | integer | How many codes to collect per run. | 10 |
| pageSize | integer | Rows per API request (NLM hard max is 500). | 500 |
Pricing
from $27.75 per 1,000 results
| Charged for | What it is | Price each |
|---|---|---|
| result | Single result in the default dataset. | $0.02775 to $0.037 |
Tiered: the lower figure is the price on a higher Apify plan. Billing and the free credit live on Apify.
API
One POST returns the dataset directly. Same shape for every scraper in the library, so swapping the slug is the only change.
curl -X POST "https://api.apify.com/v2/acts/parseforge~icd10-loinc-clinical-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"helloWorld": 123
}' Examples
Input that runs as-is.
{
"helloWorld": 123
} Reviews
No reviews yet. Be the first.
Issues
We build and maintain this scraper, so a problem with it comes to us. Report it on the Apify listing and the thread stays attached to the scraper where the next person can find it: open an issue.
Broken and urgent, or you would rather not post in public? Write to parseforge@protonmail.com and it reaches the people who wrote it.
Related scrapers
Run ICD-10-CM, LOINC & Clinical Terminology Scraper on Apify All scrapers
