For AI agents
Research papers as data: each with one plain line, citations and upvotes. Refreshed weekly.
Point your agent here
https://papers.fru.dev/llms.txthttps://papers.fru.dev/llms-full.txtCall the API
/api/papers
curl -s "https://papers.fru.dev/api/papers?lab=anthropic&limit=2"{
"count": 627,
"papers": [
{
"slug": "vflash",
"title": "VFlash: Fast, Accurate Visual Planning via Flash Primitive Decoding",
"lab": "nvidia",
"labName": "NVIDIA",
"labDomain": "nvidia.com",
"published": "2026-11-05",
"topic": "multimodal",
"topicName": "Multimodal and robotics",
"line": "A method called VFlash speeds up and improves visual motion planning for robots by predicting entire spatial shapes at once.",
"lineBy": "model",
"arxiv": "2611.08449",
"arxivUrl": "https://arxiv.org/abs/2611.08449",
"pdfUrl": "https://arxiv.org/pdf/2611.08449",
"citations": null,
"influentialCitations": null,
"hfUpvotes": 109,
"venue": null,
"code": null,
"unverified": true,
"metricsAt": "2026-11-09 12:16:06",
"models": [],
"url": "https://papers.fru.dev/papers/vflash"
}
]
}/api/papers/{slug}
curl -s "https://papers.fru.dev/api/papers/deepseek-r1"{
"paper": {
"slug": "deepseek-r1",
"title": "DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning",
"lab": "deepseek",
"labName": "DeepSeek",
"labDomain": "deepseek.com",
"published": "2025-01-22",
"topic": "reasoning",
"topicName": "Reasoning",
"line": "Reinforcement learning taught a model long step-by-step reasoning on par with OpenAI o1.",
"lineBy": "editor",
"arxiv": "2501.12948",
"arxivUrl": "https://arxiv.org/abs/2501.12948",
"pdfUrl": "https://arxiv.org/pdf/2501.12948",
"citations": 5972,
"influentialCitations": 955,
"hfUpvotes": 458,
"venue": "Nature",
"code": "https://github.com/deepseek-ai/deepseek-r1",
"unverified": false,
"metricsAt": "2026-11-02 12:16:32",
"models": [
{
"id": "deepseek-r1",
"name": "DeepSeek-R1 (May 2025)",
"url": "https://models.fru.dev/models/deepseek-r1"
}
],
.../api/labs
curl -s "https://papers.fru.dev/api/labs?limit=2"{
"count": 45,
"labs": [
{
"slug": "nvidia",
"name": "NVIDIA",
"domain": "nvidia.com",
"kind": "company",
"kindName": "Company",
"papers": 90,
"citations": 6925,
"latest": "2026-11-05",
"papersLast12Months": 70,
"research": "https://research.nvidia.com/publications",
"inRegistry": true,
"url": "https://papers.fru.dev/labs/nvidia"
}
]
}/api/labs/{slug}
curl -s "https://papers.fru.dev/api/labs/nvidia"{
"lab": {
"slug": "nvidia",
"name": "NVIDIA",
"domain": "nvidia.com",
"kind": "company",
"kindName": "Company",
"papers": 90,
"citations": 6925,
"latest": "2026-11-05",
"papersLast12Months": 70,
"research": "https://research.nvidia.com/publications",
"inRegistry": true,
"url": "https://papers.fru.dev/labs/nvidia"
},
"papers": "[ ...paper objects ]"
}/api/topics
curl -s "https://papers.fru.dev/api/topics"{
"topics": [
{
"key": "agents-evals",
"name": "Agents and evaluation",
"papers": 147
},
{
"key": "alignment-safety",
"name": "Alignment and safety",
"papers": 32
}
]
}/api/changes
curl -s "https://papers.fru.dev/api/changes?since=2026-09-01&limit=3"{
"changes": [
{
"id": 4122,
"paper": "do-generative-video-models-learn-physical-principles",
"title": "Do generative video models learn physical principles from watching videos?",
"field": "upvotes",
"old": "33",
"new": "31",
"changedAt": "2026-11-09T12:16:18Z",
"source": "https://huggingface.co/papers/2501.09038",
"url": "https://papers.fru.dev/papers/do-generative-video-models-learn-physical-principles"
},
{
"id": 4121,
"paper": "dllm",
"title": "dLLM: Simple Diffusion Language Modeling",
"field": "upvotes",
"old": "153",
"new": "136",
"changedAt": "2026-11-09T12:16:17Z",
"source": "https://huggingface.co/papers/2602.22661",
"url": "https://papers.fru.dev/papers/dllm"
}
]
}/api/companies
curl -s "https://papers.fru.dev/api/companies?since=2026-09-01"{
"companies": [
{
"slug": "nvidia",
"name": "NVIDIA",
"domain": "nvidia.com",
"kind": "company",
"in_registry": true,
"url": "https://papers.fru.dev/labs/nvidia",
"papers": 90,
"updated_at": "2026-11-09T12:16:12Z",
"items": [
{
"date": "2026-11-05",
"type": "paper",
"title": "VFlash: Fast, Accurate Visual Planning via Flash Primitive Decoding",
"summary": "A method called VFlash speeds up and improves visual motion planning for robots by predicting entire spatial shapes at once.",
"url": "https://papers.fru.dev/papers/vflash",
"source_url": "https://arxiv.org/abs/2611.08449",
"unverified": true
}
]
}
]
}/api/search
curl -s "https://papers.fru.dev/api/search?q=flash%20attention"{
"q": "flash attention",
"results": [
{
"id": "p:flashattention",
"group": "items",
"title": "FlashAttention: Fast and Memory-Efficient Exact Attention with IO-Awareness",
"href": "/papers/flashattention"
}
]
}OpenAPI 3.1: /openapi.json. Every endpoint is GET, open to any origin (CORS) and cached at the edge for an hour.
Add to your agent
System prompt line
For notable AI and data research papers by lab (what a paper shows, its date, citations), fetch https://papers.fru.dev/llms.txt and use https://papers.fru.dev/api/papers and https://papers.fru.dev/api/papers/{slug}. Cite "Papers (papers.fru.dev)".Tool definition
{
"name": "fru_papers",
"description": "List notable data and AI research papers from labs such as OpenAI, Anthropic, Google DeepMind, Meta, Microsoft and NVIDIA: title, lab, date, topic, a one-line plain summary, arXiv link, citations and Hugging Face upvotes. Source: Papers (papers.fru.dev).",
"input_schema": {
"type": "object",
"properties": {
"lab": {
"type": "string",
"description": "Lab slug, e.g. openai, anthropic, deepmind, meta, microsoft, nvidia, databricks, snowflake. List them with GET /api/labs."
},
"topic": {
"type": "string",
"enum": [
"agents-evals",
"alignment-safety",
"reasoning",
"efficiency",
"retrieval-data",
"multimodal",
"architectures",
"training",
"foundation-models",
"applied"
]
},
"since": {
"type": "string",
"description": "Only papers published on or after this date, YYYY-MM-DD."
},
"sort": {
"type": "string",
"enum": [
"date",
"citations",
"upvotes"
]
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 200
}
}
},
"endpoint": "GET https://papers.fru.dev/api/papers"
}Python
import json, urllib.request
def papers(lab: str = "", sort: str = "date", limit: int = 10) -> list[dict]:
"""Notable AI research papers, one plain line each."""
url = f"https://papers.fru.dev/api/papers?lab={lab}&sort={sort}&limit={limit}"
with urllib.request.urlopen(url, timeout=20) as r:
return json.load(r)["papers"]
for p in papers("anthropic"):
print(p["published"], p["title"], "-", p["line"])TypeScript
type Paper = { slug: string; title: string; labName: string; published: string; line: string; citations: number | null }
async function mostCited(limit = 10): Promise<Paper[]> {
const res = await fetch(`https://papers.fru.dev/api/papers?sort=citations&limit=${limit}`)
if (!res.ok) throw new Error(`papers ${res.status}`)
const { papers } = (await res.json()) as { papers: Paper[] }
return papers
}
console.log(await mostCited())Usage terms
- Free to read. Please cite "Papers (papers.fru.dev)" with a link.
- Responses are cached for an hour; the data changes weekly.
- Be polite: 60 requests a minute at most.
- Papers marked unverified have not been checked by hand.