How to PDF create fillable PDF forms for fillable PDF forms in Python and Web API

What is Web API? It is the flexible Web API that includes full set of functions from e-signature requests to data extraction, OCR, images recognition, pdf splitting and pdf splitting. Can also generate barcodes and read barcodes from images, scans and pdf.

On-demand (REST Web API) version:
 Web API (on-demand version)

On-premise offline SDK for Windows:
 60 Day Free Trial (on-premise)

import os import requests # pip install requests # The authentication key (API Key). # Get your own by registering at API_KEY = "**************************************" # Base URL for Web API requests BASE_URL = "" def main(args = None): fillPDFForm() def fillPDFForm(): """Fillable PDF form using Web API""" # Prepare requests params as JSON # See documentation: payload = "{\n \"async\": false,\n \"encrypt\": true,\n \"name\": \"newDocument\",\n \"url\": \"\",\n \"annotations\":[ \n {\n \"text\":\"sample prefilled text\",\n \"x\": 10,\n \"y\": 30,\n \"size\": 12,\n \"pages\": \"0-\",\n \"type\": \"TextField\",\n \"id\": \"textfield1\"\n },\n {\n \"x\": 100,\n \"y\": 150,\n \"size\": 12,\n \"pages\": \"0-\",\n \"type\": \"Checkbox\",\n \"id\": \"checkbox2\"\n },\n {\n \"x\": 100,\n \"y\": 170,\n \"size\": 12,\n \"pages\": \"0-\",\n \"link\": \"\",\n \"type\": \"CheckboxChecked\",\n \"id\":\"checkbox3\"\n } \n \n ],\n \n \"images\": [\n {\n \"url\": \"\",\n \"x\": 200,\n \"y\": 250,\n \"pages\": \"0\",\n \"link\": \"\"\n }\n \n ]\n}" # Prepare URL for 'Fillable PDF' API request url = "{}/pdf/edit/add".format(BASE_URL) # Execute request and get response as JSON response =, data=payload, headers={"x-api-key": API_KEY, 'Content-Type': 'application/json'}) if (response.status_code == 200): json = response.json() if json["error"] == False: # Get URL of result file resultFileUrl = json["url"] # Download result file r = requests.get(resultFileUrl, stream=True) if (r.status_code == 200): with open(destinationFile, 'wb') as file: for chunk in r: file.write(chunk) print(f"Result file saved as \"{destinationFile}\" file.") else: print(f"Request error: {response.status_code} {response.reason}") else: # Show service reported error print(json["message"]) else: print(f"Request error: {response.status_code} {response.reason}") if __name__ == '__main__': main()



Get 60 Day Free Trial

See also:


Get Your API Key

See also: