Справочник API
API работает по HTTPS и принимает данные в формате JSON. Документ приходит в бинарном виде (PDF), ошибки — в JSON с кодом.
Адрес#
https://pdfapi.ru/apiАдреса методов начинаются с номера версии: /v1/…. Внутри версии мы ничего не удаляем и не меняем, только добавляем новые функции, поля и коды ошибок. Код, написанный под /v1, продолжит работать бесперебойно.
Авторизация#
Ключ из кабинета указывается в заголовке Authorization: Bearer pdf_live_… или X-API-Key. Подробнее — в Ключах API.
Методы#
| Метод | Что делает |
|---|---|
POST /v1/convert | HTML, URL, Markdown или документ Office в PDF |
GET /v1/me | тариф, остаток страниц и границы периода |
GET /health | работает ли сервис |
Ошибки#
Ответ с ошибкой можно увидеть в JSON с полем error, по которому стоит ориентироваться в коде. У большинства ошибок есть и message — текст на русском для журнала или аудита:
| HTTP | Код | Когда |
|---|---|---|
| 400 | invalid_request | нет source или содержимого, лишний или неверный параметр в options — имя поля в message |
| 400 | url_not_allowed | адрес без http(s) или ведёт во внутреннюю сеть |
| 401 | missing_api_key | нет заголовка Authorization: Bearer … и X-API-Key |
| 401 | invalid_api_key | ключ неверный или отозван |
| 402 | quota_exceeded | лимит исчерпан или документ больше остатка; страницы не списываются |
| 403 | email_not_verified | почта аккаунта не подтверждена |
| 403 | source_not_allowed | источник недоступен на тарифе: на Free — только HTML |
| 409 | idempotency_in_progress | ещё выполняется, повторите через Retry-After с тем же ключом |
| 409 | idempotency_conflict | тело запроса отличается от исходного |
| 410 | result_expired | новый рендер требует нового ключа |
| 413 | payload_too_large | вынесите картинки по ссылкам или уменьшите файл |
| 429 | rate_limit_exceeded | запросы чаще лимита тарифа; повторите через Retry-After секунд |
| 502 | render_failed | обычно дело в разметке или недоступной странице |
| 503 | unavailable | очередь заполнена или рендер перезапускается; повторите позже |
| 504 | render_timeout | документ слишком тяжёлый или страница грузится долго |
Спецификация OpenAPI#
Полное описание API в формате OpenAPI 3.1 — /openapi.json. Его можно импортировать в Postman или Insomnia и сгенерировать по нему клиент для любого языка.