kirancodes.me
To Proof Maintenance & Beyond!

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) with search_papers, get_paper and list_venues tools.

Search

GET /api/search?q=effect+handlers&venue=popl,icfp&from=2015&sort=newest&limit=10
ParameterMeaning
qSearch text, same syntax as the site (phrases, author:, title:, -word). Optional.
venueVenue ids, comma-separated or repeated. See /api/venues.
tier1 for POPL/PLDI/ICFP/OOPSLA, 2 for the rest.
from, to, yearYear bounds, inclusive.
sortrelevance (default with a query), newest, oldest.
limit, offsetPaging. limit ≤ 100, offset ≤ 10,000.
abstractsfalse 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/2024

MCP

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).