Sahl PDF

Sahl PDF API

Every tool as a simple REST endpoint. 500 free operations every month.

Get an API key

Example

Authentication: Authorization: Bearer sk_sahl_…

curl -X POST https://YOUR-DOMAIN/api/v1/merge \
  -H "Authorization: Bearer sk_sahl_..." \
  -F "[email protected]" -F "[email protected]" \
  -o merged.pdf

curl -X POST https://YOUR-DOMAIN/api/v1/page-numbers \
  -H "Authorization: Bearer sk_sahl_..." \
  -F "[email protected]" \
  -F 'options={"position":"bottom-center","template":"{n} / {p}"}' \
  -o numbered.pdf

Endpoints

POST /api/v1/{op} — instant

mergesplitremove-pagesextract-pagesreverserotateorganizealternate-mixpage-numbersheader-footerwatermarkcropresize-pagesn-upbookletimages-to-pdfflattenfill-formcreate-formedit-metadataremove-metadataoverlayreplace-pages

POST /api/v1/{op} — cloud engines

compressprotectunlockrepairinfoextract-imagespdf-to-imagespdf-to-wordpdf-to-excelpdf-to-pptxpdf-to-textpdf-to-markdownsanitizeremove-blank-pagesgrayscalepdf-to-pdfaoffice-to-pdfocrhtml-to-pdfmarkdown-to-pdftxt-to-pdfeml-to-pdfsign-certificateverify-signaturesremove-backgroundenlarge-image

Use from AI agents (MCP)

Run our MCP server to let Claude and other AI agents use every tool.

{
  "mcpServers": {
    "sahl-pdf": {
      "command": "node",
      "args": ["path/to/sahl-pdf/apps/mcp/server.mjs"],
      "env": { "SAHL_API_URL": "https://YOUR-DOMAIN", "SAHL_API_KEY": "sk_sahl_..." }
    }
  }
}