bioRxiv API: Search preprints
Finds bioRxiv and medRxiv preprints whose title, abstract or subject matches all topic words, within a posting date range, newest first. Adds published journal details when available.
Unofficial. Not affiliated with or endorsed by bioRxiv.
Inputs
Values from the run on Oct 23, 2026, shown under Output.
- Query, required
query Topic words to find in preprint titles, abstracts, and subject categories, for example gut microbiome depression.
breast cancer
- Server optional
server Preprint server to search: both, biorxiv or medrxiv.
medrxiv
One of
both,biorxiv,medrxiv. Defaultboth.- End Date optional
end_date Last posting date, inclusive, as YYYY-MM-DD, for example 2026-09-29. Defaults to today.
2026-09-28
- Start Date optional
start_date First posting date, inclusive, as YYYY-MM-DD, for example 2026-09-01. Defaults to 30 days before today.
2026-09-27
- Max Results optional
max_results Maximum number of matching preprints, for example 20.
5
Whole number from 1 to 100. Default
20.
Input as JSON
{ "query": "breast cancer", "server": "medrxiv", "end_date": "2026-09-28", "start_date": "2026-09-27", "max_results": 5}Output
{ "preprints": [ { "doi": "10.64898/2026.09.25.26364003" , "title": "Pixel-Level Quantification of Subcutaneous Shear-Wave Velocity Heterogeneity for Grading Lymphatic Obstruction in Breast Cancer-Related Lymphedema", "server": "medRxiv", "authors": "Hoe, Z. Y.; Chou, C.-P.; Tzeng, Y.-D.; Ding, R.-S.; Pan, C.-T.; Lee, M.-C.; Lee, C.-H.", "journal": null, "abstract": "ObjectivesTo develop and validate pixel data analysis (PDA) for reconstructing pixel-level shear-wave velocity (SWV) from saved Holder-Optimized Elastography (HOE) elastograms and to determine whether whole-field subcutaneous heterogeneity provides a quantitative signature of lymphatic obstruction c…", "pdf_link": "https://www.medrxiv.org/content/10.64898/2026.09.25.26364003v1.full.pdf" , "date_posted": "2026-09-28", "journal_link": null, "preprint_link": "https://www.medrxiv.org/content/10.64898/2026.09.25.26364003v1" , "subject_category": "radiology and imaging" }, { "doi": "10.64898/2026.09.08.26362522" , "title": "Epigenetic misprogramming of cell differentiation links transient viral infection to chronic diseases across tissues", "server": "medRxiv", "authors": "Friedenson, B.", "journal": null, "abstract": "Virus-induced epigenetic changes in stem-cell differentiation pathways emerge here as a shared mechanism linking fundamentally different chronic diseases, offering candidate biomarkers and new intervention targets. Chronic diseases increasingly trace back to transient viral exposure, yet unrelated p…", "pdf_link": "https://www.medrxiv.org/content/10.64898/2026.09.08.26362522v2.full.pdf" , "date_posted": "2026-09-28", "journal_link": null, "preprint_link": "https://www.medrxiv.org/content/10.64898/2026.09.08.26362522v2" , "subject_category": "genetic and genomic medicine" } ]}Code
curl https://api.fous.com/v1/runs \ -H "Authorization: Bearer $FOUS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"method":"biorxiv.org/search_preprints","input":{"query":"breast cancer","server":"medrxiv","end_date":"2026-09-28","start_date":"2026-09-27","max_results":5}}' # Save as fous.py, then run: python3 fous.pyimport json, os, timefrom urllib.error import HTTPErrorfrom urllib.request import Request, urlopenAPI = "https://api.fous.com/v1/runs" KEY = os.environ["FOUS_API_KEY"]HEADERS = { "Authorization": f"Bearer {KEY}", "Content-Type": "application/json" ,}def call(url, body=None): data = json.dumps(body).encode() if body else None request = Request(url, data, HEADERS) try: with urlopen(request, timeout=120) as r: return r.status, json.load(r) except HTTPError as error: message = json.load(error)["error"]["message"] raise RuntimeError(message) from errorstatus, run = call(API, { "method": "biorxiv.org/search_preprints" , "input": { "query": "breast cancer", "server": "medrxiv", "end_date": "2026-09-28", "start_date": "2026-09-27", "max_results": 5 }})# 202: still going after 30 s. Ask again until it ends.while status == 202: time.sleep(2) status, run = call(f"{API}/{run['id']}")print(json.dumps(run["data"], indent=2))// Save as fous.mjs, then run: node fous.mjsconst api = "https://api.fous.com/v1/runs" ;const headers = { Authorization: `Bearer ${process.env.FOUS_API_KEY}`, "Content-Type": "application/json" ,};let response = await fetch(api, { method: "POST", headers, body: JSON.stringify({ "method": "biorxiv.org/search_preprints" , "input": { "query": "breast cancer", "server": "medrxiv", "end_date": "2026-09-28", "start_date": "2026-09-27", "max_results": 5 } }), signal: AbortSignal.timeout(120_000),});let run = await response.json();// 202: still going after 30 s. Ask again until it ends.while (response.status === 202) { await new Promise((done) => setTimeout(done, 2_000)); response = await fetch(`${api}/${run.id}`, { headers }); run = await response.json();}if (!response.ok) throw new Error(run.error.message);console.log(run.data);# Connect your agent to Fous once, over MCP (Streamable HTTP):# https://api.fous.com/mcp# Set FOUS_API_KEY first: create a key at https://app.fous.com/keys.# Claude Codeclaude mcp add \ --scope user \ --transport http fous https://api.fous.com/mcp \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Codexcodex mcp add fous \ --url https://api.fous.com/mcp \ --bearer-token-env-var FOUS_API_KEY# Cursor, VS Code, Windsurf, Cline and morenpx -y add-mcp https://api.fous.com/mcp -g -n fous \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Then ask your agent:# "Use Fous to run biorxiv.org/search_preprints# with {"query":"breast cancer","server":"medrxiv","end_date":"2026-09-28","start_date":"2026-09-27","max_results":5}"Over HTTP, the answer’s data holds the output. A run still going after 30 seconds answers 202 with its id: ask GET /v1/runs/{id} until it ends.
Schema
Input schema
{ "type": "object", "required": [ "query" ], "properties": { "query": { "type": "string", "minLength": 1, "description": "Topic words to find in preprint titles, abstracts, and subject categories, for example gut microbiome depression." }, "server": { "enum": [ "both", "biorxiv", "medrxiv" ], "type": "string", "default": "both", "description": "Preprint server to search: both, biorxiv or medrxiv." }, "end_date": { "type": "string", "description": "Last posting date, inclusive, as YYYY-MM-DD, for example 2026-09-29. Defaults to today." }, "start_date": { "type": "string", "description": "First posting date, inclusive, as YYYY-MM-DD, for example 2026-09-01. Defaults to 30 days before today." }, "max_results": { "type": "integer", "default": 20, "maximum": 100, "minimum": 1, "description": "Maximum number of matching preprints, for example 20." } }}Output schema
{ "type": "object", "required": [ "preprints" ], "properties": { "preprints": { "type": "array", "items": { "type": "object", "required": [ "title", "authors", "date_posted", "server", "subject_category", "abstract", "pdf_link", "preprint_link", "journal", "journal_link", "doi" ], "properties": { "doi": { "type": "string", "description": "Preprint DOI.", "x-fous-developer": true }, "title": { "type": "string", "description": "Preprint title." }, "server": { "type": "string", "description": "bioRxiv or medRxiv." }, "authors": { "type": "string", "description": "Authors as credited by the preprint server." }, "journal": { "type": [ "string", "null" ], "description": "Journal name if subsequently published." }, "abstract": { "type": "string", "description": "Plain-text abstract." }, "pdf_link": { "type": "string", "description": "Direct link to the preprint PDF." }, "date_posted": { "type": "string", "format": "date", "description": "Date this version was posted." }, "journal_link": { "type": [ "string", "null" ], "description": "Published journal article link if available." }, "preprint_link": { "type": "string", "description": "Page for this preprint version." }, "subject_category": { "type": [ "string", "null" ], "description": "Subject area." } }, "additionalProperties": false }, "description": "Matching preprints, newest first." } }, "additionalProperties": false}- Price
- 1 credit per completed run (1¢ with pay as you go); failed runs are free.
- Method
biorxiv.org/search_preprints- Returns
- title, authors, posting date, server, subject, abstract, PDF and preprint links, journal and DOI
Use it from your agent
Give your agent this line. It reads SKILL.md, gets a Fous API key and connects the Fous MCP server. Its run then takes the method biorxiv.org/search_preprints with the inputs above.
Ask your agent
- Find recent preprints on CRISPR off-target effects posted in the last two months on biorxiv.org
- Search medRxiv for long COVID cognitive symptoms preprints from March 2025 through June 2025, newest first
- Show me up to 10 bioRxiv preprints about single-cell RNA sequencing of the tumor microenvironment posted between 2024-01-01 and 2024-06-30
- I need preprints mentioning antibiotic resistance plasmids in both bioRxiv and medRxiv from the past 30 days, limited to 15 results
- Look for medRxiv papers on wearable sensors for detecting atrial fibrillation, posted 2025-09-01 to 2025-09-29, with journal and DOI details
See more
Finds arXiv preprints by topic or title words, with optional author, subject, submission date range and sorting. Returns up to 100 papers with abstracts, subjects, dates and links.
arxiv.org/search_papersFinds PubMed medical and life-science articles by topic, with publication details and free full-text links when PubMed confirms them.
pubmed.ncbi.nlm.nih.gov/search_articlesSearches OpenAlex scholarly works by topic, with optional institution, publication-year and open-access filters, ranked by relevance, citations or newest date.
openalex.org/search_papersLists the latest newly announced papers in an arXiv subject, in announcement order. Cross-lists are optional and replacements are excluded.
arxiv.org/list_new_papersSearches Britannica for encyclopedia articles and returns their titles, short descriptions, article links and images when shown. Excludes other search formats such as videos, questions and stories.
britannica.com/search_articlesSearches Semantic Scholar for research papers in relevance order, with field of study, year range and open-access filters, returning AI one-sentence summaries, citations and free PDF links when available.
semanticscholar.org/search_papersSearches public Bluesky posts for words, optionally ordered by latest or top and filtered by date, author or language. Search indexing may lag behind new posts.
bsky.app/search_postsFinds NIH research grants by topic, organisation, or researcher name. Searches the last five fiscal years by default.
reporter.nih.gov/search_grants