AccessGUDID Medical Device Lookup Scraper avatar

AccessGUDID Medical Device Lookup Scraper

Pricing

Pay per event

Go to Apify Store
AccessGUDID Medical Device Lookup Scraper

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

Stas Persiianenko

Maintained by Community

Actor 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=false rows 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

FieldTypeDescription
deviceIdentifiersarrayDI or UDI values, one string per identifier.
identifiersTextstringOptional pasted text, CSV, or newline list.
maxItemsintegerMaximum identifiers processed from combined inputs.
concurrencyintegerParallel lookup count.
includeRawPayloadbooleanAdds the full AccessGUDID response to each row.
requestTimeoutSecsintegerTimeout for each lookup request.

Example input

{
"deviceIdentifiers": [
"00860005855124",
"00851424007140",
"00851424007119"
],
"maxItems": 100,
"concurrency": 5,
"includeRawPayload": true
}

Output data

FieldDescription
inputIdentifierOriginal identifier from input.
normalizedIdentifierTrimmed identifier used for lookup.
lookupModedi or udi.
foundWhether AccessGUDID returned a device.
statusfound, not_found, invalid, or error.
deviceIdPrimary Device Identifier when available.
brandNamePublished device brand name.
versionModelNumberVersion or model number.
companyNameLabeler/manufacturer company name.
deviceCommDistributionStatusCommercial distribution status.
gmdnTermsGMDN preferred terms when returned.
productCodesFDA product codes when returned.
identifiersPrimary/package identifiers from GUDID.
rawPayloadOptional 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

  1. Open the actor on Apify.
  2. Paste DI/UDI values into the list or text area.
  3. Keep the default concurrency unless you have a reason to tune it.
  4. Run the actor.
  5. 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 includeRawPayload enabled for compliance audits.
  • Disable includeRawPayload for lighter CSV exports.
  • Use found=false rows 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: false
  • status: not_found or invalid
  • errorMessage from 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 ApifyClient
client = 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.

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.