Back to Home

Pharma & Controlled Substances API

DEA registration lookup, FDA drug search, shortages, and recalls

https://api.compliancegrid.ai/v1/pharma
13 endpoints
~45ms avg response

Overview

The Pharma & Controlled Substances API combines DEA registration verification with FDA drug data. Look up DEA registrations by number or search by name/state, validate DEA number checksums, and access drug schedule reference data. Integrates with the openFDA API for real-time drug NDC search, drug shortage tracking, and recall monitoring.

Key Features

DEA registration lookup by DEA number with checksum validation
DEA registration search by name, state, schedule, or business activity
DEA number format and checksum validation
FDA drug search via openFDA — search by brand name, generic name, or manufacturer
NDC (National Drug Code) lookup with detailed product information
Drug shortage tracking via openFDA with severity and status
Drug recall monitoring via openFDA with classification and reason
Reference data: DEA schedules (I-V) and business activity codes

Endpoints

GET/v1/pharma/dea/lookup/:deaNumber
POST/v1/pharma/dea/lookup
POST/v1/pharma/dea/search
GET/v1/pharma/dea/validate/:deaNumber
GET/v1/pharma/fda/drug/search
POST/v1/pharma/fda/drug/search
GET/v1/pharma/fda/drug/ndc/:ndc
GET/v1/pharma/fda/shortages
POST/v1/pharma/fda/shortages
GET/v1/pharma/fda/recalls
POST/v1/pharma/fda/recalls
GET/v1/pharma/reference/dea-schedules
GET/v1/pharma/reference/business-activities
View full API reference

Quick Example

pharma-example.ts
// Validate and look up a DEA registration
const resp = await fetch(
  "https://api.compliancegrid.ai/v1/pharma/dea/lookup/BJ1234563",
  { headers: { "Authorization": "Bearer " + process.env.CG_TOKEN } }
);
const dea = await resp.json();
console.log(dea.found);     // true
console.log(dea.registration.registrantName);
console.log(dea.registration.schedules); // ["II", "IIN", "III"]

// Search FDA for drug recalls
const recalls = await fetch(
  "https://api.compliancegrid.ai/v1/pharma/fda/recalls?q=metformin&limit=5",  
  { headers: { "Authorization": "Bearer " + process.env.CG_TOKEN } }
);
const data = await recalls.json();
data.results.forEach(r => {
  console.log(r.product_description, r.classification);
});

Sample Response

response.json
{
  "success": true,
  "deaNumber": "BJ1234563",
  "found": true,
  "registration": {
    "deaNumber": "BJ1234563",
    "registrantName": "JOHNSON MEDICAL CENTER",
    "address": "456 HOSPITAL DR",
    "city": "CHICAGO",
    "state": "IL",
    "zip": "60601",
    "businessActivity": "Hospital/Clinic",
    "drugSchedules": ["II", "IIN", "III", "IIIN", "IV", "V"],
    "expirationDate": "2027-03-31",
    "registrationType": "Practitioner"
  },
  "dataSource": { "name": "ComplianceGrid DEA Registry" }
}

Ready to integrate?

Get your free API key and start building in minutes.

Get API Key