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/EclipseIn 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/createAPI Methods
| Method | Input | Output |
|---|---|---|
| pdf / create | URL / HTML | HTML |
| html / create | URL / HTML |
Parameters
You must provide page_url or html parameter. All others parameters are optional.
| Parameters | Value |
|---|---|
| page_url | URL of target page |
| html | HTML content of target page |
| output_type | Set it to "attachment" to receive the PDF file as the output instead of JSON |
| css_url | URL for Custom CSS file |
| header_image_url | URL for Custom Header image |
| header_text | Text 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
| Status | Description |
|---|---|
| 200 OK | Everything works fine. |
| 400 Bad Request | Error has occurred. See details in JSON. |
| 401 Unauthorized | 401 Unauthorized |
| 404 Not Found | 404 Not Found |
| 429 Too Many Requests | 429 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
| Type | Description |
|---|---|
| parameters-validation | Parameters validation failed. |
| banned-domain | This domain is temporary banned. |
| failed-parsed | Can't parse page. We can't determine content of this page. |
| fetch-error | Can't fetch page. Check that URL is accessible and try again. |
| high-load | Parameters validation failed. |
| invalid-file-ext | Only webpages are supported. It's a PDF/TXT file or Image (JPG, PNG, GIF). |
| large-page | Target page is over 2Mb. Big pages are not supported. |
| security-platform | Security platform blocks us from fetching this page. |
| timeout | Timeout exceeded. Engine can't process the page during 30 secs. Please try again later. |
| catch-all | Unexpected 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.testHTML 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.