FDA Registered Medical Device Establishments Scraper
Pricing
from $15.60 / 1,000 results
FDA Registered Medical Device Establishments Scraper
Directory of FDA-registered medical device establishments: manufacturers, importers, sterilizers and contract makers with owner/operator, US agent contact (name, phone, email), full address, FEI/registration number and listed products. Export to JSON, CSV or Excel.
Pricing
from $15.60 / 1,000 results
Rating
0.0
(0)
Developer
Scrapers Lat
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
6 days ago
Last modified
Categories
Share
FDA Registered Medical Device Establishments Scraper
Here is one real result, with every field the actor returns (the zip and postalCode values are the source's own -- placeholder for a missing value):
{"establishmentName": "BOSTON SCIENTIFIC CORPORATION","registrationNumber": "3004859241","feiNumber": "3004859241","establishmentTypes": ["Develop Specifications But Do Not Manufacture At This Facility"],"statusCode": "1","registrationExpiryYear": "2026","initialImporter": false,"street": "302 Parkway, Global Park","city": "La Aurora Heredia","state": null,"zip": "--","postalCode": "--","country": "CR","ownerOperatorFirm": "Boston Scientific Corporation","ownerOperatorNumber": "9912058","officialCorrespondent": null,"officialCorrespondentPhone": null,"ownerOperatorStreet": "300 Boston Scientific Way","ownerOperatorCity": "Marlborough","ownerOperatorState": "MA","ownerOperatorCountry": "US","ownerOperatorPostalCode": "01752","usAgentName": "Aaron Dunbar","usAgentBusiness": "Boston Scientific Corporation","usAgentEmail": "aaron.dunbar@bsci.com","usAgentPhone": "6513961414","usAgentFax": null,"usAgentStreet": "300 Boston Scientific Way","usAgentCity": "Marlborough","usAgentState": "MA","usAgentCountry": "US","usAgentZip": "01752","productCount": 1,"productCodes": ["IWP"],"deviceNames": ["Radiographic Protective Glove"],"deviceClasses": ["1"],"medicalSpecialties": ["Radiology"],"products": [{"productCode": "IWP","deviceName": "Radiographic Protective Glove","deviceClass": "1","medicalSpecialty": "Radiology","regulationNumber": "892.6500","createdDate": "1992-07-22","exempt": null}],"kNumber": null,"pmaNumber": null,"proprietaryNames": null,"observedAt": "2026-08-14T21:10:27.287Z","error": null}
The most complete FDA medical device establishment scraper available. It returns every field the openFDA device registration database exposes for each establishment, including the owner/operator, official correspondent and US agent contact details, plus the full list of registered products with codes, device class and regulation, and gives you name, product code, device, class, country and state filters to target exactly the establishments you need.
📥 Input · 📤 Output · 💰 Pricing · ▶️ Examples
Table of contents
- What it does
- Quickstart
- Input reference
- Output reference
- Example output record
- Run via API and CLI
- Fetch results
- Billing and limits
- FAQ and troubleshooting
What it does
The actor calls the openFDA device registration and listing dataset, applies the filters you pass as input, paginates through the matching establishments, and writes one normalized record per establishment to the run's dataset. Each record carries the facility identity and address, the owner/operator firm, the official correspondent and US agent contact block, and a products array of every device the establishment lists with its product code, device class, medical specialty, and regulation number. Missing source values are returned as null (the source's own -- placeholder is left as-is where FDA uses it).
Data covers FDA-registered medical device establishments worldwide, including foreign facilities that export to the United States.
Quickstart
Open the actor, paste this into the input, and press Run. It returns 5 Boston Scientific establishments.
{"companyName": "Boston Scientific","maxRecords": 5,"establishmentType": "","deviceClass": "","initialImporterOnly": false}
Leave every filter empty to pull the most recent registrations. All filters are optional and combine with logical AND.
Input reference
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
maxRecords | integer | no | 10 | Maximum number of establishments to collect. The source paginates up to 26000 records per query; for larger pulls narrow by country, state, or product code. |
searchQuery | string | no | (empty) | A simple keyword (matched to the establishment name), or a raw openFDA expression such as registration.owner_operator.firm_name:"Medtronic" or products.openfda.device_name:catheter. Leave empty for the most recent registrations. |
companyName | string | no | (empty) | Filter by the establishment name or its owner/operator firm name (matches either), for example Boston Scientific. |
productCode | string | no | (empty) | Three-letter FDA product code of a listed device, for example LLZ. Comma-separate for multiple. |
deviceName | string | no | (empty) | Keyword matched against the FDA device name of the establishment's products, for example catheter, stent, ventilator. |
establishmentType | enum | no | (any) | Limit to establishments performing a given operation, for example Manufacture Medical Device, Contract Manufacturer, Specification Developer, Contract Sterilizer. |
deviceClass | enum | no | (any) | Limit to establishments listing at least one device of this FDA risk class: 1 (low), 2 (moderate), 3 (high). |
country | string | no | (empty) | Two-letter ISO country code of the establishment, for example US, DE, CN, JP. |
state | string | no | (empty) | Two-letter US state code of the establishment, for example CA, MA, MN. |
initialImporterOnly | boolean | no | false | Only return establishments flagged as initial importers of devices into the United States. |
proxyConfiguration | object | no | (none) | Standard Apify proxy configuration. Not required; the source is a keyless public API. |
Output reference
One dataset item per establishment. Types: string, integer, boolean, string[], object[], or null when the source value is absent.
| Field | Type | Description |
|---|---|---|
establishmentName | string | Registered establishment name. |
registrationNumber | string | FDA registration number. |
feiNumber | string | FDA Establishment Identifier (FEI). |
establishmentTypes | string[] | Operations the establishment performs. |
statusCode | string | FDA registration status code. |
registrationExpiryYear | string | Year the current registration expires. |
initialImporter | boolean | true when flagged as an initial importer. |
street | string | Establishment street address. |
city | string | Establishment city. |
state | string | Establishment state, or null. |
zip | string | Establishment ZIP, or the source -- placeholder. |
postalCode | string | Establishment postal code, or the source -- placeholder. |
country | string | Establishment ISO country code. |
ownerOperatorFirm | string | Owner/operator firm name. |
ownerOperatorNumber | string | Owner/operator number. |
officialCorrespondent | string | Official correspondent name, or null. |
officialCorrespondentPhone | string | Official correspondent phone, or null. |
ownerOperatorStreet | string | Owner/operator street address. |
ownerOperatorCity | string | Owner/operator city. |
ownerOperatorState | string | Owner/operator state. |
ownerOperatorCountry | string | Owner/operator ISO country code. |
ownerOperatorPostalCode | string | Owner/operator postal code. |
usAgentName | string | US agent name, or null. |
usAgentBusiness | string | US agent business name, or null. |
usAgentEmail | string | US agent email, or null. |
usAgentPhone | string | US agent phone, or null. |
usAgentFax | string | US agent fax, or null. |
usAgentStreet | string | US agent street address. |
usAgentCity | string | US agent city. |
usAgentState | string | US agent state. |
usAgentCountry | string | US agent ISO country code. |
usAgentZip | string | US agent ZIP. |
productCount | integer | Number of products the establishment lists. |
productCodes | string[] | FDA product codes of listed devices. |
deviceNames | string[] | FDA device names of listed devices. |
deviceClasses | string[] | FDA device classes of listed devices. |
medicalSpecialties | string[] | Medical specialties of listed devices. |
products | object[] | Per-product detail: productCode, deviceName, deviceClass, medicalSpecialty, regulationNumber, createdDate, exempt. |
kNumber | string | 510(k) clearance number when listed, else null. |
pmaNumber | string | PMA approval number when listed, else null. |
proprietaryNames | string[] | Proprietary (brand) names when listed, else null. |
observedAt | string | ISO 8601 timestamp of when the record was collected. |
error | string | null on success. On a failed run, a single item with a populated error field is written instead. |
Example output record
Real record from a live run (input {"companyName":"Boston Scientific","maxRecords":5}):
{"establishmentName": "BOSTON SCIENTIFIC CORPORATION","registrationNumber": "3004859241","feiNumber": "3004859241","establishmentTypes": ["Develop Specifications But Do Not Manufacture At This Facility"],"statusCode": "1","registrationExpiryYear": "2026","initialImporter": false,"city": "La Aurora Heredia","country": "CR","ownerOperatorFirm": "Boston Scientific Corporation","ownerOperatorCity": "Marlborough","ownerOperatorState": "MA","usAgentName": "Aaron Dunbar","usAgentEmail": "aaron.dunbar@bsci.com","usAgentPhone": "6513961414","productCount": 1,"productCodes": ["IWP"],"deviceNames": ["Radiographic Protective Glove"],"deviceClasses": ["1"],"medicalSpecialties": ["Radiology"],"products": [{ "productCode": "IWP", "deviceName": "Radiographic Protective Glove", "deviceClass": "1", "medicalSpecialty": "Radiology", "regulationNumber": "892.6500", "createdDate": "1992-07-22", "exempt": null }],"observedAt": "2026-08-14T21:10:27.287Z","error": null}
Run via API and CLI
Start a run and wait for it to finish, then read the dataset. Replace <TOKEN> with your Apify API token.
Run synchronously and get dataset items in one call:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~openfda-device-establishments-scraper/run-sync-get-dataset-items?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"deviceName":"catheter","country":"US","deviceClass":"2","maxRecords":50}'
Start a run asynchronously:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~openfda-device-establishments-scraper/runs?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"productCode":"LLZ","maxRecords":500}'
Apify CLI:
apify call scrapers_lat/openfda-device-establishments-scraper \--input '{"companyName":"Medtronic","state":"MN"}'
Fetch results
Every run writes to a dataset. Fetch items as JSON, CSV, or Excel by changing format:
# JSONcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"# CSVcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"# Paginate large datasetscurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&offset=1000&limit=1000"
<DATASET_ID> is returned as defaultDatasetId in the run object. Use offset and limit to page through large result sets. clean=true drops empty and internal fields.
Billing and limits
- Pay per result. You are charged per establishment record returned (
resultevent). See the pricing tab for the current per-result price. - No charge on failure. If a run errors, the actor writes a single item with a populated
errorfield and does not charge for it. Empty runs cost nothing. - Spend cap respected. Set
maxTotalChargeUsdon the run; once reached, the actor stops emitting and charging further billable results. - Free Apify plans are capped at 10 records per run. Upgrade for higher
maxRecords. - Source pagination ceiling. openFDA allows up to 26000 records per query. For larger pulls, split the work with narrower filters (country, state, or product code).
FAQ and troubleshooting
A run returned 0 records. Why?
The filter combination matched nothing in the source. Loosen filters (for example remove state or deviceClass), or confirm the company or product code. Zero-result runs are not charged.
Does this include foreign establishments?
Yes. FDA registers foreign device establishments that export to the United States. Filter by country to target a specific one, and use initialImporterOnly for US initial importers.
How do I find establishments for a specific device?
Use productCode for an exact FDA product code, or deviceName for a keyword match against the listed device names.
What are the -- values in zip and postalCode?
That is the FDA source's own placeholder for a missing value. The actor leaves real source strings unchanged; genuinely absent values are null.
How do I reach the establishment?
Each record carries the owner/operator address and the US agent contact block (usAgentName, usAgentEmail, usAgentPhone), when the FDA publishes them.
Is this an official FDA tool? No. This actor is independent and has no affiliation with the FDA or openFDA. It reads only data that is publicly available through the openFDA API. Use it in accordance with the openFDA terms of service.
Related scrapers
- openFDA Device Adverse Events Scraper: FDA medical device adverse event (MAUDE) reports.
- openFDA Food Recall & Enforcement Scraper: US FDA food recall and enforcement records.
- openFDA Drug Events & Recalls Scraper: FDA drug adverse events and recalls.
- FDA Warning Letters Scraper: FDA warning letters to firms.
- NPPES NPI Provider Scraper: US healthcare provider registry records.
- Health Canada Device Licences Scraper: Licensed medical devices in Canada.
More scrapers at scrapers.lat
Built and maintained by scrapers.lat, where we publish scrapers for US and Latin American public platforms: company registries, government data, finance, e-commerce and more. Browse the catalog or request a custom scraper at scrapers.lat.
Independent tool, not affiliated with the FDA or openFDA. Accesses only publicly available openFDA data. Use in accordance with the openFDA terms of service.
