{
  "openapi": "3.0.1",
  "info": {
    "title": "FDA Medical Device Suppliers & Manufacturers Finder",
    "description": "Use this to find medical device manufacturers and suppliers registered with the FDA, from the official openFDA API. Input: device word, country, role. One result = one listing: firm, address, owner, brand names, product codes, class, 510(k). $0.75 per 1,000.",
    "version": "1.0",
    "x-build-id": "VFwiBnvPWYHOfMbX3"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/rel8ble~fda-device-suppliers-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-rel8ble-fda-device-suppliers-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/rel8ble~fda-device-suppliers-scraper/runs": {
      "post": {
        "operationId": "runs-sync-rel8ble-fda-device-suppliers-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/rel8ble~fda-device-suppliers-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-rel8ble-fda-device-suppliers-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "searchTerms": {
            "title": "Device words",
            "type": "array",
            "description": "Device words or phrases, e.g. \"catheter\" or \"surgical mask\". Each runs as its own search, matched on the FDA device name and the brand name. Leave empty to search on the filters only.",
            "items": {
              "type": "string"
            }
          },
          "countries": {
            "title": "Countries",
            "type": "array",
            "description": "Two-letter ISO codes of the establishment, e.g. \"DE\", \"CN\", \"US\". Any of them matches.",
            "items": {
              "type": "string"
            }
          },
          "states": {
            "title": "US states",
            "type": "array",
            "description": "Two-letter US state codes, e.g. \"CA\", \"MN\". Any of them matches.",
            "items": {
              "type": "string"
            }
          },
          "establishmentTypes": {
            "title": "Establishment roles",
            "type": "array",
            "description": "Keep only sites with one of these roles. Pick \"Manufacture Medical Device\" for makers, or the contract manufacturer role for white-label sourcing.",
            "items": {
              "type": "string",
              "enum": [
                "Manufacture Medical Device",
                "Manufacture Medical Device for Another Party (Contract Manufacturer)",
                "Export Device to the United States But Perform No Other Operation on Device",
                "Develop Specifications But Do Not Manufacture At This Facility",
                "Repack or Relabel Medical Device",
                "Complaint File Establishment per 21 CFR 820.198",
                "Sterilize Medical Device for Another Party (Contract Sterilizer)",
                "Foreign Private Label Distributor",
                "Manufacture Device in the United States for Export Only",
                "Remanufacture Medical Device",
                "Reprocess Single-Use Device"
              ]
            }
          },
          "productCodes": {
            "title": "FDA product codes",
            "type": "array",
            "description": "Three-character codes, e.g. \"HRY\". Exact way to find everyone listing one device type.",
            "items": {
              "type": "string"
            }
          },
          "deviceClasses": {
            "title": "Device classes",
            "type": "array",
            "description": "FDA risk class.",
            "items": {
              "type": "string",
              "enum": [
                "1",
                "2",
                "3",
                "U",
                "N",
                "f"
              ],
              "enumTitles": [
                "Class 1",
                "Class 2",
                "Class 3",
                "U (as filed)",
                "N (as filed)",
                "f (as filed)"
              ]
            }
          },
          "medicalSpecialties": {
            "title": "Medical specialties",
            "type": "array",
            "description": "Review panels, e.g. \"Dental\", \"Orthopedic\", \"Cardiovascular\".",
            "items": {
              "type": "string"
            }
          },
          "firmNames": {
            "title": "Company names",
            "type": "array",
            "description": "Find what one company lists: matched on the establishment name and the owner/operator name.",
            "items": {
              "type": "string"
            }
          },
          "uniqueSuppliers": {
            "title": "One row per supplier",
            "type": "boolean",
            "description": "On: keep only the first listing of each registered establishment, which gives a supplier list instead of a product list. Listings read and dropped are not charged.",
            "default": false
          },
          "maxResultsPerSearch": {
            "title": "Max results per search",
            "minimum": 0,
            "type": "integer",
            "description": "Rows to save per search term. 0 = everything that matches. You pay per row saved, so start small.",
            "default": 100
          },
          "apiKey": {
            "title": "openFDA API key (optional)",
            "type": "string",
            "description": "Free key from open.fda.gov. Not needed for normal runs. Without one, openFDA allows 1,000 requests a day per IP, and each request returns up to 1,000 rows."
          },
          "maxRequestRetries": {
            "title": "Max retries",
            "minimum": 0,
            "maximum": 20,
            "type": "integer",
            "description": "Retries per failed request.",
            "default": 5
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}