fynepdf logo
Docs menu

SDKs and tools

Official FynePDF SDKs for Node.js and Python, the OpenAPI spec, a Postman collection, and a local MCP server.

The SDKs are typed from the API's own spec and do the fiddly parts for you: uploads of any size, retries that never charge twice, waiting for jobs and checking webhooks.

Node.js

npm install fynepdf
import FynePDF from "fynepdf";

const fyne = new FynePDF(); // reads FYNEPDF_API_KEY

const file = await fyne.files.upload("./report.pdf");
const job = await fyne.pdf.compress({ file_id: file.id, target_size_bytes: 5_000_000 });
await fyne.files.downloadTo(job.outputs[0], "./report-small.pdf");

Node 18 or newer, no dependencies. On npm

Python

pip install fynepdf
from fynepdf import FynePDF

fyne = FynePDF()  # reads FYNEPDF_API_KEY

file = fyne.files.upload("report.pdf")
job = fyne.pdf.compress(file_id=file["id"], target_size_bytes=5_000_000)
fyne.files.download_to(job["outputs"][0], "report-small.pdf")

Python 3.9 or newer. On PyPI

What both do

  • Every action is a method: fyne.pdf.ocr, fyne.pdf.pdf_to_excel (Node: pdfToExcel) and the rest, with their parameters typed. Each waits up to 30 seconds; jobs.wait(job) waits longer.
  • Uploads of any size: in the request up to 25 MB, through an upload link above that. Downloads go straight to storage, so your key never leaves the API.
  • Safe retries: rate limits, timeouts and server errors are retried, honouring Retry-After, and every POST carries an Idempotency-Key, so a retry never runs or charges twice.
  • Errors you can branch on: FynePDFError with status, code, detail and request_id. See Errors.
  • Webhooks: verifyWebhook / verify_webhook check the signature and return the event. See Webhooks.

Any other language

For assistants

The MCP server gives Claude, ChatGPT, Cursor and others the same tools. For files on your own computer, npx @fynepdf/mcp runs it locally with your API key and adds upload_local_file and download_file.