API
Скриншот страницы
Открывает страницу в настоящем браузере и возвращает её вид: ссылку на полноразмерный скриншот и текст страницы в markdown. Нужен, когда важно увидеть вёрстку, цвета и типографику — например «повтори дизайн как на этом сайте», — а не найти информацию.
https://srezai.ru/api/v1/fetchREST отдаёт ссылку, MCP — саму картинку
screenshotUrl (временная presigned-ссылка на PNG). Инструмент fetch_page в MCP дополнительно вкладывает сам скриншот картинкой в ответ — чтобы vision-модель (в том числе локальная) его увидела, ведь открыть ссылку она обычно не может.Когда использовать#
Инструмент отвечает на вопрос «как эта страница выглядит», а не«что написано в вебе по теме». Берите его, когда важен сам вид конкретной страницы:
- «Сделай лендинг в стиле вот этого сайта» — агент видит вёрстку, цвета, типографику и переносит их в свой код.
- Проверить, как реально отрисовалась страница (а не только её HTML).
- Снять текст со страницы, которую вы уже нашли, в чистом markdown — без парсинга HTML на своей стороне.
Если же нужно найти информацию по теме — это веб-поиск (и excerpts: true для текста топ-страниц), а для многошагового разбора — DeepResearch.
Пример запроса#
curl -X POST https://srezai.ru/api/v1/fetch \
-H "Content-Type: application/json" \
-H "Authorization: Bearer srz_live_ВАШ_КЛЮЧ" \
-d '{ "url": "https://exa.ai/blog" }'Параметры тела#
Тело запроса — JSON. Обязателен только адрес страницы.
urlstringrequiredПолный адрес страницы, схема http или https, порт 80 или 443. Адреса, ведущие во внутреннюю сеть (приватные IP, локальные имена), отклоняются с ошибкой 400 — см. ниже.
maxCharsnumberoptionalСколько символов текста вернуть в markdown: от 200 до 50000 (4000 по умолчанию). Поднимайте, когда нужен весь текст страницы, а не только начало: для RAG и длинной документации 4000 символов часто мало. Значения вне диапазона подгоняются к границе.
Ответ#
{
"url": "https://exa.ai/blog",
"title": "Exa | Blog",
"screenshotUrl": "https://s3.ru1.storage.beget.cloud/bucket/shots/ab12….png?X-Amz-…",
"markdown": "# Exa Blog\n\nThe latest from the team…",
"truncated": false,
"meta": {
"tookMs": 4820,
"bytes": 812344,
"totalChars": 3184
}
}Поля ответа#
urlstringoptionalНормализованный адрес, который был отрендерен.
titlestringoptionalЗаголовок страницы (из <title>/метаданных), может быть пустым.
screenshotUrlstring | nulloptionalВременная presigned-ссылка на полноразмерный PNG в хранилище. Действует ограниченное время (по умолчанию 1 час). null, если хранилище не настроено на сервере — тогда остаётся markdown.
markdownstringoptionalТекст страницы в markdown, очищенный от навигации, иконок и служебной разметки, обрезанный до maxChars. Точный контент для text-only обработки.
truncatedbooleanoptionaltrue, если текст не поместился в maxChars — у страницы есть продолжение. Сколько всего дала страница, видно в meta.totalChars: по нему решайте, с каким maxChars повторить запрос.
metaobjectoptionaltookMs — время рендера, bytes — размер полноразмерного PNG, totalChars — объём чистого текста страницы до обрезки.
Остаток лимита приходит в заголовках X-RateLimit-* — см. Лимиты и квоты. Вызов считается как один запрос к дневной квоте, наравне с поиском.
Через MCP: инструмент fetch_page#
Тот же функционал доступен ИИ-агенту как встроенный инструмент fetch_page через MCP-сервер — с теми же параметрами url и maxChars. Ключевое отличие от REST: MCP-ответ вкладывает сам скриншот картинкой (уменьшенный JPEG), а не только ссылку. Это сделано специально — vision-модель (в том числе локальная, вроде Qwen-VL или GLM) видит изображение прямо в контексте, а открыть screenshotUrl самостоятельно она обычно не может.
Ответ инструмента содержит два блока:
- image — уменьшенный до ~1024px JPEG-скриншот; его и «видит» модель.
- text — заголовок страницы, presigned-ссылка на полноразмерный PNG и текст в markdown. Если текст обрезан по
maxChars, туда же добавляется явная пометка с полным объёмом страницы — чтобы агент не принял начало за всю страницу.
Подключение сервера и общий список инструментов — на странице MCP-сервер.
Только публичные адреса
10.x, 192.168.x, 127.x, 169.254.x), нестандартные порты и локальные имена отклоняются с 400 и кодом ssrf_blocked.Только POST
POST. Запрос методом GET вернёт 405 Method Not Allowed.