Как сделать скриншот сайта через API
Если вам нужен скриншот веб-страницы в коде — cron, бот, отчёт, превью ссылки — проще вызвать готовый API, чем поднимать headless Chrome на своём сервере. ScreenshotOne.ru отдаёт PNG, JPEG или PDF по одному GET-запросу.
Минимальный запрос
Базовый endpoint:
GET https://screenshotone.ru/api/v1/screenshot?url=https://example.com
Ответ — бинарный файл изображения. Параметр url обязателен и должен быть закодирован (percent-encoding).
Пример cURL
Скриншот всей страницы в PNG:
curl -G "https://screenshotone.ru/api/v1/screenshot" \
--data-urlencode "url=https://example.com" \
--data-urlencode "full_page=true" \
--data-urlencode "format=png" \
-o screenshot.png
Полезные параметры
full_page=true— скриншот всей страницы, не только видимой области (включён по умолчанию).format=png|jpeg|pdf— формат результата.width,height— размер viewport в пикселях.dpi=100|150|300|600— плотность для PNG/JPEG.delay— пауза в секундах после загрузки (удобно для SPA).
Скриншот сайта в PDF
curl -G "https://screenshotone.ru/api/v1/screenshot" \
--data-urlencode "url=https://example.com" \
--data-urlencode "format=pdf" \
-o page.pdf
Лимиты и ограничения
На этапе MVP: 1 скриншот в минуту с одного IP, без API-ключа. Сервис рассчитан на публичные страницы; капчу, Cloudflare challenge и anti-bot мы не обходим.
Что дальше
Полный справочник параметров и коды ошибок — в документации API. Сравнение с самостоятельным Puppeteer — в статье API vs Puppeteer. Попробовать без кода можно на главной странице.