ICLR APIiclr.cc ↗
Access ICLR conference papers, reviews, and metadata from 2013–2025 via the OpenReview API. Search by keyword, filter by venue type, and retrieve full forum threads.
What is the ICLR API?
The ICLR API exposes 10 endpoints covering conference papers, peer reviews, and metadata from ICLR 2013 through 2025. Use get_papers_by_keyword to search across all paper fields—title, abstract, and keywords—or call get_all_accepted_papers to paginate through up to 1000 accepted submissions per year with full OpenReview note objects including authors, venue, and abstract.
curl -X GET 'https://api.parse.bot/scraper/3a24cf40-7fd7-4a21-bb83-b6005c984cd3/get_papers_by_keyword?year=2024&limit=5&offset=0&keyword=attention' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace iclr-cc-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""ICLR Conference Paper Discovery — bounded, re-runnable walkthrough."""
from parse_apis.iclr_conference_api import ICLR, Year, PaperNotFound
client = ICLR()
# Fetch conference metadata for 2024 using the Year enum.
conf = client.conferences.get(year=Year._2024)
print(conf.name, conf.url)
# Search papers by keyword within the 2024 conference, capped at 3 total.
for paper in conf.search_papers(keyword="attention", limit=3):
print(paper.id, paper.content.title.value)
# Drill into one oral paper and list its forum notes (reviews, decisions).
oral = conf.list_oral(limit=1).first()
if oral:
for note in oral.forum_notes.list(limit=3):
print(note.id, note.forum)
# Cross-year title search via the root titlematches collection.
for match in client.titlematches.search(word="transformer", years="2024", limit=3):
print(match.year, match.title)
# Typed error handling: attempt to fetch and refresh a paper.
try:
paper = conf.search_papers(keyword="diffusion", limit=1).first()
if paper:
detail = paper.refresh()
print(detail.content.abstract.value[:100])
except PaperNotFound as exc:
print(f"Paper not found: {exc.paper_id}")
print("exercised: conferences.get / search_papers / list_oral / forum_notes.list / titlematches.search / refresh")
Searches for ICLR papers by keyword in a specific year using the OpenReview search API. Returns matching papers with their full content. The search matches against all paper fields (title, abstract, keywords). Supports server-side pagination via limit and offset.
| Param | Type | Description |
|---|---|---|
| year | string | Conference year. |
| limit | integer | Maximum number of results to return. |
| offset | integer | Pagination offset. |
| keywordrequired | string | Search keyword to match against paper content. |
{
"type": "object",
"fields": {
"count": "integer total number of matching papers",
"notes": "array of matching paper note objects from OpenReview"
},
"sample": {
"data": {
"count": 842,
"notes": [
{
"id": "4g02l2N2Nx",
"forum": "4g02l2N2Nx",
"domain": "ICLR.cc/2024/Conference",
"number": 8562,
"content": {
"title": {
"value": "The Hedgehog & the Porcupine: Expressive Linear Attentions with Softmax Mimicry"
},
"venue": {
"value": "ICLR 2024 poster"
},
"authors": {
"value": [
"Michael Zhang",
"Kush Bhatia",
"Hermann Kumbong"
]
}
}
}
]
},
"status": "success"
}
}About the ICLR API
Paper Discovery and Search
get_papers_by_keyword accepts a required keyword string plus optional year, limit, and offset parameters, returning a count and a notes array of matching OpenReview note objects. The search matches against all paper fields. get_paper_titles_with_word offers a lighter-weight alternative: it accepts a word and an optional comma-separated years list, then returns an array of objects containing only year, title, and id—useful when you need a fast cross-year title scan without fetching full content.
Filtering by Presentation Type
get_oral_papers and get_poster_papers each accept a year parameter and filter results by the venue field—returning notes whose venue contains oral or poster respectively. Oral tracks typically yield 30–50 papers per year; poster tracks 700–900. Both return a count and a papers array of full note objects with title, authors, abstract, venue, and keywords.
Paper Detail and Forum Threads
get_paper_detail takes a paper_id (the OpenReview forum ID) and returns the complete forum thread in a notes array: the original submission, reviewer comments, meta-reviews, author responses, and final decisions are all included. get_paper_by_id retrieves a single submission note by its OpenReview ID, returning id, forum, domain, number, and a content object with full paper metadata. Paper IDs can be sourced from any of the search or list endpoints.
Conference-Level Metadata
get_conference_years returns an array of integers covering 2013–2025 with no required parameters—a natural starting point before querying other endpoints. get_conference_info returns the full conference name, the iclr.cc URL, and the OpenReview group URL for a given year. get_workshops returns the OpenReview workshop group URL for a specified year. Neither of these endpoints makes a network call to OpenReview; they return static computed objects.
The ICLR API is a managed, monitored endpoint for iclr.cc — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when iclr.cc changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official iclr.cc API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Track how often specific ML topics (e.g. 'diffusion', 'alignment') appear in ICLR paper titles across years using
get_paper_titles_with_word - Build a dataset of oral-track papers from multiple years to analyze what research gets top-tier recognition
- Retrieve full peer-review threads via
get_paper_detailto study reviewer scoring patterns and author rebuttals - Index all accepted paper abstracts and keywords from a given year for semantic search or topic modeling
- Compile author publication lists across ICLR years by processing the
authorsfield in accepted paper note objects - Monitor yearly growth in poster vs oral acceptance counts using
get_poster_papersandget_oral_papers - Generate a cross-year bibliography of ICLR papers mentioning a specific technique via
get_papers_by_keyword
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does ICLR have an official developer API?+
What does `get_paper_detail` actually return beyond the paper itself?+
notes array. You need the OpenReview forum ID, which you can obtain from any list or search endpoint.How does pagination work across the list endpoints?+
get_all_accepted_papers and get_papers_by_keyword both accept limit and offset integers. get_all_accepted_papers caps at 1000 papers per year and returns both count (papers in the current page) and total (all available papers for the year). get_oral_papers and get_poster_papers do not expose pagination parameters—they return all matching papers in one response.Does the API cover workshop papers or only the main conference track?+
get_workshops returns only the OpenReview workshop group URL, not individual workshop submissions or their reviews. You can fork the API on Parse and revise it to add endpoints that query workshop paper notes directly from that group URL.Are rejected or withdrawn submissions available?+
get_all_accepted_papers, get_oral_papers, or get_poster_papers. You can fork the API on Parse and revise it to query the OpenReview blind submission group, which includes all submissions regardless of decision.