---
title: Drop-in compatibility
description: Swap arxiv.org for arxivv.org in any URL or client. Every arXiv path and parameter is forwarded to arXiv and its response returned as-is.
sidebar:
  order: 2
---

Any path that is not one of [our formats](/formats) or a reserved path is proxied to the matching arXiv host. Existing clients keep working after a host swap.

## Host mapping

| arXivv host         | Proxied to         | Serves                                              |
| ------------------- | ------------------ | --------------------------------------------------- |
| `arxivv.org`        | `arxiv.org`        | Abstract pages, PDF, HTML, BibTeX, listings, search |
| `export.arxivv.org` | `export.arxiv.org` | Query API (Atom XML)                                |
| `oaipmh.arxivv.org` | `oaipmh.arxiv.org` | OAI-PMH bulk metadata                               |
| `rss.arxivv.org`    | `rss.arxiv.org`    | RSS and Atom feeds                                  |

Any other `*.arxivv.org` host returns `404 not-found`.

## Examples

| arXiv                                           | arXivv                                           |
| ----------------------------------------------- | ------------------------------------------------ |
| `arxiv.org/abs/1706.03762`                      | `arxivv.org/abs/1706.03762`                      |
| `arxiv.org/pdf/1706.03762v7`                    | `arxivv.org/pdf/1706.03762v7`                    |
| `arxiv.org/html/1706.03762`                     | `arxivv.org/html/1706.03762`                     |
| `arxiv.org/bibtex/1706.03762`                   | `arxivv.org/bibtex/1706.03762`                   |
| `export.arxiv.org/api/query?id_list=1706.03762` | `export.arxivv.org/api/query?id_list=1706.03762` |
| `rss.arxiv.org/rss/cs.CL`                       | `rss.arxivv.org/rss/cs.CL`                       |

## What is forwarded

| Part                                | Behaviour                                                                                                                                                                                                                              |
| ----------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Method, path, query string and body | Unchanged (body forwarded for methods other than `GET`/`HEAD`)                                                                                                                                                                         |
| Request headers                     | Forwarded, except hop-by-hop headers (`Connection` and those it lists, `Keep-Alive`, `TE`, `Trailer`, `Transfer-Encoding`, `Upgrade`, `Proxy-Authenticate`, `Proxy-Authorization`, `Proxy-Connection`), `Host` and every `cf-*` header |
| `User-Agent`                        | Replaced with arXivv's own: `arxivv/<version> (+https://arxivv.org; mailto:<contact>)`                                                                                                                                                 |
| Redirects                           | Not followed (`redirect: manual`); arXiv's `3xx` and its `Location` are returned as-is                                                                                                                                                 |
| Response status, headers and body   | arXiv's response, returned as-is                                                                                                                                                                                                       |
| `X-Arxivv-*` headers                | Not added: these are only on [our formats](/formats)                                                                                                                                                                                   |
| arXiv unreachable                   | `502 upstream` [problem](/errors-and-limits); arXiv's own error responses pass through                                                                                                                                                 |
| Rate limit                          | The same [60 requests per minute per IP](/errors-and-limits) as every route                                                                                                                                                            |

Proxied requests pass through a global token bucket in front of arXiv (default 10 requests per second, burst 20). Requests over the bucket wait their turn rather than fail, so arXiv sees one polite client.

## What is not proxied

| Path                                      | Served by                       |
| ----------------------------------------- | ------------------------------- |
| `/<paper>.<format>`, `/<paper>/…` (`GET`) | arXivv: [our formats](/formats) |
| `/mcp`, `/mcp/…`                          | arXivv: the [MCP server](/mcp)  |
| `/openapi.json`, `/llms.txt`, `/health`   | arXivv                          |

arXiv has no paths shaped like `/<paper>.<format>`, so nothing collides.
