quickstart
10 minutes to first request
1 · Create an API key
Sign up at snappdf.au/signup. On the dashboard, click Keys → Create. Copy the key — it starts with sk_live_ or sk_test_ and is shown only once.
2 · Install a SDK
# JavaScript / TypeScript npm install @snappdf/sdk # Python pip install snappdf # PHP composer require snappdf/sdk # Ruby gem install snappdf # Go go get github.com/snappdf/snappdf-go
3 · Make your first call
Merge two PDFs in every supported language:
// JavaScript
import { SnapPdf } from '@snappdf/sdk';
import fs from 'node:fs';
const snap = new SnapPdf({ apiKey: process.env.SNAPPDF_API_KEY! });
const { pdf } = await snap.pdf.merge({
files: [fs.readFileSync('a.pdf'), fs.readFileSync('b.pdf')],
});
fs.writeFileSync('out.pdf', pdf);# Python
from snappdf import SnapPdf
snap = SnapPdf(api_key=os.environ["SNAPPDF_API_KEY"])
r = snap.pdf.merge(files=[open("a.pdf", "rb").read(), open("b.pdf", "rb").read()])
open("out.pdf", "wb").write(r["pdf"])// Go
client := snappdf.NewClient(os.Getenv("SNAPPDF_API_KEY"))
a, _ := os.ReadFile("a.pdf")
b, _ := os.ReadFile("b.pdf")
r, _ := client.Merge(ctx, &snappdf.MergeInput{Files: [][]byte{a, b}})
os.WriteFile("out.pdf", r.PDF, 0644)4 · Handle errors
Every error is a typed subclass of SnapPdfError. Retry on RateLimitError, surface ValidationError to your user.
5 · Wire up webhooks (optional)
Subscribe to usage.limit_reached and billing.payment_failed so your ops team gets pinged before customers feel pain. Webhooks guide →
Next steps
- · Try the playground without writing code.
- · Understand rate limits.
- · See pricing.