wovepaper API
The wovepaper API is a public JSON API over the arXiv corpus — papers, disambiguated researchers, institutions, topics and semantic search. Corpus reads need no key and no account. The machine-readable description is /openapi.json; this page is the human version of it.
Start here
The base URL is https://api.wovepaper.com. One call is enough to see whether the archive holds what you need: curl https://api.wovepaper.com/api/overview returns the corpus counts, and curl 'https://api.wovepaper.com/api/search?q=graph+neural+networks' returns ranked papers. Nothing needs to be registered first.
- OpenAPI 3.1 specification — every path, parameter and response, generated from the live route table. Also served by the API itself at
https://api.wovepaper.com/openapi.json. - llms.txt — when to use this site and when to use something else, written for an agent deciding.
- Sitemap index and robots.txt — every indexable URL, and the crawl rules. The API origin publishes its own robots.txt.
https://api.wovepaper.com/— a service descriptor that points at all of the above, for a client that arrives knowing only the hostname.
Authentication
Corpus reads — papers, researchers, institutions, topics, search, suggest — are open. There is no API key to request, no quota to sign up for, and no sign-in wall in front of the archive; the same holds for automated readers.
The endpoints that need a token are the ones holding personal state (saved library, followed topics, conversations) or spending money on model calls. They take a Supabase access token as Authorization: Bearer <jwt>, which a person obtains by signing in. There is deliberately no machine credential: those endpoints act on behalf of a human account, and an agent should be carrying that human's token or not calling them.
Rate limits and cost
Two endpoints embed your query with a paid model — /api/search and /api/search/semantic — so they are limited per client and again globally. Over the limit, search degrades to keyword-only results with "rate_limited": true rather than failing, and the semantic-only endpoint answers 429 with a Retry-After header. Everything else is unmetered.
One targeted request beats a crawl in both directions. If you need bulk access, a full export or a raised limit, ask on the contact page — it is almost always cheaper for both of us than walking the query space.
Errors
Errors are always JSON, never an HTML page, and always the same shape: error (a short string), code (stable and machine-readable), status, message, hint (what to do next) and docs. Match on code rather than on the status or the wording — statuses are coarse and messages get reworded.
not_found— no such route, or a well-formed identifier for something this archive does not hold. The archive is harvested continuously, so a very recent paper may simply not be here yet.unauthorized— the endpoint needs a signed-in token; corpus reads never do.rate_limited— back off for the interval inRetry-After.bad_request— a parameter failed validation; the response names which.upstream_error— a dependency did not answer. Transient, so retry with backoff.
Markdown instead of HTML
Every public page here serves clean markdown from the same URL when the request asks for it: curl -H 'Accept: text/markdown' https://www.wovepaper.com/papers/2401.01234. For reading one paper, one researcher or one institution that is usually a cheaper single request than assembling the JSON, and the URL you quote back is the page a human sees. Responses carry Vary: Accept, and a path that does not exist returns a real 404 whose markdown body names the URL shapes that do work.
No SDK, and no MCP server yet
There is no client library to install and no MCP server to connect: the interface is HTTP + JSON, described by the OpenAPI document, which most tooling can generate a typed client from directly. If an MCP server would change what you can build here, say so on the contact page — that is the kind of request that decides what gets built next.
Attribution and limits
Paper metadata and abstracts come from arXiv under its terms of use, with links back to the canonical abstract and PDF rather than a rehosted copy. Researcher records and citation counts come from Semantic Scholar (ODC-BY) and OpenAlex (CC0). Summaries and topic tags are model-generated: treat them as a reading aid, cite the paper rather than the summary, and expect citation counts to be incomplete. Coverage is arXiv only — no journals, books, theses or patents. See About for the fuller version.
Endpoints
The endpoint list could not be read just now. It lives in /openapi.json, which is generated from the API's route table and is the authoritative version either way.