AccessGUDID Medical Device Lookup Scraper
Pricing
Pay per event
AccessGUDID Medical Device Lookup Scraper
Enrich DI and UDI medical device identifiers from the public NIH/NLM AccessGUDID database with manufacturer, model, GMDN, FDA and status metadata.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Stas Persiianenko
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Look up medical device identifiers in the public NIH/NLM AccessGUDID database and turn DI or UDI values into clean, export-ready device metadata.
The actor accepts Device Identifiers (DI), full UDI strings, pasted CSV, or newline lists. It returns one row per input with manufacturer, brand, model, GMDN, FDA product-code context, commercial distribution status, package identifiers, and the raw AccessGUDID JSON payload when you need audit traceability.
What does AccessGUDID Medical Device Lookup Scraper do?
AccessGUDID Medical Device Lookup Scraper enriches medical device identifiers from the U.S. FDA Global Unique Device Identification Database. It calls the AccessGUDID JSON lookup endpoint directly, normalizes the response, and keeps not-found inputs as structured rows.
Use it when you have a spreadsheet of UDI/DI values and need a repeatable API-friendly enrichment workflow instead of manual web lookups.
Who is it for?
- π₯ Hospital procurement teams normalizing device catalogs.
- β Medtech compliance teams checking published GUDID status.
- π¦ Distributors matching package identifiers to primary devices.
- π Recall and audit analysts enriching device records before downstream checks.
- π§Ύ Data teams preparing ERP, CMMS, or inventory imports.
Why use this actor?
- No login, browser, cookies, or proxy needed.
- Handles batch identifiers with bounded concurrency.
- Emits
found=falserows for missing devices, so spreadsheet row counts stay aligned. - Preserves raw source payload for long-tail AccessGUDID metadata.
- Works in Apify datasets, API integrations, schedules, and MCP workflows.
Data source
The actor uses the public AccessGUDID API hosted by NIH/NLM:
https://accessgudid.nlm.nih.gov/api/v3/devices/lookup.json
The output reflects data returned by that source at run time.
Input options
| Field | Type | Description |
|---|---|---|
deviceIdentifiers | array | DI or UDI values, one string per identifier. |
identifiersText | string | Optional pasted text, CSV, or newline list. |
maxItems | integer | Maximum identifiers processed from combined inputs. |
concurrency | integer | Parallel lookup count. |
includeRawPayload | boolean | Adds the full AccessGUDID response to each row. |
requestTimeoutSecs | integer | Timeout for each lookup request. |
Example input
{"deviceIdentifiers": ["00860005855124","00851424007140","00851424007119"],"maxItems": 100,"concurrency": 5,"includeRawPayload": true}
Output data
| Field | Description |
|---|---|
inputIdentifier | Original identifier from input. |
normalizedIdentifier | Trimmed identifier used for lookup. |
lookupMode | di or udi. |
found | Whether AccessGUDID returned a device. |
status | found, not_found, invalid, or error. |
deviceId | Primary Device Identifier when available. |
brandName | Published device brand name. |
versionModelNumber | Version or model number. |
companyName | Labeler/manufacturer company name. |
deviceCommDistributionStatus | Commercial distribution status. |
gmdnTerms | GMDN preferred terms when returned. |
productCodes | FDA product codes when returned. |
identifiers | Primary/package identifiers from GUDID. |
rawPayload | Optional full API response. |
Example output
{"inputIdentifier": "00860005855124","normalizedIdentifier": "00860005855124","lookupMode": "di","found": true,"status": "found","deviceId": "00860005855124","brandName": "ArchCath","versionModelNumber": "GateKeeper-110-GK20","companyName": "Arch Catheter LLC","deviceCommDistributionStatus": "In Commercial Distribution"}
How much does it cost to enrich AccessGUDID medical device identifiers?
This actor uses pay-per-event pricing: a small start fee and a per-result fee for each output row. Because it is HTTP-only and does not use proxies, it is designed for low-cost batch enrichment. Check the Apify pricing panel for the current tiered prices before running large batches.
How to use it
- Open the actor on Apify.
- Paste DI/UDI values into the list or text area.
- Keep the default concurrency unless you have a reason to tune it.
- Run the actor.
- Export the dataset as JSON, CSV, Excel, XML, or through the Apify API.
Tips for best results
- Use the DI portion of a UDI when you have it; DI lookups are direct.
- Keep
includeRawPayloadenabled for compliance audits. - Disable
includeRawPayloadfor lighter CSV exports. - Use
found=falserows to identify stale, mistyped, or non-U.S. identifiers. - Start with a small batch before scheduling thousands of records.
Handling not-found identifiers
The actor does not fail a run just because a device is missing. Instead, it returns a row with:
found: falsestatus: not_foundorinvaliderrorMessagefrom AccessGUDID when available
This makes it easier to join results back to your original spreadsheet.
Integrations
You can connect this actor to:
- Google Sheets exports for catalog enrichment.
- Inventory databases through Apify API clients.
- Recall-monitoring workflows that need normalized DI fields first.
- Procurement data-quality checks.
- Compliance dashboards and BI tools.
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/accessgudid-medical-device-lookup-scraper').call({deviceIdentifiers: ['00860005855124', '00851424007140'],includeRawPayload: true});console.log(run.defaultDatasetId);
API usage with Python
from apify_client import ApifyClientclient = ApifyClient('YOUR_APIFY_TOKEN')run = client.actor('automation-lab/accessgudid-medical-device-lookup-scraper').call(run_input={'deviceIdentifiers': ['00860005855124', '00851424007140'],'includeRawPayload': True,})print(run['defaultDatasetId'])
API usage with cURL
curl -X POST "https://api.apify.com/v2/acts/automation-lab~accessgudid-medical-device-lookup-scraper/runs?token=$APIFY_TOKEN" \-H 'Content-Type: application/json' \-d '{"deviceIdentifiers":["00860005855124","00851424007140"],"includeRawPayload":true}'
MCP usage
Use this actor from Apify MCP in Claude Code or Claude Desktop with:
https://mcp.apify.com/?tools=automation-lab/accessgudid-medical-device-lookup-scraper
Claude Code setup example:
$claude mcp add apify-accessgudid "https://mcp.apify.com/?tools=automation-lab/accessgudid-medical-device-lookup-scraper"
Claude Desktop JSON config example:
{"mcpServers": {"apify-accessgudid": {"url": "https://mcp.apify.com/?tools=automation-lab/accessgudid-medical-device-lookup-scraper"}}}
Example prompts:
- "Look up these AccessGUDID DI values and summarize manufacturer names."
- "Enrich this hospital device list and flag not-found identifiers."
- "Return the package identifiers for these UDI values."
Scheduling
Schedule the actor to run against recurring device lists, then connect the dataset export to your downstream workflow. For changing input files, update the run input through the Apify API or a task configuration.
Data quality notes
AccessGUDID records are maintained by labelers and FDA systems. The actor normalizes returned data, but it does not independently verify device claims, recalls, or current market availability beyond fields exposed by AccessGUDID.
Legality and ethical use
AccessGUDID is a public medical-device database. Use this actor for lawful compliance, procurement, catalog, and research workflows. Do not treat scraped output as medical advice or as a replacement for official regulatory review.
Troubleshooting
Why did my identifier return found=false?
The value may be a full UDI where the DI portion is different, a non-U.S. identifier, a typo, or a device not published in AccessGUDID.
Why is rawPayload large?
AccessGUDID returns nested metadata. Disable includeRawPayload if you only need top-level normalized columns.
Can I run thousands of identifiers?
Yes, but keep concurrency modest and respect the public API. Start with a small sample, then increase batch size.
Related scrapers
- https://apify.com/automation-lab/fda-510k-device-clearances-scraper
- https://apify.com/automation-lab/fda-device-classification-scraper
- https://apify.com/automation-lab/medical-device-alert-monitor
FAQ
Does this actor require an AccessGUDID API key?
No. The lookup endpoint is public and does not require authentication.
Does it use proxies?
No. It is an HTTP API actor and does not use Apify Proxy.
Does every input produce one output row?
Yes. Found, not-found, invalid, and error cases all produce rows so your input and output can be reconciled.
Can it search by brand name?
This version focuses on DI/UDI lookup enrichment. Brand search is a separate workflow and is not part of the MVP.
Is it browser-based?
No. It calls AccessGUDID JSON endpoints directly for speed and reliability.
Changelog
- 0.1: Initial DI/UDI lookup actor with normalized medical device metadata and raw payload support.