openFDA Device API

Device-related endpoints (adverse events, classifications, recalls, 510(k), PMA, UDI).

Documentation

📖
Documentation
https://open.fda.gov/apis/drug/
📖
APIReference
https://open.fda.gov/apis/drug/event/
📖
Documentation
https://open.fda.gov/apis/drug/label/
📖
Documentation
https://open.fda.gov/apis/drug/enforcement/
📖
Documentation
https://open.fda.gov/apis/drug/ndc/
📖
Documentation
https://open.fda.gov/apis/drug/drugsfda/
📖
Documentation
https://open.fda.gov/apis/drug/shortages/
📖
Documentation
https://open.fda.gov/apis/device/
📖
Documentation
https://open.fda.gov/apis/device/event/
📖
Documentation
https://open.fda.gov/apis/device/classification/
📖
Documentation
https://open.fda.gov/apis/device/enforcement/
📖
Documentation
https://open.fda.gov/apis/device/recall/
📖
Documentation
https://open.fda.gov/apis/device/510k/
📖
Documentation
https://open.fda.gov/apis/device/pma/
📖
Documentation
https://open.fda.gov/apis/device/udi/
📖
Documentation
https://open.fda.gov/apis/device/registrationlisting/
📖
Documentation
https://open.fda.gov/apis/device/covid19serology/
📖
Documentation
https://open.fda.gov/apis/food/
📖
Documentation
https://open.fda.gov/apis/food/enforcement/
📖
Documentation
https://open.fda.gov/apis/food/event/
📖
Documentation
https://open.fda.gov/apis/animalandveterinary/
📖
Documentation
https://open.fda.gov/apis/animalandveterinary/event/
📖
Documentation
https://open.fda.gov/apis/tobacco/
📖
Documentation
https://open.fda.gov/apis/tobacco/problem/
📖
Documentation
https://open.fda.gov/apis/other/
📖
Documentation
https://open.fda.gov/apis/other/nsde/
📖
Documentation
https://open.fda.gov/apis/other/substance/
📖
Documentation
https://open.fda.gov/apis/other/historicaldocument/

Specifications

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/openfda-device-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

openfda-device-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: openFDA Animal & Veterinary Device API
  description: openFDA is an Elasticsearch-based public API serving FDA data on drugs, devices, foods, animal/veterinary products, and tobacco. Each noun exposes one or more categories (adverse events, recall enforcement reports, labeling, classification, registration, etc.).
  version: '1.0'
  contact:
    name: openFDA
    url: https://open.fda.gov/apis
    email: open@fda.hhs.gov
  license:
    name: CC0 1.0 Universal (Public Domain Dedication)
    url: https://creativecommons.org/publicdomain/zero/1.0/
servers:
- url: https://api.fda.gov
  description: openFDA production API
security:
- apiKeyQuery: []
- {}
tags:
- name: Device
  description: Device-related endpoints (adverse events, classifications, recalls, 510(k), PMA, UDI).
paths:
  /device/event.json:
    get:
      tags:
      - Device
      summary: Device adverse events (MAUDE)
      description: Query the Manufacturer and User Facility Device Experience (MAUDE) database for medical device adverse event reports.
      operationId: searchDeviceEvents
      parameters:
      - $ref: '#/components/parameters/Search'
      - $ref: '#/components/parameters/Sort'
      - $ref: '#/components/parameters/Count'
      - $ref: '#/components/parameters/Limit'
      - $ref: '#/components/parameters/Skip'
      responses:
        '200':
          $ref: '#/components/responses/SearchResults'
  /device/enforcement.json:
    get:
      tags:
      - Device
      summary: Device recall enforcement reports
      operationId: searchDeviceEnforcement
      parameters:
      - $ref: '#/components/parameters/Search'
      - $ref: '#/components/parameters/Sort'
      - $ref: '#/components/parameters/Count'
      - $ref: '#/components/parameters/Limit'
      - $ref: '#/components/parameters/Skip'
      responses:
        '200':
          $ref: '#/components/responses/SearchResults'
  /device/recall.json:
    get:
      tags:
      - Device
      summary: Device recalls
      operationId: searchDeviceRecalls
      parameters:
      - $ref: '#/components/parameters/Search'
      - $ref: '#/components/parameters/Sort'
      - $ref: '#/components/parameters/Count'
      - $ref: '#/components/parameters/Limit'
      - $ref: '#/components/parameters/Skip'
      responses:
        '200':
          $ref: '#/components/responses/SearchResults'
  /device/classification.json:
    get:
      tags:
      - Device
      summary: Device product classifications
      operationId: searchDeviceClassification
      parameters:
      - $ref: '#/components/parameters/Search'
      - $ref: '#/components/parameters/Sort'
      - $ref: '#/components/parameters/Count'
      - $ref: '#/components/parameters/Limit'
      - $ref: '#/components/parameters/Skip'
      responses:
        '200':
          $ref: '#/components/responses/SearchResults'
  /device/510k.json:
    get:
      tags:
      - Device
      summary: 510(k) clearances
      operationId: searchDevice510k
      parameters:
      - $ref: '#/components/parameters/Search'
      - $ref: '#/components/parameters/Sort'
      - $ref: '#/components/parameters/Count'
      - $ref: '#/components/parameters/Limit'
      - $ref: '#/components/parameters/Skip'
      responses:
        '200':
          $ref: '#/components/responses/SearchResults'
  /device/pma.json:
    get:
      tags:
      - Device
      summary: Premarket Approval (PMA) records
      operationId: searchDevicePMA
      parameters:
      - $ref: '#/components/parameters/Search'
      - $ref: '#/components/parameters/Sort'
      - $ref: '#/components/parameters/Count'
      - $ref: '#/components/parameters/Limit'
      - $ref: '#/components/parameters/Skip'
      responses:
        '200':
          $ref: '#/components/responses/SearchResults'
  /device/registrationlisting.json:
    get:
      tags:
      - Device
      summary: Device registrations and listings
      operationId: searchDeviceRegistrationListing
      parameters:
      - $ref: '#/components/parameters/Search'
      - $ref: '#/components/parameters/Sort'
      - $ref: '#/components/parameters/Count'
      - $ref: '#/components/parameters/Limit'
      - $ref: '#/components/parameters/Skip'
      responses:
        '200':
          $ref: '#/components/responses/SearchResults'
  /device/udi.json:
    get:
      tags:
      - Device
      summary: Unique Device Identifier (UDI) database
      operationId: searchDeviceUDI
      parameters:
      - $ref: '#/components/parameters/Search'
      - $ref: '#/components/parameters/Sort'
      - $ref: '#/components/parameters/Count'
      - $ref: '#/components/parameters/Limit'
      - $ref: '#/components/parameters/Skip'
      responses:
        '200':
          $ref: '#/components/responses/SearchResults'
  /device/covid19serology.json:
    get:
      tags:
      - Device
      summary: COVID-19 serology testing data
      operationId: searchCovid19Serology
      parameters:
      - $ref: '#/components/parameters/Search'
      - $ref: '#/components/parameters/Sort'
      - $ref: '#/components/parameters/Count'
      - $ref: '#/components/parameters/Limit'
      - $ref: '#/components/parameters/Skip'
      responses:
        '200':
          $ref: '#/components/responses/SearchResults'
components:
  parameters:
    Limit:
      name: limit
      in: query
      description: Maximum number of records to return (max 1000).
      required: false
      schema:
        type: integer
        minimum: 1
        maximum: 1000
        default: 1
    Sort:
      name: sort
      in: query
      description: Field to sort by, with optional direction (e.g. `receivedate:desc`).
      required: false
      schema:
        type: string
    Count:
      name: count
      in: query
      description: Field to count occurrences against (returns aggregated terms).
      required: false
      schema:
        type: string
    Skip:
      name: skip
      in: query
      description: Number of records to skip for pagination (max 25,000).
      required: false
      schema:
        type: integer
        minimum: 0
        maximum: 25000
        default: 0
    Search:
      name: search
      in: query
      description: Lucene-style search expression scoped to the dataset's fields.
      required: false
      schema:
        type: string
      example: receivedate:[2024-01-01+TO+2024-12-31]
  responses:
    SearchResults:
      description: Successful query result.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SearchResponse'
  schemas:
    SearchResponse:
      type: object
      properties:
        meta:
          $ref: '#/components/schemas/Meta'
        results:
          type: array
          items:
            type: object
            additionalProperties: true
    Meta:
      type: object
      properties:
        disclaimer:
          type: string
        terms:
          type: string
          format: uri
        license:
          type: string
          format: uri
        last_updated:
          type: string
          format: date
        results:
          type: object
          properties:
            skip:
              type: integer
            limit:
              type: integer
            total:
              type: integer
  securitySchemes:
    apiKeyQuery:
      type: apiKey
      in: query
      name: api_key
      description: 'Free openFDA API key (obtain at https://open.fda.gov/apis/authentication/). Without a key: 240 req/min and 1,000 req/day per IP. With a key: 240 req/min and 120,000 req/day per key.'