SarvaPdf – HTML to PDF API & Document Generation (Templates, Screenshots, PDF Tools)
SarvaPdf is a powerful HTML to PDF API for generating PDFs from web content and templates. Convert HTML to PDF, URL to PDF, Markdown to PDF, or generate documents using templates through a simple REST API. SarvaPdf allows developers to automate document generation and build reliable PDF workflows for applications and SaaS platforms. Key capabilities include: • HTML to PDF conversion • URL to PDF…
SarvaPdf – HTML to PDF API & Document Generation (Templates, Screenshots, PDF Tools) endpoints
| Method | Endpoint | Description |
|---|---|---|
| POST |
convert_handler_pdf_convert_post /pdf/convert |
Convert provided content (see PDFRequest model) into a PDF. Supported response modes: `binary` (raw PDF), `base64`, `json` with metadata, or `url` (store and return a download… |
| POST |
extract_from_file_pdf_extract_file_post /pdf/extract/file |
Multipart/form-data endpoint. Send `file` as the PDF to extract. Optional form field `structured` (boolean) to request structured extraction. |
| POST |
split_pdf_pdf_split_post /pdf/split |
Split a PDF into separate pages. Input can be multipart file upload or application/json with `pdf_url` or `pdf_base64`. New output: use `response_mode` (binary|base64|json|url).… |
| POST |
extract_from_url_pdf_extract_url_post /pdf/extract/url |
Provide `pdf_url` in JSON body (PDFExtractRequest model). |
| POST |
merge_pdfs_pdf_merge_post /pdf/merge |
Merge PDFs from multipart upload, remote URLs or base64 list. Request can be multipart/form-data with `files` (UploadFile[]), or application/json with `pdf_urls` (list),… |
| POST |
extract_metadata_pdf_extract_metadata_post /pdf/extract/metadata |
Extract metadata (Title, Author, Subject, Keywords, Producer, CreationDate, ModDate, etc.) from a PDF. Supports: multipart PDF upload, base64 JSON, or URL. |
| POST |
rotate_pdf_pdf_rotate_post /pdf/rotate |
Rotate pages in a PDF. Input may be file upload, `pdf_url` or `pdf_base64` in JSON. Provide `degrees` (90/180/270), optional `page_numbers` list, and `response_mode`… |
| POST |
extract_from_base64_pdf_extract_base64_post /pdf/extract/base64 |
Provide `pdf_base64` in JSON body (PDFExtractRequest model). |
| screenshot | ||
| POST |
screenshot_handler_screenshot_post /screenshot |
Capture a PNG/JPEG screenshot rendered from `html` or `url` using the `ScreenshotRequest` schema. Supported `response_mode` values: `binary`, `base64`, `json`, `url`. Binary… |
| POST |
screenshot_to_pdf_handler_screenshot_pdf_post /screenshot/pdf |
Capture a PNG/JPEG screenshot (same `ScreenshotRequest` schema) and convert the image to a PDF. `response_mode` mapping: - `binary` -> `application/pdf` stream with… |
| Templates | ||
| GET |
list_templates_templates_list_get /templates/list |
Return a list of templates available to the authenticated user. |
| POST |
preview_template_templates_preview_post /templates/preview |
Render a stored template server-side using Jinja2 and provided `data`. Request body: JSON with `template_id` (string) and `data` (object) containing template variables. Response:… |
| GET |
get_template_templates_get__template_id__get /templates/get/{template_id} |
Retrieve the stored template HTML and metadata by template ID for the current user. |
| GET |
serve_template_templates_templates__slug__get /templates/templates/{slug} |
|
| POST |
render_template_pdf_templates_render_pdf_post /templates/render-pdf |
Render a stored Jinja2 template with provided `data` and convert the result to PDF. Request body: `TemplateRenderRequest` (template_id, data, page/margin options, response_mode,… |
| POST |
create_template_templates_create_post /templates/create |
Create and store a user-specific Jinja2 HTML template. Request body: `TemplateCreate` (name, html). Returns the created template metadata. |
| DELETE |
remove_template_templates_delete__template_id__delete /templates/delete/{template_id} |
Delete a template by ID for the authenticated user. |
| GET |
template_variables_templates_variables__template_id__get /templates/variables/{template_id} |
Analyze the stored template HTML and return a deduplicated list of Jinja2 variable tokens found in `{{ ... }}` form to help callers know what variables to supply. |
| status | ||
| GET |
status_status_get /status |
|
| health | ||
| GET |
health_health_get /health |
|
| url | ||
| GET |
get_rendered_pdf_url__asset_kind___public_slug__get /url/{asset_kind}/{public_slug} |
Fetch a previously generated asset using its temporary public slug and token. |
| Other endpoints | ||
| GET |
root_redirect__get / |
|
| GET |
root_redirect__get / |
|
| POST |
merge_pdfs_pdf_merge_post /pdf/merge |
Merge PDFs from multipart upload, remote URLs or base64 list. Request can be multipart/form-data with `files` (UploadFile[]), or application/json with `pdf_urls` (list),… |
| POST |
extract_from_base64_pdf_extract_base64_post /pdf/extract/base64 |
Provide `pdf_base64` in JSON body (PDFExtractRequest model). |
| POST |
extract_from_file_pdf_extract_file_post /pdf/extract/file |
Multipart/form-data endpoint. Send `file` as the PDF to extract. Optional form field `structured` (boolean) to request structured extraction. |
| POST |
rotate_pdf_pdf_rotate_post /pdf/rotate |
Rotate pages in a PDF. Input may be file upload, `pdf_url` or `pdf_base64` in JSON. Provide `degrees` (90/180/270), optional `page_numbers` list, and `response_mode`… |
| POST |
extract_from_url_pdf_extract_url_post /pdf/extract/url |
Provide `pdf_url` in JSON body (PDFExtractRequest model). |
| POST |
extract_metadata_pdf_extract_metadata_post /pdf/extract/metadata |
Extract metadata (Title, Author, Subject, Keywords, Producer, CreationDate, ModDate, etc.) from a PDF. Supports: multipart PDF upload, base64 JSON, or URL. |
| POST |
convert_handler_pdf_convert_post /pdf/convert |
Convert provided content (see PDFRequest model) into a PDF. Supported response modes: `binary` (raw PDF), `base64`, `json` with metadata, or `url` (store and return a download… |
| POST |
split_pdf_pdf_split_post /pdf/split |
Split a PDF into separate pages. Input can be multipart file upload or application/json with `pdf_url` or `pdf_base64`. New output: use `response_mode` (binary|base64|json|url).… |
| POST |
preview_template_templates_preview_post /templates/preview |
Render a stored template server-side using Jinja2 and provided `data`. Request body: JSON with `template_id` (string) and `data` (object) containing template variables. Response:… |
| POST |
create_template_templates_create_post /templates/create |
Create and store a user-specific Jinja2 HTML template. Request body: `TemplateCreate` (name, html). Returns the created template metadata. |
| GET |
list_templates_templates_list_get /templates/list |
Return a list of templates available to the authenticated user. |
| GET |
get_template_templates_get__template_id__get /templates/get/{template_id} |
Retrieve the stored template HTML and metadata by template ID for the current user. |
| GET |
template_variables_templates_variables__template_id__get /templates/variables/{template_id} |
Analyze the stored template HTML and return a deduplicated list of Jinja2 variable tokens found in `{{ ... }}` form to help callers know what variables to supply. |
| GET |
serve_template_templates_templates__slug__get /templates/templates/{slug} |
|
| POST |
screenshot_to_pdf_handler_screenshot_pdf_post /screenshot/pdf |
Capture a PNG/JPEG screenshot (same `ScreenshotRequest` schema) and convert the image to a PDF. `response_mode` mapping: - `binary` -> `application/pdf` stream with… |
| POST |
screenshot_handler_screenshot_post /screenshot |
Capture a PNG/JPEG screenshot rendered from `html` or `url` using the `ScreenshotRequest` schema. Supported `response_mode` values: `binary`, `base64`, `json`, `url`. Binary… |
| GET |
health_health_get /health |
|
| GET |
status_status_get /status |
|
| POST |
render_template_pdf_templates_render_pdf_post /templates/render-pdf |
Render a stored Jinja2 template with provided `data` and convert the result to PDF. Request body: `TemplateRenderRequest` (template_id, data, page/margin options, response_mode,… |
| DELETE |
remove_template_templates_delete__template_id__delete /templates/delete/{template_id} |
Delete a template by ID for the authenticated user. |
| GET |
get_rendered_pdf_url__asset_kind___public_slug__get /url/{asset_kind}/{public_slug} |
Fetch a previously generated asset using its temporary public slug and token. |
SarvaPdf – HTML to PDF API & Document Generation (Templates, Screenshots, PDF Tools) pricing
| Plan | Price | Rate limit | Quotas |
|---|---|---|---|
| BASIC | Free | 3 / second |
|
| PRO | $10 / month | 10 / second |
|
| ULTRA Recommended | $29 / month | 20 / second |
|
| MEGA | $79 / month | 40 / second |
|