Verified, cited research
from a single topic
Give research2llm a topic; get back structured, source-attributed findings — each verified against the evidence and labelled established, reported, contested or NEI. It searches the live web, reads the sources, corroborates claims across independent outlets, and respects each site's AI opt-out. One POST /jobs call, JSON out — built for LLMs and the apps around them.
$ curl -X POST https://api.research2llm.com/jobs \
-H "X-API-Key: r2l_..." \
-H "Content-Type: application/json" \
-d '{"type":"research","payload":{"topic":"LLM context window limits","budget":"low"}}'
{
"job_id": "abc-123",
"status": "queued"
}What you get
Every finding is verified
A separate verification pass checks each atomic claim against its evidence and labels it established, reported, contested or NEI (not enough information) — so you can tell a corroborated fact from a single-source rumour.
Cited and corroborated
Every finding carries the source ids that assert it. A claim is only 'established' when ≥2 independent sources agree; one source is 'reported'. Findings include the context needed to read them without misquoting.
Presets for the job
news (recent web + Google News, weekly freshness, no PDFs), general (broad web), or scientific (keeps papers/PDFs, no freshness limit). Language is a separate setting — search and extraction in pl, en, and more.
Respects AI opt-out
Retrieval honours each site's robots.txt and AI-bot signals. Where full crawling is reserved, research2llm falls back to the public search snippet instead of ignoring the site's wishes.
Source-attributed & swappable
Each source is tagged by channel (web / news / seed) so you see where a finding came from. Pass your own seed_sources (URLs or text) to anchor the research; optionally have raw scraped content offloaded to storage.
Budgeted, one API call
POST /jobs with a topic and a budget (low/medium/high) or a hard max_cost_usd. The work runs async with a cost circuit-breaker; poll GET /jobs/{id} or get a webhook. Stats report tokens, sources and spend.
See it in action
Same API, three flavors. Pick your stack.
# Enqueue a research job
curl -X POST https://api.research2llm.com/jobs \
-H "X-API-Key: r2l_..." \
-H "Content-Type: application/json" \
-d '{
"type": "research",
"payload": {
"topic": "LLM context window limits",
"budget": "medium",
"preset": "general",
"language": "en",
"seed_sources": [{"url": "https://example.com/my-notes"}]
}
}'
# Response (202)
{"job_id":"abc-123","status":"queued"}
# Poll a job's status + result
curl https://api.research2llm.com/jobs/abc-123 \
-H "X-API-Key: r2l_..."research2llm is part of the 2LLM Suite — focused APIs that turn messy inputs into LLM-ready data. Also try scrape2llm and files2llm and html2media and html2reel and stream2llm for the rest.