Convertica API
Programmatic access to 30+ PDF and image conversion tools. JSON API, OpenAPI docs, HMAC-signed webhooks.
Same engine that powers convertica.net, exposed as a stable HTTPS API. Bundled with any Convertica subscription — no separate billing.
Why Convertica API
Production-grade
Same backend that processes user uploads on convertica.net every day. Battle-tested on millions of conversions.
30+ endpoints in one API
PDF↔Word/Excel/PPT/JPG/PNG, merge, split, rotate, crop, sign, watermark, compress, OCR, HEIC, EPUB — one base URL, one key.
Bundled, not extra
Any active Convertica subscription includes API access at no extra cost. Pay once, use the web UI and the API.
Monthly
$7/mo
1000 API calls per month
Yearly
$79/yr
10000 API calls per month
Best value
Lifetime
$129once
10000 API calls per month forever
Quick start
1. Issue a key in your dashboard
Go to your API Keys dashboard and create a named key. The full key is shown once — copy it immediately.
2. Make a request
curl example — convert a PDF to Word:
curl -X POST https://convertica.net/api/v1/pdf-to-word/ \
-H "Authorization: Bearer cvk_live_xxxxxxxxxxxxxxxx" \
-F "[email protected]" \
-o output.docx
Python example
import requests
r = requests.post(
"https://convertica.net/api/v1/pdf-to-word/",
headers={"Authorization": "Bearer cvk_live_xxxxxxxxxxxxxxxx"},
files={"pdf_file": open("input.pdf", "rb")},
)
with open("output.docx", "wb") as f:
f.write(r.content)
Node.js example
import fs from "node:fs";
import { request } from "undici";
const form = new FormData();
form.set("pdf_file", new Blob([fs.readFileSync("input.pdf")]), "input.pdf");
const r = await request("https://convertica.net/api/v1/pdf-to-word/", {
method: "POST",
headers: { Authorization: "Bearer cvk_live_xxxxxxxxxxxxxxxx" },
body: form,
});
fs.writeFileSync("output.docx", Buffer.from(await r.body.arrayBuffer()));
Authentication
Send your API key as a Bearer token in the Authorization header. Keys are tied to your subscription — revoke and rotate any time from the dashboard.
- Up to 10 active keys per account, with optional named scope
- Prefix shown in dashboard for easy identification (full key shown only at creation)
- Per-key monthly quota tied to the subscription tier — counter resets on the 1st
- Hashed at rest; if a key leaks, revoke it and issue a new one in seconds
Async webhooks
Large jobs return a task ID and run in background. Either poll the task endpoint, or set a callback URL and let Convertica push the result.
curl -X POST https://convertica.net/api/v1/pdf-to-word/ \
-H "Authorization: Bearer cvk_live_xxxxxxxxxxxxxxxx" \
-F "[email protected]" \
-F "callback_url=https://yourapp.example/convertica-hook"
Webhook payloads are signed with HMAC-SHA256 using the secret shown in your dashboard. Verify the X-Convertica-Signature header before trusting the body.
Limits and rate-limiting
Per-key monthly quota
Counted per successful request. 429 returned when the quota is exhausted, with X-RateLimit headers indicating remaining calls and reset time.
Burst limit
Soft per-IP burst protection prevents accidental loops. Keep concurrent in-flight requests at a sensible level and retry on 429 with exponential back-off.
File size and pages
Per-endpoint limits match the premium web UI. See the OpenAPI spec for exact numbers — they grow with your plan tier.
Legacy /api/ deprecation
Old unauthenticated /api/* endpoints carry Deprecation + Sunset headers and stop responding after 2026-07-01. Migrate to /api/v1/.
What you get
- 30+ conversion endpoints: PDF↔Word, Excel, PPT, JPG, PNG, HTML, EPUB, Markdown
- PDF edit: merge, split, rotate, watermark, sign, compress, crop, flatten
- Image: optimize, convert, HEIC→JPG/PNG
- Sync (small files) and async (large files) modes
- Opt-in HMAC-signed webhook callbacks for async results
- OpenAPI 3 documentation
- Sub-200ms median, EU edge
- Same backend as convertica.net — battle-tested
Frequently asked questions
Do I need a separate subscription for the API?
No. Any active Convertica subscription — Monthly, Yearly, or Lifetime — includes API access with the per-tier quota. Web UI and API share the same key pool.
What happens when I hit my monthly quota?
The API returns HTTP 429 with X-RateLimit-Reset indicating the next reset. The counter resets on the 1st of every month; upgrade the plan tier any time for a higher quota.
How are API keys stored?
We store only a SHA-256 hash and a short prefix. The full plaintext key is shown exactly once at creation — if you lose it, revoke and issue a new one.
Can I use the API for batch jobs and automation?
Yes — async mode with webhook callbacks is exactly the pattern. Fire-and-forget the request with callback_url, get the signed result delivered when it is ready.
Is there a free tier?
The unauthenticated legacy /api/* endpoints still answer until 2026-07-01 with strict per-IP limits and no SLA. For anything beyond hobby use, the paid /api/v1/ is the supported path.
Ready to start?
Pick a plan, create your first key in the dashboard, and ship your first conversion in under five minutes.