Developer API · $0.02 per coin
PDF operations at the cost of a notification.
Generate, convert, merge, OCR, and automate PDFs with simple API calls and low per-operation pricing.
The same catalog the web UI ships, behind a single REST endpoint. Coins never expire. No $99/month floor. No enterprise-sales call. Pay per operation, not per month.
Per operation
$0.02–$0.10
Monthly minimum
$0
Coin expiry
Never
SLAs
99.9%
Copy. Paste. Ship.
Every operation works the same way: POST a file, receive a file. Async jobs return a job_id you poll or wait on via webhook. No state machine to babysit.
# Compress a PDF (1 coin)
curl -X POST https://api.pennypdf.com/v1/compress \
-H "Authorization: Bearer $PENNYPDF_API_KEY" \
-F "file=@input.pdf" \
-F "preset=medium" \
-o output.pdf// npm i @pennypdf/sdk
import { PennyPDF } from "@pennypdf/sdk";
const client = new PennyPDF({ apiKey: process.env.PENNYPDF_API_KEY });
const result = await client.compress({
file: fs.createReadStream("input.pdf"),
preset: "medium",
});
await result.writeTo("output.pdf");
console.log(`Spent ${result.coinsSpent} coins (balance: ${result.coinsRemaining})`);# pip install pennypdf
from pennypdf import PennyPDF
client = PennyPDF(api_key=os.environ["PENNYPDF_API_KEY"])
with open("input.pdf", "rb") as f:
result = client.compress(file=f, preset="medium")
with open("output.pdf", "wb") as out:
out.write(result.bytes)
print(f"Spent {result.coins_spent} coins (balance: {result.coins_remaining})")// go get github.com/pennypdf/go-sdk
import "github.com/pennypdf/go-sdk"
client := pennypdf.New(os.Getenv("PENNYPDF_API_KEY"))
file, _ := os.Open("input.pdf")
defer file.Close()
result, err := client.Compress(ctx, pennypdf.CompressOptions{
File: file,
Preset: "medium",
})
if err != nil { return err }
os.WriteFile("output.pdf", result.Bytes, 0644)
fmt.Printf("Spent %d coins (balance: %d)\n", result.CoinsSpent, result.CoinsRemaining)Pricing, compared honestly.
If you do 100+ paid operations every month, every month, a flat-rate subscription might win. If you do fewer or if your volume varies, pay-per-use is strictly cheaper — and nobody charges you the month you don't use the product.
| Service | Entry minimum | Per-unit price | Pay-as-you-go? |
|---|---|---|---|
| PDF.co | ~$9.99/mo | Credit bundles, overage $0.05-$0.12 | Only after subscription |
| DocRaptor | $15/mo for 125 docs | $0.12/doc overage | No |
| HyPDF | $29/mo floor | Per-op volume tiers | No |
| PDFShift | $9/mo for 50 conv | $0.18/conv overage | No |
| Adobe PDF Services | $99/mo Pro | Per-doc + per-MB | No |
| PennyPDF | $0.99 one-time | $0.02–$0.10/coin | Yes, always |
Competitor pricing verified as of launch; we re-check quarterly. Per-operation math: 1 coin = compress, merge, watermark; 2 coins = convert to Word/Excel; 3 coins = OCR, sign, PDF/A.
Built for real workloads.
Invoice generation
HTML → PDF conversion at 1 coin each. Render invoices from your templating engine, stream the PDF back to the customer without running a headless Chromium fleet.
Receipt OCR pipelines
OCR + text extraction at 3 coins per document. Run on scanned receipts hitting S3, get structured text back via webhook. No idle GPU instances.
Contract automation
Multi-signer e-sign at 3 coins per signer with full audit trail. Replace DocuSign's $25/seat/month with per-send pricing.
Report generation
Merge, watermark, compress, and deliver quarterly report bundles. Chain operations in a single request; only pay for the server-side steps.
What you get at $0.
- REST + OpenAPI 3.1 spec
- Idempotency-Key support
- Same coin balance as the web UI
- Webhooks with signed delivery
- Async job polling + server-sent events
- Per-key usage metrics in dashboard
- Rate limits stated up-front (200 burst, 60 rpm baseline)
- CORS pre-flight on every /v1/* route
Start with $0.99.
Sign in, get 10 free coins, issue an API key, ship your integration. When you run out, a $0.99 Mini pack is 10 more coins. Move to a Power pack ($7.99 / 200 coins) or Pro pack ($14.99 / 500 coins) when your volume asks for it.