Перейти к содержимому

Скриншоты

Создание скриншотов веб-страниц через headless Chromium. Запросы выполняются с российских серверов (российские IP-адреса, российский DNS) — сайты отдают локализованный контент, корректные цены в рублях и российскую выдачу. 100% совместимость с Browserless.io — drop-in замена для существующих интеграций.

МетодЭндпоинтОписание
POST/v1/browser/screenshotBrowserless-совместимый API (рекомендуется)
GET/v1/browser/screenshotПростой GET-запрос с query params

API возвращает бинарное изображение напрямую (не JSON с URL). Формат определяется параметром options.type (по умолчанию JPEG).

Окно терминала
# Базовый скриншот (возвращает PNG/JPEG)
curl -X POST "https://proxy.unoapi.ru/v1/browser/screenshot" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url": "https://example.com"}' \
--output screenshot.jpeg
# С параметрами
curl -X POST "https://proxy.unoapi.ru/v1/browser/screenshot" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com",
"options": {"type": "png", "fullPage": true},
"viewport": {"width": 1920, "height": 1080}
}' \
--output screenshot.png

Основные параметры запроса:

  • url — URL страницы для скриншота
  • html — или HTML-контент для рендеринга (вместо URL)
  • options.type — формат: jpeg (по умолчанию), png, webp
  • options.fullPage — скриншот всей страницы
  • options.quality — качество JPEG (0-100)
  • viewport.width / height — размер окна (по умолчанию 1280×800)
  • waitForSelector — ожидание CSS-селектора
  • gotoOptions.waitUntilload, domcontentloaded, networkidle

API возвращает информацию о целевой странице через заголовки:

  • X-Response-Code — HTTP-код ответа целевой страницы
  • X-Response-URL — финальный URL после редиректов
  • X-CacheHIT или MISS (для GET-запросов)

Вместо URL можно передать HTML-контент напрямую:

Окно терминала
# Скриншот HTML-контента (без URL)
curl -X POST "https://proxy.unoapi.ru/v1/browser/screenshot" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"html": "<html><body><h1>Hello World</h1></body></html>",
"viewport": {"width": 800, "height": 600}
}' \
--output screenshot.png

Для динамических страниц используйте waitForSelector:

Окно терминала
# Ожидание элемента перед скриншотом
curl -X POST "https://proxy.unoapi.ru/v1/browser/screenshot" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com",
"waitForSelector": {"selector": ".content-loaded", "timeout": 5000},
"gotoOptions": {"waitUntil": "networkidle"}
}' \
--output screenshot.jpeg

Параметр bestAttempt: true позволяет продолжить даже если селектор не найден.

// Генерация OG-изображения
const response = await fetch('https://proxy.unoapi.ru/v1/browser/screenshot', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
url: 'https://mysite.com/og?title=Hello+World',
viewport: { width: 1200, height: 630 },
options: { type: 'png' }
})
});
const image = await response.arrayBuffer();
// Используйте как og:image

API поддерживает все параметры Browserless.io:

  • Cookies и авторизацияcookies, authenticate
  • Внедрение скриптовaddScriptTag, addStyleTag
  • Блокировка ресурсовrejectResourceTypes, rejectRequestPattern
  • ЭмуляцияemulateMediaType (screen/print)
  • JavaScriptsetJavaScriptEnabled: false

API блокирует небезопасные URL: localhost, приватные IP, .local домены.

https://chrome.browserless.io/screenshot
https://proxy.unoapi.ru/v1/browser/screenshot

Формат запроса и ответа полностью совместим.