Документация API
Есть вопрос? Свяжитесь с нами.
Все запросы к API должны выполняться через HTTPS и требуют api_key в качестве параметра запроса URL.
Пример
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
В случае успеха, вы получите http-ответ с кодом состояния 200 и JSON-данными в теле ответа.
{"status":"success","file_url":"https://api.printfriendly.com/downloads/pdf_1531957353_e94df5Letter.pdf"}
Версия API
Текущая версия API — 2.0.
Основная версия API должна быть указана в URL как 'v' и номер, например v1, v2, v3.
Пример
https://api.printfriendly.com/v2/pdf/create
https://api.printfriendly.com/v2/html/create
Методы API
Метод | Ввод | Вывод |
|---|---|---|
PDF / создать | URL / HTML | HTML |
html / создать | URL / HTML |
Параметры
Вы должны предоставить параметр page_url или html. Все остальные параметры являются необязательными.
Параметры | Значение |
|---|---|
URL страницы | URL целевой страницы |
HTML | HTML-содержимое целевой страницы |
Тип вывода | Установите значение «attachment», чтобы получить PDF-файл в качестве результата вместо JSON |
css_url | URL для пользовательского файла CSS |
header_image_url | URL для пользовательского изображения заголовка |
Текст заголовка | Текстовая строка |
Все приведённые ниже примеры предоставлены для метода "pdf/create" и также работают для метода "html/create".
Пример с параметром page_url
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 ввод
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>'
Ошибки
PrintFriendly использует стандартные коды статуса и ответы JSON для предоставления информации об ошибках.
Коды состояния
Статус | Описание |
|---|---|
200 ОК | Всё работает хорошо. |
400 Неверный запрос | Произошла ошибка. См. подробности в JSON. |
401 Несанкционированно | 401 Несанкционированно |
404 Не найдено | 404 Не найдено |
429 Слишком много запросов | 429 Слишком много запросов |
Все не успешные (не статус 200) ответы содержат JSON тело с деталями ошибки и включают тип ошибки и сообщение.
Типы ошибок
Тип | Описание |
|---|---|
Проверка параметров | Проверка параметров не удалась. |
Запрещённый домен | Этот домен временно заблокирован. |
Ошибка анализа | Не удается разобрать страницу. Мы не можем определить содержимое этой страницы. |
Ошибка извлечения | Не удалось загрузить страницу. Убедитесь, что URL доступен, и повторите попытку. |
высокая нагрузка | Проверка параметров не удалась. |
Неверное расширение файла | Поддерживаются только веб-страницы. Это PDF/TXT файл или изображение (JPG, PNG, GIF). |
большая страница | Целевая страница превышает 2 МБ. Большие страницы не поддерживаются. |
платформа безопасности | Платформа безопасности блокирует доступ к этой странице. |
тайм-аут | Время ожидания истекло. Двигатель не может обработать страницу за 30 секунд. Пожалуйста, попробуйте позже. |
всеобъемлющий | Непредвиденная ошибка. Пожалуйста, повторите попытку позже. |
Пример
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 ввод
# 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"}
Ограничение скорости запросов
У API есть ограничение — 60 запросов в минуту. Если вы превысите это ограничение, вы получите ответ со статусом: 429 Слишком много запросов.
Заголовок | Описание |
|---|---|
Предел скорости-X | Общее ограничение запросов на текущий период. |
X-Оставшийся лимит | Оставшийся запрос на текущий период. |
Сбросить X-RateLimit | Количество секунд до конца текущего периода. |
Пример с параметром page_url
# HEADERS (some of headers were ommited)
Status: 429 Too Many Requests
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 0
X-RateLimit-Reset: 20
# BODY (JSON)Empty