Tools reference

Firms and investigators

Site profiles by firm id or FEI, and FDA investigator profiles with what each one cites most. Each tool is an MCP tool and a REST endpoint with the same name and parameters.

search_firmsSearch firms and sites#

GET/api/intel/v1/firmsMCP tool: search_firmsread-only

Find firms / inspected sites in the FDA Intel catalog by name, alias, FEI or place. A name query matches firms whose name contains every word (exact and prefix matches first); only if none do does it fall back to a short list of similar names (match: fuzzy). Returns firm ids, FEI, location, document counts and last document date.

Also callable as /api/intel/v1/call/search_firms.

Parameters

qstring
Firm name, alias, FEI or slug.
feistring
Exact FEI.
citystring
City.
statestring
State.
countrystring
Country.
limitinteger
Results per page (default 25, max 100).
offsetinteger
Skip this many results (use next_offset from the previous page).

Example request

curl "https://fdaintel.ai/api/intel/v1/firms?q=Example+Pharma&country=India" \
  -H "Authorization: Bearer $FDA_INTEL_API_KEY"
Example response (200, shortened, made-up values)
200 OK · application/json
{
  "total": 1,
  "offset": 0,
  "limit": 25,
  "returned": 1,
  "next_offset": null,
  "results": [
    {
      "id": "3001234567",
      "name": "Example Pharma Ltd.",
      "aliases": [
        "Example Pharma Unit II"
      ],
      "fei": "3001234567",
      "city": "Hyderabad",
      "state": "Telangana",
      "country": "India",
      "establishment_type": "Manufacturer",
      "documents": 5,
      "last_document_date": "2025-09-30",
      "types": [
        "483",
        "warning_letter"
      ],
      "url": "https://fdaintel.ai/firm/3001234567"
    }
  ],
  "match": "all_words"
}

get_firmFirm / site profile#

GET/api/intel/v1/firms/{id}MCP tool: get_firmread-only

Full profile of a firm or site (by firm id, numeric id or FEI): all its documents (paged), investigators who inspected it, most-cited CFR sections, observation topics and system areas, inspection classifications, warning letters, and FDA public history for the FEI (inspections, compliance actions, recalls, import refusals, import alerts). Use for pre-inspection briefs.

Also callable as /api/intel/v1/call/get_firm.

Parameters

idstring, in pathrequired
Firm id (slug), numeric firm id, or FEI.
limitinteger
Documents per page (default 100, max 500).
offsetinteger
Skip this many results (use next_offset from the previous page).

Example request

curl "https://fdaintel.ai/api/intel/v1/firms/3001234567?limit=25" \
  -H "Authorization: Bearer $FDA_INTEL_API_KEY"
Example response (200, shortened, made-up values)
200 OK · application/json
{
  "firm": {
    "id": "3001234567",
    "name": "Example Pharma Ltd.",
    "aliases": [],
    "fei": "3001234567",
    "city": "Hyderabad",
    "state": "Telangana",
    "country": "India",
    "establishment_type": "Manufacturer",
    "url": "https://fdaintel.ai/firm/3001234567"
  },
  "documents": {
    "total": 5,
    "offset": 0,
    "limit": 25,
    "returned": 1,
    "next_offset": 1,
    "results": [
      {
        "id": "ex4mpl3d0c01",
        "doc_type": "483",
        "label": null,
        "title": "Form 483 · Example Pharma Ltd. · 2025-03-14",
        "firm_name": "Example Pharma Ltd.",
        "firm_name_on_document": "Example Pharma Ltd.",
        "firm_id": "3001234567",
        "fei": "3001234567",
        "street": "1 Example Road",
        "city": "Hyderabad",
        "state": "Telangana",
        "zip": "500001",
        "country": "India",
        "document_date": "2025-03-14",
        "issue_date": "2025-03-14",
        "inspection_start": "2025-03-03",
        "inspection_end": "2025-03-14",
        "date_estimated": false,
        "center_program": "Drugs (CDER)",
        "establishment_type": "Manufacturer",
        "page_count": 9,
        "observation_count": 6,
        "investigator_names": "Jane Example",
        "summary": "Laboratory records were incomplete and out-of-specification results were not investigated.",
        "marcs_cms": null,
        "available": true,
        "has_text": true,
        "price_cents": 9900,
        "url": "https://fdaintel.ai/d/ex4mpl3d0c01",
        "owned": false
      }
    ]
  },
  "investigators": [
    {
      "id": "jane-example",
      "name": "Jane Example",
      "documents": 2
    }
  ],
  "top_cfr_sections": [
    {
      "section": "211.160",
      "heading": "General requirements",
      "documents": 2,
      "citations": 3
    }
  ],
  "top_topics": [
    {
      "topic": "lab_controls",
      "observations": 4
    }
  ],
  "inspection_classifications": [
    {
      "classification": "OAI",
      "n": 1
    },
    {
      "classification": "VAI",
      "n": 2
    }
  ],
  "warning_letters": [
    {
      "document_id": "ex4mpl3d0c02",
      "letter_date": "2025-09-30",
      "subject": "CGMP/Finished Pharmaceuticals/Adulterated",
      "violation_count": 3,
      "closeout_date": null
    }
  ],
  "fda_history": {
    "summary": {
      "fda_inspections": 4,
      "oai_inspections": 1,
      "warning_letters": 1,
      "recalled_products": 0,
      "import_refusals": 2
    }
  }
}

search_investigatorsSearch FDA investigators#

GET/api/intel/v1/investigatorsMCP tool: search_investigatorsread-only

Find FDA investigators by name (fuzzy, any variant). Returns ids, document and site counts, first/last seen.

Also callable as /api/intel/v1/call/search_investigators.

Parameters

qstring
Investigator name or part of it.
limitinteger
Results per page (default 25, max 100).
offsetinteger
Skip this many results (use next_offset from the previous page).

Example request

curl "https://fdaintel.ai/api/intel/v1/investigators?q=Jane+Example" \
  -H "Authorization: Bearer $FDA_INTEL_API_KEY"
Example response (200, shortened, made-up values)
200 OK · application/json
{
  "total": 1,
  "offset": 0,
  "limit": 25,
  "returned": 1,
  "next_offset": null,
  "results": [
    {
      "id": "jane-example",
      "name": "Jane Example",
      "name_variants": [
        "J. Example"
      ],
      "documents": 48,
      "sites": 41,
      "first": "2016-02-09",
      "last": "2025-03-14",
      "form_483s": 44,
      "eirs": 4,
      "oai_inspections": 9,
      "classified_inspections": 40,
      "url": "https://fdaintel.ai/investigator/jane-example"
    }
  ]
}

get_investigatorInvestigator profile#

GET/api/intel/v1/investigators/{id}MCP tool: get_investigatorread-only

Full profile of an FDA investigator: stats (483s, EIRs, average observations, inspection length, OAI share), every document (paged), sites inspected, co-investigators, the CFR sections, topics and system areas they cite most, classifications and centers by year. Use for pre-inspection briefs.

Also callable as /api/intel/v1/call/get_investigator.

Parameters

idstring, in pathrequired
Investigator id (slug) from search_investigators.
limitinteger
Documents per page (default 100, max 500).
offsetinteger
Skip this many results (use next_offset from the previous page).

Example request

curl "https://fdaintel.ai/api/intel/v1/investigators/jane-example?limit=25" \
  -H "Authorization: Bearer $FDA_INTEL_API_KEY"
Example response (200, shortened, made-up values)
200 OK · application/json
{
  "investigator": {
    "id": "jane-example",
    "name": "Jane Example",
    "name_variants": [
      "J. Example"
    ],
    "url": "https://fdaintel.ai/investigator/jane-example"
  },
  "stats": {
    "documents": 48,
    "sites": 41,
    "first": "2016-02-09",
    "last": "2025-03-14",
    "form_483s": 44,
    "eirs": 4,
    "oai_inspections": 9,
    "classified_inspections": 40,
    "avg_observations_per_483": 5.8,
    "avg_inspection_days": 7
  },
  "top_cfr_sections": [
    {
      "section": "211.192",
      "heading": "Production record review",
      "documents": 14,
      "citations": 17
    }
  ],
  "top_topics": [
    {
      "topic": "investigations",
      "observations": 21
    }
  ],
  "sites_inspected": [
    {
      "firm_name": "Example Pharma Ltd.",
      "firm_id": "3001234567",
      "fei": "3001234567",
      "country": "India",
      "documents": 2,
      "last": "2025-03-14",
      "types": [
        "483"
      ]
    }
  ],
  "co_investigators": [
    {
      "id": "sam-sample",
      "name": "Sam Sample",
      "documents": 6
    }
  ],
  "documents": {
    "total": 48,
    "offset": 0,
    "limit": 25,
    "returned": 1,
    "next_offset": 1,
    "results": [
      {
        "id": "ex4mpl3d0c01",
        "doc_type": "483",
        "label": null,
        "title": "Form 483 · Example Pharma Ltd. · 2025-03-14",
        "firm_name": "Example Pharma Ltd.",
        "firm_name_on_document": "Example Pharma Ltd.",
        "firm_id": "3001234567",
        "fei": "3001234567",
        "street": "1 Example Road",
        "city": "Hyderabad",
        "state": "Telangana",
        "zip": "500001",
        "country": "India",
        "document_date": "2025-03-14",
        "issue_date": "2025-03-14",
        "inspection_start": "2025-03-03",
        "inspection_end": "2025-03-14",
        "date_estimated": false,
        "center_program": "Drugs (CDER)",
        "establishment_type": "Manufacturer",
        "page_count": 9,
        "observation_count": 6,
        "investigator_names": "Jane Example",
        "summary": "Laboratory records were incomplete and out-of-specification results were not investigated.",
        "marcs_cms": null,
        "available": true,
        "has_text": true,
        "price_cents": 9900,
        "url": "https://fdaintel.ai/d/ex4mpl3d0c01",
        "owned": false
      }
    ]
  }
}