API скриншотов — Playwright в облаке
Снимок любой страницы: viewport, full-page, ожидание селектора, PDF. Один HTTP-запрос, PNG или Base64 в ответ. УноАПИ.ru.
Screenshot-as-a-Service на Playwright Chromium. Передаёте URL — получаете PNG или Base64. Поддерживаем full-page, произвольный viewport, ожидание селектора, cookie и пользовательские заголовки.
Возможности
Полный контроль рендера
viewport (ширина, высота, DPR), full-page, ожидание load/domcontentloaded/networkidle, ожидание CSS-селектора.
Форматы вывода
PNG, JPEG, PDF. Возврат как бинарный поток или Base64 — удобно передавать агентам и в клиентский JS.
Сессии и авторизация
Прокидывайте cookie, Authorization-заголовки, заголовки для обхода cookie-баннеров. Работает с личными кабинетами.
Пример запроса
curl -X POST "https://proxy.unoapi.ru/v1/browser/screenshot" \
-H "Authorization: Bearer sk_..." \
-H "Content-Type: application/json" \
-d '{"url": "https://example.com", "options": {"type": "png", "fullPage": true}}' \
-o screenshot.pngconst res = await fetch('https://proxy.unoapi.ru/v1/browser/screenshot', {
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.UNOAPI_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
url: 'https://example.com',
options: { type: 'png', fullPage: true },
}),
});
const buffer = await res.arrayBuffer();import httpx, os
r = httpx.post(
"https://proxy.unoapi.ru/v1/browser/screenshot",
json={"url": "https://example.com", "options": {"type": "png", "fullPage": True}},
headers={"Authorization": f"Bearer {os.environ['UNOAPI_KEY']}"},
)
open("screenshot.png", "wb").write(r.content)Сравнение
| Параметр | УноАПИ.ru | Международные сервисы |
|---|---|---|
| Движок | Playwright Chromium | Playwright / Puppeteer |
| Full-page | ✓ | ✓ |
| Ожидание селектора | ✓ Параметр waitFor | ✓ |
| ✓ | Иногда | |
| Cookie / headers | ✓ | ✓ |
| Оплата | Рубли, по факту | USD, подписка |
Часто задаваемые вопросы
Какой рендер-движок используется?
Playwright с Chromium. Поддерживаем все Playwright-фичи рендера, включая network idle и ожидание пользовательского селектора.
Поддерживается ли full-page скриншот?
Да, `options.fullPage: true` в теле POST-запроса. Chromium прокручивает всю страницу и склеивает итоговое изображение.
Можно ли дождаться селектора перед снимком?
Да, `gotoOptions.waitUntil: "networkidle"` (или любой Playwright-совместимый режим), плюс отдельно `waitForSelector` в теле запроса для CSS-селектора. Полезно для страниц с отложенной отрисовкой.
В каком формате возвращается скриншот?
По умолчанию — PNG бинарным потоком. В `options.type` можно указать `"jpeg"` или `"pdf"`; также поддерживается Base64-возврат через `options.encoding: "base64"` — удобно для передачи в AI-агенты.
Можно ли передать cookie или HTTP-заголовки?
Да. В теле POST-запроса передаёте `cookies` (массив `{ name, value, domain }`) и `extraHTTPHeaders` (объект). Используется, например, для скриншотов страниц, требующих авторизации.
Сколько стоит один скриншот?
Актуальная цена — на странице /pricing. Есть ежемесячные бесплатные кредиты.
Как использовать из AI-агента?
Через MCP-сервер УноАПИ.ru — Claude и ChatGPT получают инструмент unoapi_screenshot. Удобно для задач вида «сделай скриншот страницы и опиши, что на ней».
Готовы попробовать?
Бесплатные месячные кредиты — без карты, без подписки.