REST API
Base URL https://api.nullary.ai. Read-only JSON, CORS enabled, no key required for the free tier.
GET /findings
Search negative findings. All parameters are optional and combine.
| Parameter | Description |
|---|---|
q | Compound-name search (e.g. imatinib). |
modality | Primary dimension: small_molecule, clinical_trial, antibody, peptide, crispr, adc, bispecific. |
source_type | Provenance: chembl, aact, pubchem, drugs_fda, … |
target_family | Small-molecule target class: kinase, gpcr, protease, … |
finding_type | The failure kind, e.g. inactive_compound. |
outcome | inactive, terminated, failed_safety, rejected_approval, … |
tier | curated (default — the credible dose-response / human-curated layer) or all (adds screening-grade high-throughput inactives, ~10× larger). Omit for curated. |
limit / offset | Pagination. limit is capped at 50 (default 24). |
Example:
curl "https://api.nullary.ai/findings?modality=clinical_trial&outcome=terminated&limit=24"{
"results": [
{
"id": "…",
"finding_type": "terminated_trial",
"modality": "clinical_trial",
"indication": "Major Depressive Episode",
"sponsor": "Stanford University",
"trial_status": "terminated",
"termination_reason": "Unable to obtain a reliable MRS signal",
"outcome": "terminated",
"source_type": "aact",
"source_url": "https://clinicaltrials.gov/study/NCT03254342",
"source_license": "public_domain",
"verification_status": "auto_published",
"extraction_confidence": 1
}
],
"limit": 24,
"offset": 0,
"has_more": true,
"query": { "modality": "clinical_trial", "outcome": "terminated", ... }
}GET /findings/{id}
A single finding by UUID, with extended provenance (compound structure, assay context, source text span, retraction status).
GET /stats
Dataset totals — including findings_curated (the high-confidence subset) — plus per-modality / per-source counts and the filter option lists. Cached hourly.
curl "https://api.nullary.ai/stats"See these endpoints in action on the live demo.
Analytics suite (Premium tier)
The Analytics suite is documented in detail in our Analytics paper including methods, validation, and limitations. Summary of what each analytic provides:
Coverage maps
Per-target aggregation of every measured negative finding, broken down by modality, source, assay context, and year. Descriptive — exact aggregations over the data layer with full provenance per record.
Access via MCP tool get_target_landscape or REST endpoint /v1/landscape/{target}.
Failure timelines
Dated chronology of when and how compounds against a target were tried and discontinued. Drawn from publication-year metadata on bioactivity records and trial start/termination dates on clinical records. Descriptive surfaces.
Access via REST endpoint /v1/timeline/{target}.
Tractability score
Per-target score predicting clinical progression at AUC 0.785 across 2,446 targets, externally validated at AUC 0.778 against Open Targets' structure-derived druggability (independent of Nullary's bioactivity data). Bootstrap-validated lift over popularity baseline (+0.036 [0.023, 0.048] on ChEMBL clinical label; +0.023 [0.005, 0.042] on independent structural label, both CIs exclude zero). Positioned as a calibrated competitive-landscape score, not a high-accuracy success predictor.
Built from features: best activity achieved, small-molecule failure rate, breadth of compounds tried, CRISPR essentiality. CRISPR essentiality alone for tractability is near chance (AUC 0.55).
Access via REST endpoint /v1/tractability/{target}.
Cross-modality views
Per-target joined view across CRISPR essentiality, small-molecule druggability, and clinical phase. The Analytics paper tested cross-modality prediction directly (likelihood-ratio test on CRISPR × chemistry interactions for clinical progression) and reported no predictive value over single-modality features (cross-validated AUC change +0.0003 [−0.0014, 0.0019]). The modalities are largely orthogonal (CRISPR ↔ chemistry Spearman −0.08, CRISPR ↔ clinical phase −0.08) — this independence is what makes the combined view informative: targets that are strong genetic dependencies yet chemically intractable, or vice versa, are identifiable from the view directly.
We offer the cross-modality view, not a cross-modality predictor.
Access via REST endpoint /v1/cross-modality/{target}.
Data-quality credential
Underlying all analytics: CRISPR negatives reproduce 98% across DepMap and BioGRID-ORCS (F1 0.89 on essential class); small-molecule negatives are validated through the bioactivity paper showing real-negative training beats decoy training on the realistic test for all 25 benchmark kinases (advantage robust under scaffold splitting, marginal under temporal evaluation).
See the Analytics paper for full methodology and stated limitations.