Integration
API
Integrate machine-generated preprint screening signals without losing their provenance or limitations.
Quick start
curl https://preprints.ai/v1/pipeline | jq '.assessments[0]'
No key is required for public reads. The default anonymous limit is 30 requests per minute.
Fetching a specific paper
# By DOI
curl https://preprints.ai/v1/score/10.1101/2025.01.15.633214
# Trigger a screening run if not cached
curl -X POST https://preprints.ai/v1/assess \
-H "content-type: application/json" \
-d '{"doi": "10.1101/2025.01.15.633214"}'
Python
import httpx
def get_screening_signal(doi: str) -> dict:
r = httpx.get(f"https://preprints.ai/v1/score/{doi}")
r.raise_for_status()
return r.json()["screening_signal"]
signal = get_screening_signal("10.1101/2025.01.15.633214")
print(signal["status"], signal["axes"])
# Always inspect axis status before displaying a value.
JavaScript
async function getScreeningSignal(doi) {
const r = await fetch(`/v1/score/${encodeURIComponent(doi)}`);
if (!r.ok) throw new Error(r.statusText);
const report = await r.json();
return report.screening_signal;
}
const signal = await getScreeningSignal("10.1101/2025.01.15.633214");
if (signal.axes.evidence.status !== "unavailable") {
console.log(signal.axes.evidence.value);
}
if (signal.axes.novelty.status !== "unavailable") {
console.log(signal.axes.novelty.value, signal.axes.novelty.label);
}
Displaying screening status
The SVG badge communicates run status—complete, limited, or withheld—not a paper-quality endorsement. Link it to the full report so readers can inspect the provenance.
<img src="https://preprints.ai/badge/10.1101/2025.01.15.633214" alt="Preprints.ai screening status">
RSS feed
Subscribe to new screening signals as they land:
<link rel="alternate" type="application/rss+xml" href="https://preprints.ai/feed.xml">
Partner integrations
If you're a journal, preprint server, or aggregator wanting to ingest screening signals at scale, integrations must retain screening_signal, axis availability, limitations, the Novelty basis/label, and the human-review notice.
- Bulk data dumps (JSON, no rate limits)
- Webhooks for new screening signals matching your filters
- Provenance-preserving report links and status badges
- Field-specific screening profiles with explicit validation boundaries