PrintFriendly

API Documentation

All API requests must be made over HTTPS and need api_key as a URL query parameter.

Example

curl https://api.printfriendly.com/v2/pdf/create?api_key=YOUR_API_KEY \
  -H 'Content-Type: application/x-www-form-urlencoded; charset=utf-8' \
  -d page_url=https://en.wikipedia.org/wiki/Eclipse

In case of success, you will get an http response with Status 200 and JSON info in the response body.

{"status":"success","file_url":"https://storage.printfriendly.com/data-production/pdf_1531957353_e94df5Letter.pdf"}

API Version

Current version of API is 2.0.

Major API version must be provided in URL as 'v' and number, ie. v1, v2, v3.

https://api.printfriendly.com/v2/pdf/create
https://api.printfriendly.com/v2/html/create

API Methods

MethodInputOutput
pdf / createURL / HTMLHTML
html / createURL / HTMLPDF

Parameters

You must provide page_url or html parameter. All others parameters are optional.

ParametersValue
page_urlURL of target page
htmlHTML content of target page
output_typeSet it to "attachment" to receive the PDF file as the output instead of JSON
css_urlURL for Custom CSS file
header_image_urlURL for Custom Header image
header_textText String

All examples below are provided for the "pdf/create" method and also work for the "html/create" method.

Example with page_url parameter

curl https://api.printfriendly.com/v2/pdf/create?api_key=YOUR_API_KEY \
  -H 'Content-Type: application/x-www-form-urlencoded; charset=utf-8' \
  -d page_url=https://test.test \
  -d css_url=https://my-site.com/pdf_style.css \
  -d header_text='My Custom Header'

HTML input

curl https://api.printfriendly.com/v2/pdf/create?api_key=YOUR_API_KEY \
  -H 'Content-Type: application/x-www-form-urlencoded; charset=utf-8' \
  -d html='<html><body><h1>Title</h1><p>Text text text text text text text text text</p></body></html>'

Errors

PrintFriendly uses conventional Status codes and JSON response to provide error details.

Status Codes

StatusDescription
200 OKEverything works fine.
400 Bad RequestError has occurred. See details in JSON.
401 Unauthorized401 Unauthorized
404 Not Found404 Not Found
429 Too Many Requests429 Too Many Requests

All not success (not Status 200) responses have JSON body with the error details and contain the error type and message.

Error Types

TypeDescription
parameters-validationParameters validation failed.
banned-domainThis domain is temporary banned.
failed-parsedCan't parse page. We can't determine content of this page.
fetch-errorCan't fetch page. Check that URL is accessible and try again.
high-loadParameters validation failed.
invalid-file-extOnly webpages are supported. It's a PDF/TXT file or Image (JPG, PNG, GIF).
large-pageTarget page is over 2Mb. Big pages are not supported.
security-platformSecurity platform blocks us from fetching this page.
timeoutTimeout exceeded. Engine can't process the page during 30 secs. Please try again later.
catch-allUnexpected error. Please try again later.

Example

curl https://api.printfriendly.com/v2/pdf/create?api_key=YOUR_API_KEY \
  -H 'Content-Type: application/x-www-form-urlencoded; charset=utf-8' \
  -d page_url=https://test.test

HTML input

# HTTP RESPONSE
# HEADERS (some of headers were ommited)
Content-Type: application/json; charset=utf-8
Status: 400 Bad Request

# BODY (JSON)
{"status":"failed","message":"Print technology unable to download or parse content"}

Quotas

Each API plan has a monthly quota of PDF/HTML/text generations. Usage resets at the start of every billing period. When you exceed your quota, subsequent requests return 401 Unauthorized with API Limit Exceeded.