Надёжность
Тарифы и ограничения API
FREE подходит для асинхронной работы. PAID добавляет ожидание статуса с timeoutSeconds от 1 до 60 и синхронный /take.
Возможности FREE и PAID
| Возможность | FREE | PAID |
|---|---|---|
| Скриншотов в месяц | 100 | 2000 |
| Создание и проверка асинхронной задачи | Да | Да |
| timeoutSeconds от 1 до 60 | Нет | Да |
| GET /take и POST /take | Нет | Да |
| URL в одном пакете | До 5 | До 100 |
| Активные мониторы с visual diff | До 3 | До 20 |
| Capture profiles | Нет | До 20 |
| S3-compatible destinations | Нет | До 3 |
| Telegram-чат аккаунта | 1 | 1 |
| Chromium | Да | Да |
| Firefox | Нет | Нет |
| WebKit | Нет | Нет |
В разделе «Тарифы» указаны возможности планов. Стоимость PAID обсуждается при подключении; оставить заявку можно в личном кабинете.
Месячная квота
Одна принятая задача расходует одну единицу квоты. Shotly резервирует её при создании задачи; последующая ошибка воркера не восстанавливает квоту автоматически.
В пакетном задании каждый принятый элемент считается отдельной задачей. Пакет из пяти URL расходует пять единиц квоты. Visual diff, уведомление и доставка уже созданного результата в S3 не расходуют дополнительные единицы.
Проверка статуса квоту не расходует. Повтор POST /take с тем же действительным Idempotency-Key использует исходную задачу и не резервирует квоту снова. Новый запрос или повтор без ключа может создать ещё одну задачу.
Не смешивайте ограничения
Месячная квота считает созданные задачи. Ограничение частоты задаёт число запросов за период. Ограничение синхронных ожиданий задаёт число одновременных ожиданий. Свободная квота не отменяет два других ограничения.
Ожидание статуса
timeoutSeconds=0 доступен на обоих тарифах и сразу возвращает JSON со статусом. Значения от 1 до 60 доступны на PAID: запрос ждёт завершения задачи или истечения заданного времени и возвращает JSON с HTTP 200.
Это ожидание в асинхронном API, а не получение изображения через /take.
Синхронный API
GET /take и POST /take доступны только на PAID. Сервер ожидает результат до 70 секунд, но задача может выполняться дольше. В этом случае API возвращает HTTP 202.
Число одновременных синхронных ожиданий ограничено отдельно от месячной квоты и частоты запросов. Если достигнут предел одновременных ожиданий, API возвращает 429 SYNC_WAIT_CAPACITY_EXCEEDED.
Частота запросов
Shotly отдельно ограничивает частоту создания задач и проверки статусов. При превышении текущего лимита API возвращает HTTP 429. Делайте паузу, ограничивайте число повторов и не отправляйте запросы в непрерывном цикле.
Ограничения частоты могут меняться и не являются фиксированным условием тарифа. Не связывайте клиентскую логику с постоянным числом запросов в минуту.
Доступность браузеров
Сейчас публичный API принимает только Chromium. Firefox и WebKit временно отключены. Доступность браузеров может меняться независимо от тарифа.