Convert your HTML to PDF

with simple REST API & Chrome rendering engine

Use case example: create dynamic PDF invoice from HTML template paired with arbitrary JSON data
Acme Corporation
Invoice No. {{invoiceNumber}}
Bill to: <b>{{customerName}}</b>
Invoice summary: {{summary}}
Total Amount: {{totalAmount}} USD
<img src="/assets/logo.png">
+
{ "invoiceNumber": "123", "customerName": "John Doe", "summary": "<u>example</u>", "totalAmount": "456.78" }
=
Acme Corporation
Invoice No. 123
Bill to: John Doe
Invoice summary: example
Total Amount: 456.78 USD
 
request conversion via REST API
 
deliver result to AWS S3 or via email
Request your API key
Swagger API specification.NET Standard 2.0 Client Example

Built by developers, for developers

Example of simple synchronous HTML to PDF conversion using curl command:

$ curl \
   -o MyConvertedDocument.pdf -L https://html2pdf.appbeat.io/API/v1/conversion/download \
   # Authenticate with your API key & signature
   -H "Authorization: AppBeat TestKeyId:v1,1580633761:4H3UzCkLgxk76jjCS6afhihNa6zR/E7qY9vyuPbbN8U=" \
   # Synchronous API supports form encoded requests
   -d htmlOptions.htmlTemplateUrl="https://html2pdf.appbeat.io/examples/SimpleInvoiceTemplate.html" \
   # Pair HTML template with data (optional step)
   -d htmlOptions.data.invoiceNumber="123" \
   -d htmlOptions.data.customerName="John Doe" \
   -d htmlOptions.data.summary="<u>example</u>" \
   -d htmlOptions.data.totalAmount="456.78"   

This command would pair your HTML template with provided data and produce PDF document MyConvertedDocument.pdf on your local disk.

API Pricing:

Professional Enterprise
Price € 50.00 / month or € 500.00 / year € 150.00 / month or € 1,500.00 / year
Monthly conversions 10,000 50,000
Price Monthly conversions
Free € 0.00 50
Standard € 50.00 / year 1,000
Advanced € 40.00 / month or € 400.00 / year 10,000
Enterprise € 150.00 / month or € 1,500.00 / year 50,000

API endpoints & authentication

Quick information

API host: html2pdf.appbeat.io
Protocol: HTTPS
PDF conversion API: /API/v1/conversion contains methods for asynchronous & synchronous PDF conversion
Management API: /API/v1/management optional for managing crypto keys to protect PDF conversion payload
Authentication: via request Authorization header (see below for details)
API specification: Swagger
Structure descriptions: Detailed JSON structure descriptions are available in topics below. See asynchronous and synchronous HTML to PDF conversions for more details.

Used HTTP status codes:

Our web service methods require authentication via request headers. In each request you will have to send your API Access Key & signed string via Authorization header:

Authorization: AppBeat YourAccessKeyId:StringToSign:Signature
Where:

Example: If your API Access Key Id is TestKeyId, Secret Access Key is TestSecret and current Unix time in seconds is 1580633761, you should send following Authorization header:

Authorization: AppBeat TestKeyId:v1,1580633761:4H3UzCkLgxk76jjCS6afhihNa6zR/E7qY9vyuPbbN8U=

Asynchronous PDF conversion

This API allows you to submit HTML to PDF conversion job to queue and one of our servers will process it. You can query job status by calling statusUrl from response or receive webhook notification when conversion is finished.

Request structure

{
  "payload": {
    "deliveryOptions": {
      "webhookUrl" [*] 
Optional webhook URL where we send notification about successfully completed / failed PDF conversion.

      "deliveryTypes" [*] 
One or more PDF delivery types (please see examples for more details). Structure example:
[{"deliveryType":"S3","options":{ ... }},{"deliveryType":"Email","options":{ ... }}]

    },
    "deduplicationId" [*] 
Optional external ID to prevent multiple conversion calls for same document during last 24 hours. Max length: 36 characters.

    "htmlOptions": {
      "htmlTemplate" [*] 
HTML document which is converted to PDF. For example:

<html>
   <head>
      <!-- CSS styles, ... -->
   </head>
   <body>
      <!-- formatted content -->
   </body>
</html>

Note: if you use this field you can't use htmlTemplateUrl

      "htmlTemplateUrl" [*] 
External URL of HTML template which is converted to PDF. For example: https://example.com/Template.html

Note: if you use this field you can't use htmlTemplate

      "doNotContinueOnResourceDownloadError" [*] 
If there are 4xx or 5xx errors while loading template resources (external images, external scripts, external styles) do not continue with PDF covnersion because result may not look 'nice' (missing images, etc).
Possible values: null, true, false
Default value: false

      "data" [*] 
Optional collection of name/value pairs which are paired with your HTML template.

      "mediaType" [*] 
Selects CSS style for targeting media type.
Possible values: null, "Default", "Print", "Screen"
Default value: "Screen"

      "inlineCss" [*] 
Additional CSS style for your HTML document (optional). For example:

.myCssStyle {
   background-color: yellow;
   font-size: large;
}

#myElement {
   font-weight: bold;
}

      "renderBackground" [*] 
Should HTML background be included when creating PDF?
Possible values: null, true, false
Default value: true

      "scale" [*] 
Scaling factor between 0.2 and 4.0
Default value: 1.0

      "htmlHeaderTemplate" [*] 
Optional HTML template which is inserted into page header.
Possible variables: {{pageNumber}}, {{totalPages}}
Example: This is <b>header</b> text, page {{pageNumber}} of {{totalPages}}

      "htmlFooterTemplate" [*] 
Optional HTML template which is inserted into page footer.
Possible variables: {{pageNumber}}, {{totalPages}}
Example: This is <b>footer</b> text, page {{pageNumber}} of {{totalPages}}

    },
    "pdfOptions": {
      "pageOrientation" [*] 
Possible values: null, "Default", "Landscape", "Portrait"
Default value: "Portrait"

      "pageSize": { [*] 
You can set predefinedPageSize or custom width and height where you can use following unit values: "Centimeters", "Inches", "Millimeters"
Default value: {"pageSize":{"predefinedPageSize":"A4"}}

        "width": {
          "value"
          "unit"
        },
        "height": {
          "value"
          "unit"
        },
        "predefinedPageSize" [*] 
Possible predefinedPageSize values: null, "A0", "A1", "A2", "A3", "A4", "A5", "Default", "Ledger", "Legal", "Letter", "Tabloid"
Default value if width and height are not set: "A4"
Which is equivalent to: {"pageSize":{"width":{"value":210,"unit":"Millimeters"},"height":{"value":297,"unit":"Millimeters"}}}

      },
      "margin": { [*] 
Space between the text and the edge of your PDF document.
Possible unit values: "Centimeters", "Inches", "Millimeters"
Default value: {"margin":{"top":{"value":25.4,"unit":"Millimeters"},"bottom":{"value":25.4,"unit":"Millimeters"},"left":{"value":25.4,"unit":"Millimeters"},"right":{"value":25.4,"unit":"Millimeters"}}}

        "top": {
          "value"
          "unit"
        },
        "bottom": {
          "value"
          "unit"
        },
        "left": {
          "value"
          "unit"
        },
        "right": {
          "value"
          "unit"
        }
      }
    }
  },
  "encryptedPayload" [*] 
You can encrypt your entire payload structure with AES-256 key and save Base64 encoded string here.
If you use this option you must also set encryptedPayloadKeyDetails structure. Please see examples for more details.

  "encryptedPayloadKeyDetails": {
    "keyId" [*] 
Unique key id generated with /API/v1/management/create-crypto-key. Please see examples for more details. Must be present if you set encryptedPayload.

    "sharedKeyBase64" [*] 
Shared partial key generated with /API/v1/management/create-crypto-key method. It is used to dynamically reconstruct your key on our side so we can decrypt your payload. Must be present if you set encryptedPayload. Please see examples for more details.

    "ivBase64" [*] 
You can send us random initialization vector (IV) if you used non-zero value for payload encryption. When we decode it from Base64 it must be exactly 16 bytes long. If you don't send it we assume that you used IV with all zeroes.

  }
}

Response structure

{
  "status" [*] 
If conversion was successfully queued you will receive value ConversionQueued, otherwise you should receive ConversionNotQueued with more details in error field

  "jobId" [*] 
If conversion was successfully queued you will receive unique job identifier in this field

  "statusUrl" [*] 
You can use this URL to query current conversion status (you must also send Authorization header)

  "cancelUrl" [*] 
You can use this URL to cancel conversion job if it is still in Queued status (you must also send Authorization header)

  "error": { [*] 
If your conversion was not queued you may receive more details in this field

    "code"
    "message"
    "details": [{"code","message","details"}, ...]
  }
}

Submit simple conversion

Simplest PDF conversion job would contain only htmlTemplateUrl or htmlTemplate. In this example we are also using optional element data for pairing HTML with JSON data:

Method: /API/v1/conversion/add-to-queue
{
  "htmlOptions": {
    "htmlTemplateUrl": "https://html2pdf.appbeat.io/examples/SimpleInvoiceTemplate.html",
    "data": {
      "invoiceNumber": "123",
      "customerName": "John Doe",
      "summary": "<u>example</u>",
      "totalAmount": "456.78"
    }
  }
}

Response example:

{
  "status": "ConversionQueued",
  "jobId": "5bb5540a-3c2a-42ae-a730-1d9d5a531b5b",
  "statusUrl": "https://html2pdf.appbeat.io/API/v1/conversion/status/5bb5540a-3c2a-42ae-a730-1d9d5a531b5b/A6HBzEh0nbXR1gB8PJW7qaa_F9yOCcuIN_UGFcwlViQ",
  "cancelUrl": "https://html2pdf.appbeat.io/API/v1/conversion/cancel/5bb5540a-3c2a-42ae-a730-1d9d5a531b5b/A6HBzEh0nbXR1gB8PJW7qaa_F9yOCcuIN_UGFcwlViQ"
}

Conversion status

In /API/v1/conversion/add-to-queue response you will receive statusUrl value which targets /API/v1/conversion/status API. You can use this endpoint to check current PDF conversion status:

$ curl -H Authorization: AppBeat TestKeyId:v1,1580633761:4H3UzCkLgxk76jjCS6afhihNa6zR/E7qY9vyuPbbN8U= \
-H "Content-Type: application/json" -X GET \
https://html2pdf.appbeat.io/API/v1/conversion/status/5bb5540a-3c2a-42ae-a730-1d9d5a531b5b/7223f8a7-dbd8-cd08-be71-c992cbab410b-b016ced6-f31a-6da9-f2fa-dfbf8183468b

Response example for PDF conversion which is currently in progress:

{
  "conversionStatus": "Processing"
}

If you repeat same request after few moments and job was successfully finished, you should receive result similar to this:

{
  "conversionStatus": "Processed",
  "deliveryDetails": [
    {
      "status": "Success",
      "deliveryType": "S3",
      "details": {
        "awsRegion": "us-east-1",
        "awsBucketName": "html2pdf-example",
        "filename": "5bb5540a-3c2a-42ae-a730-1d9d5a531b5b.pdf",
        "downloadUrl": " https://html2pdf-example.s3.us-east-1.amazonaws.com/5bb5540a-3c2a-42ae-a730-1d9d5a531b5b.pdf"
      }
    }
  ]
}

Completed conversion & webhook notification

If you set deliveryOptions.webhookUrl in /API/v1/conversion/add-to-queue request we will send JSON payload to this URL when conversion is complete (we will use POST request method). JSON payload will have same structure as in /API/v1/conversion/status method.

Webhook JSON payload example for successful conversion:

{
  "conversionStatus": "Processed",
  "deliveryDetails": [
    {
      "status": "Success",
      "deliveryType": "S3",
      "details": {
        "awsRegion": "us-east-1",
        "awsBucketName": "html2pdf-example",
        "filename": "5bb5540a-3c2a-42ae-a730-1d9d5a531b5b.pdf",
        "downloadUrl": " https://html2pdf-example.s3.us-east-1.amazonaws.com/5bb5540a-3c2a-42ae-a730-1d9d5a531b5b.pdf"
      }
    }
  ]
}

Webhook JSON payload example for failed conversion:

{
  "conversionStatus": "Error",
  "error": {
    "code": "SystemError",
    "message": "Failed to download external HTML template"
  }
}

Sending raw HTML with embedded images and CSS styles

If you don't want to expose your HTML template publicly via htmlOptions.htmlTemplateUrl, you can send us your raw HTML via htmlOptions.htmlTemplate. You can also send embedded images and inline CSS as shown in example below:

Method: /API/v1/conversion/add-to-queue
{
  "payload": {
    "deliveryOptions": {
      "webhookUrl": "https://example.com/notification/webhook"
    },
    "htmlOptions": {
      "htmlTemplate": "
<!-- Embedded HTML template demo without external resources -->
<html>
<head></head>
<body>
   <div>
      <div class="invoice-header">Acme Corporation<br>Invoice No. {{invoiceNumber}}</div>
      <div>Bill to: <b>{{customerName}}</b></div>
      <div>Invoice summary: {{summary}}</div>
      <div>Total Amount: {{totalAmount}} USD</div>
      <div><img alt="Embedded PNG image example via data URI" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAIAQMAAAD+wSzIAAAABlBMVEUAJv//AACLe1F3AAAADklEQVQI12Pgh8IPEAgAEeAD/Xk4HBcAAAAASUVORK5CYII=" /></div>
   </div>
</body>
</html>",
      "data": {
        "invoiceNumber": "123",
        "customerName": "John Doe",
        "summary": "<u>example</u>",
        "totalAmount": "456.78"
      },
      "inlineCss": "
.invoice-header {
   background-color: #3284E0;
   color: #fff;
   padding: 0.5em;
}"
    },
    "pdfOptions": {
      "pageSize": {
        "predefinedPageSize": "A4"
      }
    }
  }
}

Create PDF with header & footer

If you would like to include header and/or footer on every PDF page you can use htmlHeaderTemplate and htmlFooterTemplate properties:

Method: /API/v1/conversion/add-to-queue
{
  "payload": {
    "deliveryOptions": {
      "webhookUrl": "https://example.com/notification/webhook",
      "deliveryTypes": [
        {
          "deliveryType": "S3"
        }
      ]
    },
    "htmlOptions": {
      "htmlTemplateUrl": "https://html2pdf.appbeat.io/examples/SimpleInvoiceTemplate.html",
      "data": {
        "invoiceNumber": "123",
        "customerName": "John Doe",
        "summary": "<u>example</u>",
        "totalAmount": "456.78"
      },
      "htmlHeaderTemplate": "My header text",
      "htmlFooterTemplate": "My footer text, page {{pageNumber}} of {{totalPages}}"
    },
    "pdfOptions": {
      "pageSize": {
        "predefinedPageSize": "A4"
      }
    }
  }
}

PDF delivery via email

If you don't want to bother with sending generated PDF documents via email you can provide us your SMTP server credentials and we will send email for you - as soon as PDF convrsion is complete. If we can't connect to your email server we will retry several times.

Method: /API/v1/conversion/add-to-queue
{
  "payload": {
    "deliveryOptions": {
      "webhookUrl": "https://example.com/notification/webhook",
      "deliveryTypes": [
        {
          "deliveryType": "Email",
          "options": {
            "subject": "Invoice {{invoiceNumber}} for {{customerName}}",
            "from": {
              "name": "From Name",
              "address": "from@example.com"
            },
            "to": {
              "name": "To Name",
              "address": "to@example.com"
            },
            "textBody": "Hi {{customerName}},\n\nWe are attaching you invoice Invoice-{{Html2Pdf_JobId}}.pdf\n\nKind regards,\nAcme Corporation",
            "htmlBody": "<p>Hi {{customerName}},</p><p>We are attaching you invoice Invoice-{{Html2Pdf_JobId}}.pdf</p><p>Kind regards,\nAcme Corporation</p>",
            "filenameTemplate": "Invoice-{{Html2Pdf_JobId}}.pdf",
            "secureSocketOptions": "sslOnConnect",
            "smtpServer": "smtp.example.com",
            "smtpPort": 465,
            "username": "YourSmtpUsername",
            "password": "YourSmtpPassword"
          }
        }
      ]
    },
    "htmlOptions": {
      "htmlTemplateUrl": "https://html2pdf.appbeat.io/examples/SimpleInvoiceTemplate.html",
      "data": {
        "invoiceNumber": "123",
        "customerName": "John Doe",
        "summary": "<u>example</u>",
        "totalAmount": "456.78"
      }
    },
    "pdfOptions": {
      "pageSize": {
        "predefinedPageSize": "A4"
      }
    }
  }
}

PDF delivery to your own AWS S3 bucket

If you want to store converted PDF documents in your AWS S3 bucket you will have to provide us your AWS S3 credentials as shown below:

awsCannedACL can have following values: BucketOwnerRead, AuthenticatedRead or PublicRead

For awsRegion values please use region codes found on following link: AWS Service Endpoints

Method: /API/v1/conversion/add-to-queue
{
  "payload": {
    "deliveryOptions": {
      "webhookUrl": "https://example.com/notification/webhook",
      "deliveryTypes": [
        {
          "deliveryType": "S3",
          "options": {
            "awsAccessKeyId": "YourAwsAccessKeyId",
            "awsSecretAccessKey": "YourAwsSecretAccessKey",
            "awsRegion": "us-east-1",
            "awsBucket": "YourAwsBucket",
            "awsCannedACL": "BucketOwnerRead"
          }
        }
      ]
    },
    "htmlOptions": {
      "htmlTemplateUrl": "https://html2pdf.appbeat.io/examples/SimpleInvoiceTemplate.html",
      "data": {
        "invoiceNumber": "123",
        "customerName": "John Doe",
        "summary": "<u>example</u>",
        "totalAmount": "456.78"
      }
    },
    "pdfOptions": {
      "pageSize": {
        "predefinedPageSize": "A4"
      }
    }
  }
}

Create PDF only if all external resources are downloaded

When we load your HTML template in Chrome engine, external resources may be requested, for example: images, CSS styles, JavaScript, ...

Some of those resources may fail to load due to connectivity issues or external server may be temporary unavailable. This may produce PDF with missing images or wrong CSS styling. To prevent this from happening you can set doNotContinueOnResourceDownloadError to true. If this flag is set and we can't download all external resources, PDF generation will fail and we will not continue with delivery.

Method: /API/v1/conversion/add-to-queue
{
  "payload": {
    "deliveryOptions": {
      "webhookUrl": "https://example.com/notification/webhook",
      "deliveryTypes": [
        {
          "deliveryType": "S3"
        }
      ]
    },
    "htmlOptions": {
      "htmlTemplateUrl": "https://html2pdf.appbeat.io/examples/SimpleInvoiceTemplate.html",
      "doNotContinueOnResourceDownloadError": true,
      "data": {
        "invoiceNumber": "123",
        "customerName": "John Doe",
        "summary": "<u>example</u>",
        "totalAmount": "456.78"
      }
    },
    "pdfOptions": {
      "pageSize": {
        "predefinedPageSize": "A4"
      }
    }
  }
}

Encrypted payload

In addition to TLS transport security you can protect your payload with AES-256 encryption before sending request over network. This is optional (advanced) functionality for maximum security.

First you have to generate your AES-256 encryption key by calling /API/v1/management/create-crypto-key method as described in "Create crypto key" example.

Once you successfully created crypto key, you can call /API/v1/conversion/add-to-queue method with encrypted payload by using your newly created key as following:

Method: /API/v1/conversion/add-to-queue
{
  "encryptedPayload": "Base64( AES-256-Encrypt( YourPrivateAesKey, UTF8-Encoding-Of( YourJsonPayload ) ) )",
  "encryptedPayloadKeyDetails": {
    "keyId": "0915ecf0-bd91-46a1-be0a-9a7923dda3aa",
    "sharedKeyBase64": "m9YwSSvrwUMCfwSvtDqO7plcWPRVuJkLnSEbEQvyI1c="
  }
}
Where:
{
  "payload": {
    "deliveryOptions": {
      "webhookUrl": "https://example.com/notification/webhook",
      "deliveryTypes": [
        {
          "deliveryType": "S3"
        }
      ]
    },
    "htmlOptions": {
      "htmlTemplateUrl": "https://html2pdf.appbeat.io/examples/SimpleInvoiceTemplate.html",
      "data": {
        "invoiceNumber": "123",
        "customerName": "John Doe",
        "summary": "<u>example</u>",
        "totalAmount": "456.78"
      }
    },
    "pdfOptions": {
      "pageSize": {
        "predefinedPageSize": "A4"
      }
    }
  }
}

PDF delivery options

We can currently deliver your PDF files by following channels:

Delivery type Storage owner Data retention Comment
AWS S3 AppBeat approx. 1 day PDF is automatically deleted after retention period
AWS S3 Customer N/A, managed by customer Applicable if customer provides their own AWS credentials, bucket & region. Please see example for more details.
Email Other N/A, managed by administrator of destination email server PDF can be sent as attachment to different email receivers. Please see example for more details.
Delivery type Storage owner Data retention
AWS S3 AppBeat approx. 1 day
PDF is automatically deleted after retention period
AWS S3 Customer N/A, managed by customer
Applicable if customer provides their own AWS credentials, bucket & region. Please see example for more details.
Email Other N/A, managed by administrator of destination email server
PDF can be sent as attachment to different email receivers. Please see example for more details.

In future versions we may add additional delivery options, for example SFTP, Azure Storage, Amazon Simple Queue Service, various databases, ... Please let us know if you are interested!

Security recommendation: When sending sensitive data, for example customer provided AWS S3 credentials, email credentials, etc., we recommend application payload protection with encryption key.

Synchronous PDF conversion

This API allows you to submit HTML to PDF conversion job, your client waits for result and downloads converted PDF.

Supported request encodings:

Supported response encodings:

JSON request structure for /API/v1/conversion/download-from-json

{
  "deduplicationId" [*] 
Optional external ID to prevent multiple conversion calls for same document during last 24 hours. Max length: 36 characters.

  "htmlOptions": {
    "htmlTemplate" [*] 
HTML document which is converted to PDF. For example:

<html>
   <head>
      <!-- CSS styles, ... -->
   </head>
   <body>
      <!-- formatted content -->
   </body>
</html>

Note: if you use this field you can't use htmlTemplateUrl

    "htmlTemplateUrl" [*] 
External URL of HTML template which is converted to PDF. For example: https://example.com/Template.html

Note: if you use this field you can't use htmlTemplate

    "doNotContinueOnResourceDownloadError" [*] 
If there are 4xx or 5xx errors while loading template resources (external images, external scripts, external styles) do not continue with PDF covnersion because result may not look 'nice' (missing images, etc).
Possible values: null, true, false
Default value: false

    "data" [*] 
Optional collection of name/value pairs which are paired with your HTML template.

    "mediaType" [*] 
Selects CSS style for targeting media type.
Possible values: null, "Default", "Print", "Screen"
Default value: "Screen"

    "inlineCss" [*] 
Additional CSS style for your HTML document (optional). For example:

.myCssStyle {
   background-color: yellow;
   font-size: large;
}

#myElement {
   font-weight: bold;
}

    "renderBackground" [*] 
Should HTML background be included when creating PDF?
Possible values: null, true, false
Default value: true

    "scale" [*] 
Scaling factor between 0.2 and 4.0
Default value: 1.0

    "htmlHeaderTemplate" [*] 
Optional HTML template which is inserted into page header.
Possible variables: {{pageNumber}}, {{totalPages}}
Example: This is <b>header</b> text, page {{pageNumber}} of {{totalPages}}

    "htmlFooterTemplate" [*] 
Optional HTML template which is inserted into page footer.
Possible variables: {{pageNumber}}, {{totalPages}}
Example: This is <b>footer</b> text, page {{pageNumber}} of {{totalPages}}

  },
  "pdfOptions": {
    "pageOrientation" [*] 
Possible values: null, "Default", "Landscape", "Portrait"
Default value: "Portrait"

    "pageSize": { [*] 
You can set predefinedPageSize or custom width and height where you can use following unit values: "Centimeters", "Inches", "Millimeters"
Default value: {"pageSize":{"predefinedPageSize":"A4"}}

      "width": {
        "value"
        "unit"
      },
      "height": {
        "value"
        "unit"
      },
      "predefinedPageSize" [*] 
Possible predefinedPageSize values: null, "A0", "A1", "A2", "A3", "A4", "A5", "Default", "Ledger", "Legal", "Letter", "Tabloid"
Default value if width and height are not set: "A4"
Which is equivalent to: {"pageSize":{"width":{"value":210,"unit":"Millimeters"},"height":{"value":297,"unit":"Millimeters"}}}

    },
    "margin": { [*] 
Space between the text and the edge of your PDF document.
Possible unit values: "Centimeters", "Inches", "Millimeters"
Default value: {"margin":{"top":{"value":25.4,"unit":"Millimeters"},"bottom":{"value":25.4,"unit":"Millimeters"},"left":{"value":25.4,"unit":"Millimeters"},"right":{"value":25.4,"unit":"Millimeters"}}}

      "top": {
        "value"
        "unit"
      },
      "bottom": {
        "value"
        "unit"
      },
      "left": {
        "value"
        "unit"
      },
      "right": {
        "value"
        "unit"
      }
    }
  }
}

Form encoded request structure for /API/v1/conversion/download

deduplicationId=""
htmlOptions.htmlTemplate=""
htmlOptions.htmlTemplateUrl=""
htmlOptions.doNotContinueOnResourceDownloadError=""
htmlOptions.data=""
htmlOptions.mediaType=""
htmlOptions.inlineCss=""
htmlOptions.renderBackground=""
htmlOptions.scale=""
htmlOptions.htmlHeaderTemplate=""
htmlOptions.htmlFooterTemplate=""
pdfOptions.pageOrientation=""
pdfOptions.pageSize.width.value=""
pdfOptions.pageSize.width.unit=""
pdfOptions.pageSize.height.value=""
pdfOptions.pageSize.height.unit=""
pdfOptions.pageSize.predefinedPageSize=""
pdfOptions.margin.top.value=""
pdfOptions.margin.top.unit=""
pdfOptions.margin.bottom.value=""
pdfOptions.margin.bottom.unit=""
pdfOptions.margin.left.value=""
pdfOptions.margin.left.unit=""
pdfOptions.margin.right.value=""
pdfOptions.margin.right.unit=""

Other request examples

Supported request encodings:

Supported response encodings:

Create crypto key

Method: /API/v1/management/create-crypto-key
{
  "cryptoAlgorithm": "Aes256"
}

Response example:

{
  "keyId": "0915ecf0-bd91-46a1-be0a-9a7923dda3aa",
  "cryptoAlgorithm": "Aes256",
  "privateKeyBase64": "TCPRMo2a5uTpmmDYEyRw8rpZN9utN9IAvwY7cChWPaQ=",
  "sharedKeyBase64": "m9YwSSvrwUMCfwSvtDqO7plcWPRVuJkLnSEbEQvyI1c=",
  "status": "Success"
}

You should securely store this response and you must not share privateKeyBase64 with anyone. privateKeyBase64 contains Base64 encoded AES 256 key.

API specification

Resources for v1:

Security & Privacy

Have questions or suggestions?

We will be happy to receive your feedback or to answer your questions. You can contact us by using our contact form.