Conectar ClinicalTrials.gov v2 + openFDA + ChEMBL en un endpoint de inteligencia farmacológica con licencia limpia

El I+D farmacéutico, las startups de IA médica y los equipos de farmacovigilancia quieren lo mismo: un endpoint que reúna ensayos, etiquetas, eventos adversos y bioactividad con licencia limpia. Aquí está la arquitectura funcional, con las trampas que han sorprendido a equipos en producción.
Resumen
- •ClinicalTrials.gov v2 (REST + JSON) reemplazó al legado v1 en 2024 — el esquema es más limpio, pero la paginación, los campos opcionales y la deriva histórica pillan desprevenidos a los nuevos integradores.
- •openFDA cubre etiquetas de medicamentos (SPL), informes de eventos adversos de FAERS y datos de retiradas, gratis; limitado a 240 req/min sin autenticar, 120k/día con una clave.
- •ChEMBL te da bioactividad (IC50, Ki, Kd, EC50), dianas y ensayos — la dimensión estructural / mecanística que les falta a otras bases de datos.
- •La licencia comercial de DrugBank es la trampa: el uso académico está permitido; cualquier producto, incluso un SaaS pequeño, cae bajo términos de licencia comercial que la mayoría de los desarrolladores no leen hasta que reciben una notificación.
- •API Pick Clinical Search envuelve ClinicalTrials, openFDA, ChEMBL y la farmacología de DrugBank en un único endpoint POST — 30 créditos por llamada, licencia limpia, solo al éxito.
La forma del problema
Tres audiencias acaban necesitando aproximadamente el mismo pipeline de datos farmacológicos, por razones distintas:
- Los equipos de I+D biofarmacéutico y de reposicionamiento de fármacos quieren datos de bioactividad (ChEMBL), historial de ensayos (ClinicalTrials.gov) y señales de eventos adversos (FAERS) unidos para evaluar un candidato.
- Las startups de IA médica que construyen chatbots o capas de soporte a la decisión clínica necesitan etiquetas de medicamentos (SPL de openFDA) y datos de ensayos unidos para fundamentar las respuestas del LLM en fuentes regulatorias.
- Los equipos de farmacovigilancia quieren FAERS más los campos estructurados de las etiquetas de medicamentos más información de mecanismo de ChEMBL/DrugBank para evaluar la plausibilidad de una señal.
Cada una de estas audiencias acaba conectando cuatro bases de datos entre sí: ClinicalTrials.gov, openFDA, ChEMBL y DrugBank. Cada base de datos tiene su propio esquema, límites de tasa y términos de licencia. DrugBank es la que muerde — su cláusula de uso comercial pilla a equipos que la integraron en desarrollo sin leer la licencia, y notificar a fundadores de SaaS pequeño es algo real.
Aquí está la arquitectura que recomendamos, incluyendo un camino alternativo con licencia limpia que evita la trampa de DrugBank.
Las cuatro fuentes, un párrafo cada una
ClinicalTrials.gov v2
US National Library of Medicine. Registro definitivo de los ensayos clínicos registrados en EE. UU. y el estándar global de facto. v2 se lanzó en 2024 — REST + JSON, reemplazando el legado CSV/XML de v1. Gratis, con límite de tasa (10 req/seg). Documentación en clinicaltrials.gov/data-api/api. Fortalezas: autoritativo, exhaustivo, sin problemas de licencia. Debilidades: escasez de campos opcionales en estudios antiguos, fricción de migración de esquema para equipos que siguen en v1.
openFDA
API pública gestionada por la FDA. Cubre etiquetas de medicamentos (SPL — Structured Product Labels), FAERS (Adverse Event Reporting System), datos de retiradas y equivalentes de alimentos/dispositivos. Gratis, limitado a 240 req/min sin autenticar y 120,000 req/día con una clave de API. Fortalezas: fuente regulatoria autoritativa, datos estructurados, cobertura amplia. Debilidades: parsear SPL requiere entender las convenciones de HL7; la deduplicación de FAERS es problema del usuario.
ChEMBL
EBI / EMBL-EBI. Base de datos de bioactividad curada — mediciones de IC50, Ki, Kd, EC50 a través de compuestos, dianas y ensayos. Gratis, REST + JSON, sin dolores de cabeza de límite de tasa a volumen moderado. Fortalezas: datos estructurales y mecanísticos que nada más cubre. Debilidades: el foco es de grado investigación; los mapeos terapéuticos/clínicos son parciales.
DrugBank
Originado en la University of Alberta, ahora comercial. Mapeos fármaco-diana, farmacología, interacciones fármaco-fármaco, polifarmacología. El uso académico es gratis; el uso comercial requiere una licencia de pago. La licencia aplica a cualquier producto comercial, incluidas las herramientas SaaS gratuitas — lee los términos antes de integrar.
API Pick Clinical Search (alternativa con licencia limpia)
Búsqueda semántica a través de ClinicalTrials.gov, etiquetas de medicamentos de la FDA, bioactividad de ChEMBL y metadatos de farmacología de DrugBank que licenciamos. JSON in / JSON out, 30 créditos por llamada (~$0.03), facturación solo al éxito. La salida es coherente con los términos de datos regulatorios y estructurales; sin trampa de licencia comercial para los usuarios finales.
Lado a lado
| ClinicalTrials.gov v2 | openFDA | ChEMBL | DrugBank | API Pick Clinical | |
|---|---|---|---|---|---|
| Cobertura | Registro de ensayos | Etiquetas + FAERS + retiradas | Bioactividad, dianas, ensayos | Fármacos + dianas + interacciones | Las cuatro, semántica |
| Formato | REST + JSON | REST + JSON | REST + JSON | REST + JSON / volcados SQL | JSON, snippets ya formateados |
| Límite de tasa | 10 req/seg | 240/min sin auth, 120k/día con clave | Generoso | Según nivel de licencia | Por llamada (sin límite por usuario) |
| Licencia | Dominio público | Dominio público | CC-BY-SA | Académica gratis / comercial de pago | TOS de API Pick |
| Mejor encaje | Protocolos de ensayos, desambig. de patrocinadores | Etiquetas regulatorias, señales de EA | Mecanístico / estructural | Interacciones fármaco-fármaco, polifarm. | Recuperación por agentes IA sobre todo |
Código funcional: cada fuente
ClinicalTrials.gov v2
import requests
# Trials for a specific condition + intervention
r = requests.get(
"https://clinicaltrials.gov/api/v2/studies",
params={
"query.cond": "non-small cell lung cancer",
"query.intr": "pembrolizumab",
"filter.overallStatus": "RECRUITING",
"pageSize": 25,
"format": "json",
},
)
studies = r.json()["studies"]
for s in studies[:3]:
proto = s["protocolSection"]
nct = proto["identificationModule"]["nctId"]
title = proto["identificationModule"]["briefTitle"]
sponsor = proto["sponsorCollaboratorsModule"]["leadSponsor"]["name"]
print(f"{nct}: {title} (sponsor: {sponsor})")openFDA: etiqueta de medicamento + señal FAERS
import requests
from collections import Counter
# Drug label lookup
r = requests.get(
"https://api.fda.gov/drug/label.json",
params={"search": "openfda.brand_name:Lipitor", "limit": 1},
).json()
label = r["results"][0]
print("Indications:", label.get("indications_and_usage", ["—"])[0][:200])
# FAERS — most reported adverse events for atorvastatin
r = requests.get(
"https://api.fda.gov/drug/event.json",
params={
"search": 'patient.drug.medicinalproduct:"ATORVASTATIN CALCIUM"',
"count": "patient.reaction.reactionmeddrapt.exact",
"limit": 10,
},
).json()
print("Top reported reactions:")
for r_ in r["results"]:
print(f" {r_['term']}: {r_['count']}")ChEMBL: bioactividad de una diana
import requests
# Target search → activity for a specific target
r = requests.get(
"https://www.ebi.ac.uk/chembl/api/data/activity.json",
params={
"target_chembl_id": "CHEMBL204", # PD-L1
"standard_type": "IC50",
"limit": 25,
},
).json()
for a in r["activities"][:5]:
cid = a["molecule_chembl_id"]
val = a["standard_value"]
unit = a["standard_units"]
print(f"{cid}: IC50 = {val} {unit}")API Pick Clinical Search: una llamada, todas las fuentes
import requests
r = requests.post(
"https://www.apipick.com/api/search/clinical",
headers={"x-api-key": "pk_yourkey"},
json={"query": "PD-L1 inhibitors in NSCLC trials and adverse events"},
)
for hit in r.json()["results"][:5]:
print(hit["title"], "→", hit["url"], f"(source: {hit.get('source')})")
# Returns ranked semantic matches across trials + labels + bioactivity.
# 30 credits per call, only on HTTP 200.Tres patrones que aparecen en producción
1. Cribado de reposicionamiento de fármacos
Toma un fármaco aprobado. Trae su mecanismo (dianas de ChEMBL), sus indicaciones actuales (etiqueta de openFDA) y cualquier ensayo que lo pruebe en nuevas indicaciones (ClinicalTrials.gov). Cruza con FAERS en busca de señales de seguridad en la nueva indicación. El agente ensambla las cuatro piezas y saca a la luz candidatos que merecen el tiempo de un farmacólogo.
2. Triaje de señales de farmacovigilancia
Un cron horario trae nuevos informes de FAERS para una lista de vigilancia de fármacos. Calcula el Reporting Odds Ratio frente al resto de la base de datos. Marca cualquier señal donde ROR > 2 con un IC del 95% que excluya 1. Empareja con ClinicalTrials.gov para comprobar si la indicación de uso es on-label u off-label. Salida: una lista priorizada para la revisión matutina del equipo — análoga al patrón de briefing matutino para noticias.
3. Fundamentación de un asistente médico de IA
Para cualquier respuesta del asistente relacionada con un fármaco, trae la etiqueta de openFDA y úsala como la verdad fundamental autoritativa. Cita explícitamente la sección de la etiqueta de la FDA. Rehúsa responder preguntas sobre dosis cuando la etiqueta no se pueda recuperar. Este es el patrón de fundamentación por citas del escrito sobre jurisprudencia del Reino Unido aplicado a la medicina — con riesgos aún mayores.
La trampa de DrugBank
Vale la pena reenfatizarlo. La licencia académica de DrugBank es bien conocida, pero sus términos cambian en el momento en que cobras a alguien dinero por cualquier cosa que use los datos — incluido un producto gratuito cuyos usuarios pretendes convertir a pago más adelante. Varios fundadores de SaaS pequeño lo han descubierto por las malas tras recibir una notificación en su bandeja de entrada.
Dos caminos limpios:
- Paga la licencia comercial. El precio estándar es opaco; espera negociar. Para productos maduros con financiación esta es la respuesta correcta, porque los datos de interacciones fármaco-fármaco de DrugBank son difíciles de igualar.
- Usa alternativas con licencia limpia en las etapas tempranas. ChEMBL cubre la mayoría de los datos mecanísticos. RxNorm + DailyMed (NIH) cubren la normalización de nombres de fármacos y las etiquetas. FAERS cubre los eventos adversos. La combinación se pierde algunos datos específicos de DrugBank (tablas de interacciones ricas, polifarmacología) pero basta para la mayoría de los productos en etapa temprana. API Pick Clinical Search envuelve el subconjunto con licencia limpia por ti.
Dónde se generaliza esto
El patrón de 'conectar cuatro bases de datos públicas con manejo de límites de tasa y disciplina de licencia' aparece en muchas verticales reguladas — informes financieros (SEC + transcripciones de resultados + estadísticas bursátiles), patentes (USPTO + EPO + WIPO + JPO + KIPO + CNIPA), legal (Find Case Law + legislation.gov.uk + equivalentes extranjeros). La versión de datos farmacológicos es inusual sobre todo porque la base de licencias está más en disputa. Cualquier otro eje — diversidad de esquemas, límites de tasa, deduplicación, mapeo de identificadores entre fuentes — se generaliza.
Para la recuperación en una llamada a través de las fuentes de datos farmacológicos con licencia limpia, API Pick Clinical Search hace la conexión. Para las integraciones más profundas (parseo completo de SPL, cálculo de señales FAERS, árboles de dianas de ChEMBL) sigues yendo a cada fuente directamente. Elige el nivel de abstracción adecuado para cada parte del pipeline.
Preguntas frecuentes
¿Qué cambió en ClinicalTrials.gov v2 que rompe los pipelines?
Tres cosas. (1) Estructura del endpoint — v2 es REST + JSON en lugar del CSV/XML de v1. (2) Nombres de campos — el nuevo envoltorio protocolSection y los cambios de snake_case a camelCase son la refactorización más común. (3) Poblamiento de campos opcionales — muchos campos documentados como 'disponibles' están escasamente poblados, sobre todo en estudios antiguos. La migración suele llevar 2-3 días más una semana de corrección de bugs según van apareciendo estudios de casos límite.
¿Qué pasa con la licencia de DrugBank?
DrugBank es gratis para investigación académica y personal. Cualquier uso comercial — incluido un producto SaaS gratuito, el MVP de una startup o una herramienta usada en una consultoría de pago — cae bajo los términos de licencia comercial de DrugBank. La entrada de Thinklab 'Sounding the alarm on DrugBank's new license' de hace unos años sigue siendo el escrito canónico. Muchos desarrolladores integran DrugBank en desarrollo sin darse cuenta de que, en el momento en que envían un producto, la licencia aplica. Lee los términos antes de integrar, o usa una alternativa con licencia limpia.
¿Cómo hago detección básica de señales de farmacovigilancia?
Las medidas estándar de desproporcionalidad — Reporting Odds Ratio (ROR), Proportional Reporting Ratio (PRR), BCPNN bayesiano — sobre la base de datos de eventos adversos FAERS. Bibliotecas de código abierto como vigipy las implementan. La trampa es la deduplicación de FAERS: muchos informes son presentaciones duplicadas del mismo caso por distintas partes; bibliotecas como VigiMatch de la OMS lo manejan, pero lo pagas. Para la mayoría de los casos de uso de IA médica, el endpoint FAERS de openFDA más un cálculo simple de ROR basta para sacar a la luz señales que merece la pena investigar.
¿API Pick Clinical Search cumple con HIPAA?
Las fuentes de datos que envolvemos (ClinicalTrials.gov, openFDA, ChEMBL, metadatos de farmacología de DrugBank) no contienen información de salud protegida — cubren protocolos de ensayos, etiquetas de medicamentos, agregados de eventos adversos y datos estructurales/de bioactividad. El cumplimiento de HIPAA aplica a la PHI, que no aparece en nuestro índice. Si estás construyendo un producto aguas abajo que sí maneja PHI (p. ej. soporte a la decisión clínica sobre historiales de pacientes), tendrás que gestionarlo aparte. Los datos que fluyen por nuestro endpoint son coherentes con los datos regulatorios públicos.
¿Se puede usar la salida de esto para decisiones clínicas?
No. La salida de cualquier API de recuperación es informativa; no constituye consejo médico ni soporte a la decisión clínica. Usa los datos para apoyar a personal cualificado — un farmacéutico, un médico, un especialista regulatorio — no para reemplazarlo. Esto aplica a API Pick Clinical Search y a cualquier otra API de este ámbito.
APIs usadas en este artículo
Sarah Choy es la CEO de API Pick. Escribe sobre cómo construir APIs listas para producción para agentes de IA y flujos de trabajo con LLMs.