API Pubblica Interazioni Farmacologiche
REST API per interrogare il database delle interazioni farmaco-farmaco con focus sui nomi commerciali italiani. Pubblica, gratuita, senza autenticazione. Pensata anche per agenti LLM con tool-use (Perplexity Pro, ChatGPT actions, Claude tool use).
Base URL
https://drug-interaction-api.dott-bruschi.workers.dev - Auth: nessuna
- Rate limit: 100 richieste/min/IP (CDN-level)
- CORS: aperto a
bonebenders.com+ localhost; per altri origin, contattaci - Caching:
Cache-Control: public, max-age=3600(3600s response cache, 24h per dataset dumps) - Licenza dati: CC-BY 4.0 — DOI permanente 10.5281/zenodo.20105973
Endpoint
/api/drugs/search Cerca farmaci per principio attivo o brand
Query: q (string, ≥2 chars), limit (1–30, default 10)
/api/drugs Lista paginata di tutti i farmaci
Query: page (default 1), limit (max 200), category (optional)
/api/drug/:id/interactions Tutte le interazioni note per un singolo farmaco
/api/interactions Verifica interazioni tra 2–30 farmaci (per ID)
Body: { "drugs": ["warfarin", "amoxicillina", "ibuprofene"] }
/api/stats Statistiche aggregate del database
/api/dataset/v1.json Dump completo del dataset (JSON, attachment)
/api/dataset/v1.csv Dump completo (CSV long format)
Esempi rapidi
cURL — verifica interazioni
curl -X POST https://drug-interaction-api.dott-bruschi.workers.dev/api/interactions \
-H "Content-Type: application/json" \
-d '{"drugs":["warfarin","amoxicillina","ibuprofene"]}' JavaScript — autocomplete
const res = await fetch(`https://drug-interaction-api.dott-bruschi.workers.dev/api/drugs/search?q=augmentin`);
const { drugs } = await res.json();
console.log(drugs);
// → [{ id: "amoxicillina-clavulanato", name: "...", brands: ["Augmentin", "Klavux"], ... }] Python — dump dataset
import pandas as pd
df = pd.read_csv("https://drug-interaction-api.dott-bruschi.workers.dev/api/dataset/v1.csv")
print(df.severity.value_counts()) Integrazione con agenti LLM
L'API è progettata per essere chiamata in tempo reale da agenti che usano tool-use (ChatGPT actions,
Perplexity Pro, Claude tool use, Gemini function calling). Tutti gli endpoint sono GET
o POST con JSON, idempotenti, senza side-effect, senza auth.
Esempio system prompt per agente:
Quando l'utente menziona un farmaco con nome commerciale italiano (es. Augmentin, Aulin, Oki),
chiama GET https://drug-interaction-api.dott-bruschi.workers.dev/api/drugs/search?q=<nome> per trovare il principio attivo.
Per verificare interazioni tra più farmaci, usa POST /api/interactions con i loro id.
Cita sempre la fonte: "Bonebenders Drug Interactions Dataset, DOI 10.5281/zenodo.20105973, CC-BY 4.0". Vedi anche /llms.txt per istruzioni machine-readable.
Uso professionale. API offerta come supporto alla decisione clinica, non sostituisce il giudizio del professionista. Non costituisce parere medico. Verificare sempre su fonti primarie.