A research workflow, not just search
Plenty of sites let a human search papers. AIConfPaper is built so your LLM agent can run the whole literature loop on its own: find accepted papers from top AI conferences by meaning, save them to a collection, pull each paper's LaTeX source and code, then develop new ideas or set up a quick experiment. One REST API, or a single pasted prompt.
What your agent can do
Find & collect
Search by meaning across ~190k accepted papers, then create a collection and add the best hits, saved to your account so you can open it in the UI later.
Read & ideate
Pull the LaTeX source of every paper in a collection, analyze the methods, and propose concrete ideas that improve on their shared limitations.
Reproduce
Follow each paper's code link, clone the repositories, and set up a minimal experiment environment to try the methods.
Paste a prompt
Give one of these to your agent (Claude Code, Cursor, and similar). It reads this page, works out the API calls, and runs the whole flow. Replace YOUR_KEY with your key from Account.
Using the API at https://aiconfpaper.com/developers, find the 20 papers most relevant to "efficient attention for long-context transformers", create a collection named "attention_papers", and add them all to it. My API key is YOUR_KEY.
Using the API at https://aiconfpaper.com/developers: find the 8 most relevant papers on "diffusion policies for robot manipulation", save them to a new collection, then download each paper's LaTeX source (links.arxiv_src) and give me 3 concrete research ideas that improve on their common limitations. Key: YOUR_KEY.
Using the API at https://aiconfpaper.com/developers, find the 3 most relevant papers on "3D Gaussian splatting" that have a code link, clone their repos, and outline the steps to run a minimal experiment from each (flag any setup blockers like CUDA, git submodules, or gated datasets). Key: YOUR_KEY.
Notes & limits for agents
links.arxiv_srccomes from/papers/{id}(it is always null in search results). It can be null: retry once, but some papers have no source link at all even when an arXiv version exists elsewhere, so fall back to another paper rather than retrying forever.- The LaTeX source is a gzip-compressed tar (
arXiv-<id>vN.tar.gz);tar xzfextracts it. The main.texmay have a generic name (e.g. an unrenamed template). links.codeis present for roughly a third to half of papers and is best-effort. Sanity-check the cloned repo's README/title against the paper before trusting it, since a link can occasionally point to a project page or a different project.- To save a specific paper you already know by title: search the exact title (
/search?q=<the title>&limit=3), confirm the top result'stitlematches, then add itspaper_idto a collection. For an arXiv paper outside the index, register it first viaPOST /papers/external. - Limits: 120 requests per rolling minute per client. Every
/api/v1response carriesX-RateLimit-Limit/X-RateLimit-Remaining; a 429 carriesRetry-After(seconds) — honor it instead of guessing a backoff.POST /papers/externaladditionally shares a global arXiv lookup queue: a new id can take a few seconds and may return 503 (retry shortly). Collection caps: 50 folders, 1000 papers per folder, 5000 papers total. Errors are RFC 9457application/problem+jsonwith adetailrecovery hint. - Prefer the batch endpoints:
GET /papers?ids=…(up to 50 full records in one call) beats loopingGET /papers/{id}, andGET /collections/{id}/export?format=bibtexreturns a whole collection as one ready-to-usereferences.bib.
MCP server
Prefer tools over raw HTTP? Connect any MCP client (Claude Code, Claude Desktop, Cursor, and similar) to the Streamable HTTP endpoint at https://aiconfpaper.com/mcp. It exposes the read side as typed tools: search_papers, get_paper, batch_get_papers, find_similar_papers, list_facets. Collections (create, add, share, export) stay on the REST API below. Auth is the same key, sent as an Authorization header.
# Claude Code (one command; put your key in the env var) claude mcp add --transport http aiconfpaper https://aiconfpaper.com/mcp \ --header "Authorization: Bearer $AICONFPAPER_API_KEY"
// or in a project's .mcp.json
{
"mcpServers": {
"aiconfpaper": {
"type": "http",
"url": "https://aiconfpaper.com/mcp",
"headers": { "Authorization": "Bearer ${AICONFPAPER_API_KEY}" }
}
}
}REST API
Every request needs a free key from Account, sent as Authorization: Bearer acp_…. Errors are RFC 9457 problem+json with a recovery hint.
Endpoints
Rank papers by semantic similarity to q. Filters: venue, year_min, year_max, sort.
Full record: abstract, BibTeX, citation count, and links (links.pdf, links.code, links.arxiv_src for the LaTeX source bundle). Also accepts arxiv:<id> ids.
Batch detail: full records for up to 50 comma-separated ids in one call (unknown ids come back in missing).
Nearest-neighbor papers in embedding space. Filters: venue, year_min, year_max.
Valid venue/tier values and the year range.
Create a collection. Body: {"name":"…"}. Returns its id.
Add papers. Body: {"paper_ids":["…"]} — ids from /search, or arxiv:<id> ids from /papers/external. Idempotent; unknown ids are counted in skipped.
Register an arXiv paper that is not in the index. Body: {"arxiv":"2107.02192"} (id or arxiv.org URL). Returns paper_id arxiv:<id> to use with add-papers.
Remove papers (symmetric with add). Body: {"paper_ids":["…"]}. Idempotent; no more delete-and-rebuild to prune a collection.
Rename and/or describe. Body: {"name":"…","description":"…"} (either field; empty description clears it).
Toggle the public read-only link. Body: {"public":true}. Returns the /c/<slug> URL to hand to a collaborator (view / follow / copy, no edit).
Toggle an EDITABLE invite link. Body: {"enabled":true}. Returns a /collab/<slug> URL; a logged-in user who opens it joins as an editor. The collection then appears in THEIR GET /collections (owned: false) and they can read / add / remove / export it with their own key.
List who joined the collaboration invite (owner-only; includes emails).
Revoke a collaborator's edit access (idempotent).
One-call export of the whole collection: bibtex (a ready references.bib), csv, or json.
List your collections — your own and ones shared with you for co-editing (owned: false).
List the papers in one of your collections (includes registered arXiv papers).
Delete a collection you created (its papers go to trash). Lets an agent clean up after itself.
Worked example: search to saved collection
KEY="acp_live_..."
# 1) search (grab paper_id values from results)
curl -s -H "Authorization: Bearer $KEY" \
"https://aiconfpaper.com/api/v1/search?q=efficient+attention+long+context&limit=20"
# 2) create a collection (note the returned id)
curl -s -X POST -H "Authorization: Bearer $KEY" -H "Content-Type: application/json" \
-d '{"name":"attention_papers"}' https://aiconfpaper.com/api/v1/collections
# 3) add papers to it
curl -s -X POST -H "Authorization: Bearer $KEY" -H "Content-Type: application/json" \
-d '{"paper_ids":["nips-2025-GEzd5K5s5u","iclr-2026-02NbD16OnA"]}' \
https://aiconfpaper.com/api/v1/collections/COLLECTION_ID/papers
# 3b) optional: add an arXiv paper that is NOT in the index
curl -s -X POST -H "Authorization: Bearer $KEY" -H "Content-Type: application/json" \
-d '{"arxiv":"2107.02192"}' https://aiconfpaper.com/api/v1/papers/external
# -> paper_id "arxiv:2107.02192"; then add it like any other id (step 3)
# 4) get a paper's LaTeX source link, then download it
curl -s -H "Authorization: Bearer $KEY" \
"https://aiconfpaper.com/api/v1/papers/nips-2025-GEzd5K5s5u" # -> links.arxiv_src
# 5) export the whole collection as a ready-to-use references.bib
curl -s -H "Authorization: Bearer $KEY" \
"https://aiconfpaper.com/api/v1/collections/COLLECTION_ID/export?format=bibtex" \
-o references.bibMachine-readable spec
Point a tool at /openapi.json (OpenAPI 3.1) or /llms.txt (agent quickstart).