Render any URL to an image or PDF. Merge, split, compress, convert and read documents. No headless browser to babysit, no LibreOffice to install, no queue to run.
Get an API key See the endpointscurl -X POST https://docvolta.com/v1/render/screenshot \
-H "Authorization: Bearer YOUR_KEY" \
-F url=https://stripe.com \
-F full_page=true \
-F format=jpeg \
-o shot.jpg
That is the whole integration. Every endpoint takes multipart form fields and returns the finished bytes — no job IDs, no polling, no webhooks to receive.
X-Credits-Charged and
X-Credits-Remaining, so you always know where you stand without a
separate billing call.| Endpoint | Does | Cost |
|---|---|---|
POST /v1/render/screenshot | URL or HTML to PNG, JPEG or WebP. Full-page, device scale, dark mode. | 1 credit |
POST /v1/render/pdf | URL or HTML to a print-quality PDF. | 1/page |
| Endpoint | Does | Cost |
|---|---|---|
POST /v1/pdf/merge | Combine PDFs in order. | 1/page |
POST /v1/pdf/split | Extract pages, e.g. 1-3,7,9-. | 1/page |
POST /v1/pdf/rotate | Rotate all or selected pages. | 1/page |
POST /v1/pdf/compress | Shrink without re-encoding images. | 1/page |
POST /v1/pdf/extract-text | Text per page, as JSON. | 1/page |
POST /v1/pdf/thumbnail | Render one page to an image. | 1 credit |
POST /v1/convert | DOCX, XLSX, PPTX and more to PDF. | 1/page |
GET /v1/usage | Your plan and remaining credits. | free |
Consent overlays are suppressed by default, so screenshots show the page rather than a GDPR dialog.
Compression returns the real before/after ratio in headers. If a file cannot shrink, you get the original back, not a bigger one.
Every failure returns a typed code and a sentence describing what to change. No bare 500s.
Ask for page 99 of a 5-page file and you get a clear error, never a silently truncated document.
| Plan | Credits / month | Price | Overage |
|---|---|---|---|
| Free | 100 | $0 | — |
| Starter | 2,000 | $9/mo | $0.002 |
| Pro | 10,000 | $29/mo | $0.002 |
| Business | 50,000 | $99/mo | $0.002 |
One credit is one render or one page processed. No card required for the free tier, and no charge for failed requests — if we cannot return your file, you are not billed for it.
Failures return JSON with a stable error code:
{
"error": "document_error",
"message": "Page range '1-99' is outside the document's 1-5 pages."
}
| Status | Code | Meaning |
|---|---|---|
| 400 | unsafe_url | URL is private, reserved or an unsupported scheme. |
| 401 | invalid_api_key | Key missing, unrecognised or revoked. |
| 402 | quota_exceeded | Free allowance spent. |
| 413 | file_too_large | Upload above the size limit. |
| 422 | document_error | File unreadable or request not satisfiable. |
| 429 | rate_limited | Too many requests; retry shortly. |