pdfapi

Квоты и лимиты

У API два вида ограничений: квота — сколько страниц можно сделать за период, и лимит частоты — как часто можно отправлять запросы.

Тарифы#

ТарифСтраниц в месяцЧастотаИсточникиЦена
Free1001 в секунду, до 3 подрядHTML, с водяным знакомбесплатно
Premium10 00010 в секунду, до 30 подрядHTML, URL, Markdown, Office1 990 ₽ в месяц
Business100 00050 в секунду, до 150 подрядHTML, URL, Markdown, Office7 990 ₽ в месяц

Что считается страницей#

Страница готового PDF после рендера. Документ на сорок страниц стоит сорок единиц, которые вычитаются из доступного лимита, — и не важно, сделан он одним запросом или сорока. Запросы мы не считаем, считаем количество готовых страниц. Страницы списываются один раз при сохранении готового PDF. Сетевой таймаут не отменяет списание: повтор с тем же Idempotency-Key выдаёт сохранённый PDF без нового расхода в течение 24 часов. Если рендер или сохранение не удались, списания нет.

Период#

На платном тарифе период — месяц с даты оплаты: оплатили 11-го, страницы действуют до 11-го следующего месяца. На бесплатном — календарный месяц по UTC. В новом периоде счётчик начинается с нуля, остаток не переносится. При апгрейде тарифа остаток с прошлого периода тоже не переносится.

Когда кончится период, видно в ответе GET /v1/me — в поле period_end.

Квота#

Если страницы кончились или документ больше остатка, API отвечает 402 quota_exceeded, PDF не выдаётся и страницы не списываются. Обрезанных документов не существует: из 15 страниц при остатке 10 вы не получите первые 10.

Сколько осталось#

Каждый готовый PDF приходит с заголовками — отдельный запрос, чтобы посмотреть остаток, не нужен:

ЗаголовокЧто в нём
X-Pages-Renderedсколько страниц списано за этот документ
X-Quota-Limitлимит страниц периода
X-Quota-Usedиспользовано, включая этот документ
X-Quota-Remainingосталось

Без конвертации остаток может подсказать GET /v1/me. Готовая проверка для cron находится в руководстве Контроль квоты.

Лимит частоты#

Лимит считается на каждый ключ: на Premium это 10 запросов в секунду и до 30 подряд или разом. «До 30 подряд» значит, что пачку из 30 запросов можно отправить сразу, дальше лимит восстанавливается со скоростью, указанной в тарифе.

Слишком частые запросы получают 429 rate_limit_exceeded и заголовок Retry-After — через сколько секунд можно повторить. Библиотеки pdfapi ждут и повторяют автоматически. Как отправлять запросы подряд, впритык к лимиту, — в руководстве Пачка документов.

Пределы#

ЧтоПредел
Тело запроса5 МБ; если больше — вернёт 413 payload_too_large
Файл Office3,7 МБ: после base64 он вырастает на треть
Время рендера30 секунд; если дольше — вернёт 504 render_timeout
waitDelayдо 10 секунд

Картинки в HTML лучше давать ссылками, а не встраивать в base64, так вы экономите размер тела запроса.