HTML to Image / HTTP API Reference

Conversion Format

output_format

The output file format.

Default:
png
Allowed Values:
  • png
  • jpg
  • gif
  • tiff
  • bmp
  • ico
  • ppm
  • pgm
  • pbm
  • pnm
  • psb
  • pct
  • ras
  • tga
  • sgi
  • sun
  • webp

Conversion Input

url

The address of the web page to convert.

Constraint:
  • Supported protocols are http:// and https://.

file

The path to a local file to convert.
The file can be either a single file or an archive (.tar.gz, .tar.bz2, or .zip).
If the HTML document refers to local external assets (images, style sheets, javascript), zip the document together with the assets.

Constraints:
  • The file must exist and not be empty.
  • The file name must have a valid extension.

text

The string content to convert.

zip_main_filename

Set the file name of the main HTML document stored in the input archive. Use this when your ZIP/TAR archive contains multiple HTML files and you need to specify which one to convert.

If not specified, the first HTML file found in the archive is automatically used for conversion.

Response

output_name

The file name of the created file (max 180 chars). If not specified, the name is auto-generated.

content_disposition

The value of the Content-Disposition HTTP header sent in the response.

Default:
attachment
Allowed Values:
  • attachment — Forces the browser to pop up a Save As dialog.
  • inline — The browser will open the result file in the browser window.

Image Output

screenshot_width

Set the output image width in pixels.

Constraint:
  • The accepted range is 96-65000.
Default:
1024
Example:
  • Full HD width: 1920

screenshot_height

Set the output image height in pixels. If it is not specified, actual document height is used.

Constraint:
  • Must be a positive integer.
Example:
  • Full HD height: 1080

scale_factor

Set the scaling factor (zoom) for the output image.

Constraint:
  • Must be a positive integer.
Default:
100
Example:
  • Reduce image for thumbnails: 50

background_color

The output image background color in RGB or RGBA hex format. Use transparent (00000000) for PNG overlays or solid colors for web display.

Availability:
Available for converters >= 20.10. See versioning.
Constraint:
  • The value must be in RRGGBB or RRGGBBAA hexadecimal format.
Examples:
  • red color: FF0000
  • fully transparent background: 00000000
  • green color with 50% opacity: 00ff0080
  • green color: 00ff00

General Options

use_print_media

Use the print version of the page if available via @media print CSS rules. Enable this when converting websites that have print-optimized styles. Many sites hide navigation, ads, and sidebars in print mode.

Produces cleaner PDFs by using the design the website creator intended for printing.

Default:
false
Allowed Values:
  • true, 1 or on
  • false, 0 or off

no_background

Do not print the background graphics to create printer-friendly PDFs. Use this when documents will be physically printed to save ink costs and improve readability.

Removes background colors, images, and patterns while preserving text and foreground content. Particularly useful for documents with dark backgrounds or decorative elements.

Default:
false
Allowed Values:
  • true, 1 or on
  • false, 0 or off

disable_javascript

Do not execute JavaScript during conversion. Use this to improve conversion speed when JavaScript is not needed, prevent dynamic content changes, or avoid security risks from untrusted scripts.

Note that disabling JavaScript means lazy-loaded images and AJAX content will not load.

Default:
false
Allowed Values:
  • true, 1 or on
  • false, 0 or off

disable_image_loading

Do not load images during conversion to create text-only PDFs. Use this to significantly speed up conversion, reduce file size, or create accessible text-focused documents.

Ideal for converting documentation where images are not needed, reducing bandwidth usage, or creating lightweight PDFs for email distribution.

Default:
false
Allowed Values:
  • true, 1 or on
  • false, 0 or off

disable_remote_fonts

Disable loading fonts from remote sources. Use this to speed up conversion by avoiding font download delays, ensure consistent rendering with system fonts, or work around font loading failures.

Note that text will fall back to system fonts, which may change the document's appearance.

Default:
false
Allowed Values:
  • true, 1 or on
  • false, 0 or off

use_mobile_user_agent

Deprecated Replaced with: converter_user_agent

Use a mobile user agent when making requests to the source URL.

Availability:
Available for converters >= 20.10. See versioning.
Default:
false
Allowed Values:
  • true, 1 or on
  • false, 0 or off

load_iframes

Specifies how iframes are handled during conversion. Use "all" to include all embedded content (videos, maps, widgets). Use "same-origin" to include only content from the same domain for security purposes. Use "none" to exclude all iframes for faster conversion and to avoid third-party content issues.

Disabling iframes can significantly improve performance and reliability.

Availability:
Available for converters >= 20.10. See versioning.
Default:
all
Allowed Values:
  • all — All iframes are loaded.
  • same-origin — Only iframes with the same origin as the main page are loaded.
  • none — Iframe loading is disabled.

block_ads

Automatically block common advertising networks and tracking scripts during conversion, producing cleaner PDFs with faster conversion times. Filters out third-party ad content, analytics beacons, and ad network resources.

Ideal for converting news sites, blogs, or any ad-heavy content where ads distract from the main message. May occasionally block legitimate third-party content - disable if critical third-party resources are missing.

Default:
false
Allowed Values:
  • true, 1 or on
  • false, 0 or off

default_encoding

Specify the character encoding when the HTML lacks proper charset declaration or has incorrect encoding. Prevents garbled text for non-English content, especially legacy pages without UTF-8 encoding.

Set to "utf-8" for modern content, "iso-8859-1" for Western European legacy pages, or other encodings for specific regional content. Only needed when auto-detection fails and you see corrupted characters in the output.

Default:
auto detect
Examples:
  • Set to use Latin-2 encoding: iso8859-2
  • Set to use UTF-8 encoding: utf-8

locale

Set the locale for the conversion to control regional formatting of dates, times, and numbers. Use this when converting content for specific regions - for example, set to "en-US" for MM/DD/YYYY dates and comma thousand separators, or "de-DE" for DD.MM.YYYY dates and period thousand separators.

Essential for financial reports, invoices, or localized content.

Availability:
Available for converters >= 20.10. See versioning.
Default:
en-US
Example:
  • Set to use Japanese locale: ja-JP

http_auth_user_name

Set the HTTP authentication user name. Required to access protected web pages or staging environments.

Example:
  • HTTP auth username: John

http_auth_password

Set the HTTP authentication password. Required to access protected web pages or staging environments.

Example:
  • Simple password for protected sites: 123456

cookies

Set HTTP cookies to be included in all requests made by the converter to access authenticated or session-based content. Use this when converting pages that require login, maintain user sessions, or personalize content based on cookies.

Essential for converting member-only areas, dashboards, or any content behind cookie-based authentication. Format as semicolon-separated name=value pairs.

Example:
  • Multiple cookies for authentication: session=6d7184b3bf35;token=2710

verify_ssl_certificates

Enforce SSL certificate validation for secure connections, preventing conversions from sites with invalid certificates. Enable when converting from production sites with valid certificates to ensure security.

When disabled, allows conversion from any HTTPS site regardless of certificate validity - including development servers with self-signed certificates, internal corporate sites with expired certificates, or local testing environments.

Default:
false
Allowed Values:
  • true, 1 or on
  • false, 0 or off

fail_on_main_url_error

Abort the conversion if the HTTP status code of the main URL is greater than or equal to 400 (client/server errors). Use this in automated workflows to catch broken URLs or authentication failures early rather than producing invalid PDFs. Ensures your system does not silently generate error page PDFs when source content is unavailable.

Default:
false
Allowed Values:
  • true, 1 or on
  • false, 0 or off

fail_on_any_url_error

Abort the conversion if any sub-request (images, stylesheets, scripts) fails with HTTP 400+ errors. Use this for strict quality control when all assets must load successfully.

Default:
false
Allowed Values:
  • true, 1 or on
  • false, 0 or off

no_xpdfcrowd_header

Do not send the X-Pdfcrowd HTTP header in HTTP requests made by the converter. Use this if your target server blocks or logs requests with this header, or for privacy when you do not want sites to know you are using PDFCrowd. Some security systems may block requests with non-standard headers.

Default:
false
Allowed Values:
  • true, 1 or on
  • false, 0 or off

custom_css

Apply custom CSS to the input HTML document to modify the visual appearance and layout of your content dynamically. Use this to override default styles, adjust spacing, change fonts, or fix layout issues without modifying the source HTML.

Use !important in your CSS rules to prioritize and override conflicting styles.

Availability:
Available for converters >= 20.10. See versioning.
Examples:
  • Set the page background color to gray: body { background-color: gray; }
  • Do not show nav HTML elements and the element with ad-block ID in the output PDF: nav, #ad-block { display: none !important; }

custom_javascript

Run a custom JavaScript after the document is loaded and ready to print. Use this to modify page content before conversion, remove unwanted elements, or trigger specific page states. The script is intended for post-load DOM manipulation (add/remove elements, update CSS, ...).

In addition to the standard browser APIs, the custom JavaScript code can use helper functions from our JavaScript library.

Example:
  • Set the page background color to gray: document.body.style.setProperty('background-color', 'gray', 'important')

on_load_javascript

Run a custom JavaScript right after the document is loaded. The script is intended for early DOM manipulation (add/remove elements, update CSS, ...). In addition to the standard browser APIs, the custom JavaScript code can use helper functions from our JavaScript library.

Example:
  • Set the page background color to gray: document.body.style.setProperty('background-color', 'gray', 'important')

custom_http_header

Set a custom HTTP header to be included in all requests made by the converter. Use this to pass authentication tokens to protected sites, add tracking headers for analytics, or provide API keys for accessing private content.

Essential when converting content from APIs or internal systems that require special headers for access control.

Constraint:
  • A string containing the header name and value separated by a colon.
Example:
  • API client tracking header: X-My-Client-ID:k2017-12345

javascript_delay

Wait the specified number of milliseconds to finish all JavaScript after the document is loaded. Use this to ensure lazy-loaded images, AJAX content, or animations complete before conversion. Your license defines the maximum wait time by "Max Delay" parameter.

Constraint:
  • Must be a positive integer or 0.
Default:
200
Example:
  • Wait for 2 seconds: 2000

element_to_convert

Convert only the specified element from the main document and its children. Use this to extract specific portions of a page (like article content) while excluding navigation, headers, footers, or sidebars. The element is specified by one or more CSS selectors. If the element is not found, the conversion fails. If multiple elements are found, the first one is used.

Examples:
  • The first element with the id main-content is converted: #main-content
  • The first element with the class name main-content is converted: .main-content
  • The first element with the tag name table is converted: table
  • The first element with the tag name table or with the id main-content is converted: table, #main-content
  • The first element <p class="article"> within <div class="user-panel main"> is converted: div.user-panel.main p.article

element_to_convert_mode

Control how CSS styles are applied when converting only part of a page. The "cut-out" option extracts the element into a new document root, which may break CSS selectors like "body > div". The "remove-siblings" option keeps the element in its original DOM position but deletes other elements, preserving descendant selectors. The "hide-siblings" option keeps all elements but hides non-selected ones with display:none, preserving all CSS context.

Default:
cut-out
Allowed Values:
  • cut-out — The element and its children are cut out of the document.
  • remove-siblings — All element's siblings are removed from the DOM. Keeps target element in position but may break descendant CSS selectors.
  • hide-siblings — All element's siblings are hidden using display:none. Preserves CSS context while hiding non-target content.

wait_for_element

Wait for the specified element in a source document. Use this when specific dynamic content must be ready before conversion, avoiding unnecessary delays from a fixed JavaScript delay. The element is specified by one or more CSS selectors. The element is searched for in the main document and all iframes.

If the element is not found, the conversion fails. Your license defines the maximum wait time by the "Max Delay" parameter.

Examples:
  • Wait until an element with the id main-content is found: #main-content
  • Wait until an element with the class name main-content is found: .main-content
  • Wait until an element with the tag name table is found: table
  • Wait until an element with the tag name table or with the id main-content is found: table, #main-content
  • Wait until <p class="article"> is found within <div class="user-panel main">: div.user-panel.main p.article

auto_detect_element_to_convert

The main HTML element for conversion is detected automatically. Use this when you want to extract article or main content without knowing the exact CSS selector, automatically excluding navigation and sidebars.

Availability:
Available for converters >= 20.10. See versioning.
Default:
false
Allowed Values:
  • true, 1 or on
  • false, 0 or off

readability_enhancements

Automatically enhance the input HTML to improve readability by removing clutter and reformatting content. Use this when converting web pages with excessive navigation, ads, or sidebars that distract from the main content.

Different versions (v1-v4) use progressively aggressive algorithms - start with "v1" and increase if more cleanup is needed. Ideal for converting blog posts, articles, or documentation into clean PDFs.

Availability:
Available for converters >= 20.10. See versioning.
Default:
none
Allowed Values:
  • none — No enhancements are used.
  • readability-v1 — Version 1 of the enhancements is used. Basic cleanup for simple pages with moderate clutter.
  • readability-v2 — Version 2 of the enhancements is used. More aggressive cleanup for pages with more ads and navigation.
  • readability-v3 — Version 3 of the enhancements is used. Strong cleanup for heavily cluttered pages with multiple sidebars.
  • readability-v4 — Version 4 of the enhancements is used. Maximum cleanup for extremely cluttered pages. May remove some content.

Data

Methods related to HTML template rendering.

data_string

Set the input data for template rendering. The data format can be JSON, XML, YAML or CSV.

Example:
  • Template variables for mail merge: {"recipient": "Anna May", "sender": "John Doe"}

data_file

Load the input data for template rendering from the specified file. The data format can be JSON, XML, YAML or CSV.

Example:
  • External data for template rendering: /home/user/john/data.json

data_format

Specify the input data format. Use "auto" for automatic detection or explicitly set to JSON, XML, YAML, or CSV when format is known.

Default:
auto
Allowed Values:
  • auto — The data format is auto-detected.
  • json
  • xml
  • yaml
  • csv

data_encoding

Set the encoding of the data file set by data_file.

Default:
utf-8
Example:
  • Set to use Latin-2 encoding: iso8859-2

data_ignore_undefined

Ignore undefined variables in the HTML template. The default mode is strict so any undefined variable causes the conversion to fail. You can use {% if variable is defined %} to check if the variable is defined.

Default:
false
Allowed Values:
  • true, 1 or on
  • false, 0 or off

data_auto_escape

Auto escape HTML symbols in the input data before placing them into the output.

Default:
false
Allowed Values:
  • true, 1 or on
  • false, 0 or off

data_trim_blocks

Auto trim whitespace around each template command block.

Default:
false
Allowed Values:
  • true, 1 or on
  • false, 0 or off

data_options

Set the advanced data options:
  • csv_delimiter - The CSV data delimiter, the default is ,.
  • xml_remove_root - Remove the root XML element from the input data.
  • data_root - The name of the root element inserted into the input data without a root node (e.g. CSV), the default is data.
Examples:
  • Use semicolon to separate CSV data: csv_delimiter=;
  • Name the root of data rows and use the name in the template loop {% for row in rows %}...{% endfor %}: data_root=rows
  • Remove XML root so the HTML template can be simpler: xml_remove_root=1

Miscellaneous

debug_log

Turn on debug logging to troubleshoot conversion issues. Details about the conversion process, including resource loading, rendering steps, and error messages are stored in the debug log. Use this when conversions fail or produce unexpected results. The URL of the log is returned in the x-pdfcrowd-debug-log response header or available in conversion statistics.

Default:
false
Allowed Values:
  • true, 1 or on
  • false, 0 or off

tag

Tag the conversion with a custom value for tracking and analytics. Use this to categorize conversions by customer ID, document type, or business unit. The tag appears in conversion statistics. A value longer than 32 characters is cut off.

Example:
  • Track job in analytics: client-1234

http_proxy

A proxy server used by the conversion process for accessing the source URLs with HTTP scheme. This can help circumvent regional restrictions or provide limited access to your intranet.

Constraint:
  • The value must have format DOMAIN_OR_IP_ADDRESS:PORT.
Examples:
  • Corporate proxy server: myproxy.com:8080
  • Direct IP proxy connection: 113.25.84.10:33333

https_proxy

A proxy server used by the conversion process for accessing the source URLs with HTTPS scheme. This can help circumvent regional restrictions or provide limited access to your intranet.

Constraint:
  • The value must have format DOMAIN_OR_IP_ADDRESS:PORT.
Examples:
  • Secure proxy for HTTPS: myproxy.com:443
  • Direct secure proxy IP: 113.25.84.10:44333

client_certificate

A client certificate to authenticate the converter on your web server. The certificate is used for two-way SSL/TLS authentication (mutual TLS) and adds extra security. Use this when converting content from servers that require client certificate authentication for access.

Constraint:
  • The file must exist and not be empty.
Example:
  • Custom CA certificate path: /home/user/john/pdfcrowd.crt

client_certificate_password

A password for the PKCS12 file with a client certificate if the certificate file is password-protected.

Example:
  • PKCS12 certificate password: 123456

Tweaks

Expert options for fine-tuning output.

max_loading_time

Set the maximum time for loading the page and its resources. After this time, all requests will be considered successful. This can be useful to ensure that the conversion does not timeout. Use this method if there is no other way to fix page loading.

Availability:
Available for converters >= 20.10. See versioning.
Constraint:
  • The accepted range is 10-30.

converter_user_agent

Specify the User-Agent HTTP header that will be used by the converter when a request is made to the converted web page.

Availability:
See versioning.
Default:
latest-chrome-desktop
Allowed Values:
  • chrome-desktop — The user-agent for desktop chrome corresponding to the converter used.
  • chrome-mobile — The user-agent for mobile chrome corresponding to the converter used.
  • latest-chrome-desktop — The user-agent of the recently released Chrome browser on desktops.
  • latest-chrome-mobile — The user-agent of the recently released Chrome browser on mobile devices.
  • custom string — A custom string for the user agent.
Examples:
  • Mimic the recent chrome on mobiles: latest-chrome-mobile
  • Mimic Safari 18.0 browser: Mozilla/5.0 (Macintosh; Intel Mac OS X 14_7_1) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.0 Safari/605.1.15