Форматы и варианты
webp, avif, jpeg, png. До 8 вариантов за запрос, ресайз cover / contain / fill, удаление EXIF.
Загрузите изображение — оптимизированные варианты в webp, avif, jpeg или png появятся сразу в вашем бакете S3 или R2. Оригинал нужен только для обработки и у нас не остаётся.
Мы берём деньги за обработку — и только за неё. Результаты пишутся в ваш S3 или R2: за хранение и трафик вы платите своему провайдеру по своим тарифам, а не нам сверху. И не зависите от нашего CDN.
Не храним оригиналы
Оригинал используется для обработки и удаляется по умолчанию.
Шифрование кредов
Envelope-шифрование ключей хранилища; они не попадают в логи.
Подписанные ссылки
Для приватных бакетов — временные подписанные URL по запросу.
Идемпотентность, подписанные вебхуки, дедупликация, честные коды ошибок — то, что обычно приходится дописывать самому.
webp, avif, jpeg, png. До 8 вариантов за запрос, ресайз cover / contain / fill, удаление EXIF.
В ответ — 202 и jobId, обработка идёт в фоне на Sharp. Статус узнаёте опросом или вебхуком.
HMAC-SHA256 с timestamp и защитой от replay — знайте о готовности без постоянного опроса.
Повтор с тем же ключом безопасен. Одинаковые байты не обрабатываются дважды и не списывают квоту.
Ключи imgk_… с ресурсными и операционными скоупами и собственным лимитом запросов на каждый.
Креды хранилища шифруются и никогда не возвращаются в ответах или логах. Подойдёт любой S3-совместимый бакет.
Три шага — и результат уже лежит в вашем бакете.
S3 или R2. Ключи доступа шифруются, кнопка «Проверить» подтверждает доступ пробной записью.
imgk_… с нужными скоупами и хранилищем по умолчанию. Секрет показывается один раз.
POST /v1/uploads — варианты появляются в вашем бакете. О готовности сообщит вебхук.
Отправьте файл и параметры обработки — сервис примет их и вернёт jobId. Варианты появятся в вашем бакете, а о готовности сообщит вебхук или опрос /v1/jobs/:id.
Контракт — обычный HTTP: подойдёт любой язык и любой HTTP-клиент.
curl -X POST https://api.images.digitalextent.net/v1/uploads \
-H "Authorization: Bearer $IMAGES_API_KEY" \
-F file=@photo.png \
-F 'params={"format":"webp","variants":[
{"name":"thumb","width":320,"height":320,"strategy":"cover"},
{"name":"medium","width":1024}
]}'{
"jobId": "d4f1…",
"uploadId": "8a17…",
"state": "queued",
"deduplicated": false
}Free — не триал: 100 обработок каждый месяц, карта не нужна. Платите, только когда перерастёте лимит.
| Тариф | Цена / мес | Загрузок / мес | Форматы | Вариантов | Макс. файл | Вебхуков |
|---|---|---|---|---|---|---|
| Free | $0 | 100 | webp | 2 | 1 МиБ | — |
| Starter | $5 | 25 000 | webp · jpeg · png | 3 | 10 МиБ | 2 |
| Pro Популярный | $29 | 50 000 | webp · jpeg · png · avif | 5 | 25 МиБ | 5 |
| Scale | $149 | 250 000 | webp · jpeg · png · avif | 8 | 50 МиБ | 20 |
| Enterprise | по договору | по договору | webp · jpeg · png · avif | 10 | 50 МиБ | custom |
Абсолютные потолки для всех тарифов: файл ≤ 50 МиБ, изображение ≤ 40 Мп, до 10 вариантов и стороны ≤ 10 000 px за запрос.
Подключите бакет, выпустите ключ — первый запрос уйдёт через пару минут. 100 обработок каждый месяц — бесплатно.