API
Everything on the site is available as JSON, without a key. Please keep to a few requests a second; bursts beyond that get HTTP 429.
/openapi.json: OpenAPI 3.1 description./llms.txt: a plain-text guide for language models./mcp: a Model Context Protocol server (streamable HTTP) withsearch_papers,get_paperandlist_venuestools.
Search
GET /api/search?q=effect+handlers&venue=popl,icfp&from=2015&sort=newest&limit=10| Parameter | Meaning |
|---|---|
q | Search text, same syntax as the site (phrases, author:, title:, -word). Optional. |
venue | Venue ids, comma-separated or repeated. See /api/venues. |
tier | 1 for POPL/PLDI/ICFP/OOPSLA, 2 for the rest. |
from, to, year | Year bounds, inclusive. |
sort | relevance (default with a query), newest, oldest. |
limit, offset | Paging. limit ≤ 100, offset ≤ 10,000. |
abstracts | false to omit full abstracts (snippets remain). |
Papers and venues
GET /api/paper/conf/popl/Reynolds02 (dblp key)
GET /api/doi/10.1145/3009837.3009869 (by DOI)
GET /api/venues
GET /api/venue/icfp/2024MCP
Add to Claude Code with claude mcp add --transport http pldb https://pldb.kirancodes.me/mcp, or in a client config:
{ "mcpServers": { "pldb": { "type": "http", "url": "https://pldb.kirancodes.me/mcp" } } }Bulk data
The whole dataset is one file: /data/papers.jsonl.gz (JSON lines, gzip).