ParseForge Scrapers

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.

Run this scraper See the API call
Total users
2
Monthly active
0
Total runs
117
Bookmarked
0
Rating
Not rated yet
Last modified
12 days ago

Overview

ParseForge

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

  1. Create a free Apify account with $5 in credit.
  2. Open the ICD-10-CM, LOINC & Clinical Terminology 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 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

FieldTypeWhat it doesDefault
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 forWhat it isPrice 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.

POST ยท run and get results
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.

input.json
{
  "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