PAIM PAPYR ES · EN · FR · DE · IT · PT · 繁中

The PAPYR API

The same tools as the site, from your code: send a file over HTTP and get the result back. No storage: we process and delete, as always.

Closed beta, on purpose

The API opens gradually by design: per-account keys (rotatable and revocable), burst limits, a monthly quota and input limits. It's included in the Pro plan; if you'd like to try it or need volume, write to us and we'll set you up.

Request access

Authentication

Every request carries your key in a header. The key is shown once at creation; keep it in a secrets manager. You can revoke it at any time.

Authorization: Bearer papyr_sk_…

Start in a minute

curl -X POST https://www.aim-papyr.ai/api/v1/pdf/merge \
  -H "Authorization: Bearer papyr_sk_YOUR_KEY" \
  -F "files=@report.pdf" -F "files=@annex.pdf" \
  -o merged.pdf

Scan to searchable PDF bash

curl -X POST https://www.aim-papyr.ai/api/v1/pdf/ocr \
  -H "Authorization: Bearer YOUR_KEY" \
  -F "file=@factura.pdf" -F "lang=spa" \
  -o factura-buscable.pdf

Extract tables to CSV python

import requests

r = requests.post(
    "https://www.aim-papyr.ai/api/v1/pdf/to-csv",
    headers={"Authorization": "Bearer YOUR_KEY"},
    files={"file": open("facturas.pdf", "rb")},
    data={"sep": ";"}, timeout=120)
r.raise_for_status()
open("facturas.csv", "wb").write(r.content)
print(r.headers["X-Monthly-Used"], "/", r.headers["X-Monthly-Limit"])

PDF to Word from the browser javascript

const fd = new FormData();
fd.append("file", archivo);        // File o Blob

const r = await fetch("https://www.aim-papyr.ai/api/v1/pdf/to-word", {
  method: "POST",
  headers: { Authorization: "Bearer YOUR_KEY" },
  body: fd,
});
if (!r.ok) throw new Error((await r.json()).detail);
const docx = await r.blob();

Endpoints (v1)

GET/api/v1/meValidates your key; returns plan, usage and limits.
POST/api/v1/convert/to-pdfOffice → PDF — file
POST/api/v1/img/compressCompress image — file + quality
POST/api/v1/img/convertConvert image — file + fmt, quality
POST/api/v1/pdf/compressCompress — file
POST/api/v1/pdf/mergeMerge — files[]
POST/api/v1/pdf/ocrOCR — file + lang
POST/api/v1/pdf/page-numbersPage numbers — file + position, start
POST/api/v1/pdf/protectProtect — file + password
POST/api/v1/pdf/rotateRotate — file + degrees
POST/api/v1/pdf/splitSplit — file + cada
POST/api/v1/pdf/to-csvPDF → CSV — file + sep
POST/api/v1/pdf/to-imagesPDF → images — file + dpi, fmt
POST/api/v1/pdf/to-textPDF → Text — file
POST/api/v1/pdf/to-wordPDF → Word — file + lang
POST/api/v1/pdf/unlockUnlock — file + password
POST/api/v1/pdf/watermarkWatermark — file + text

Limits — clear, and in the response

Your data, as always

Processed on EU servers for your operation only, and discarded with the response. The API relaxes nothing in the site's privacy policy.