PARSING API · ДЛЯ РАЗРАБОТЧИКОВ

Любая страница →
структурированные данные

Отправь URL — получи 80+ SEO-полей и сырой HTML одним JSON-объектом. Батчи на сотни тысяч страниц, вебхуки, обход защит — под капотом.

бесплатно · без регистрации · до 10 проверок в день
GET https://example-shop.ru/catalog/robot-x1 · сырой HTML
РАЗБИРАЕМ НА ЭЛЕМЕНТЫ
СОБИРАЕМ ОТВЕТ
response.result — 200 OK · 312 ms
// что возвращает API

И HTML, и SEO-параметры. Сразу.

Каждый URL разбирается в объект result: 80+ извлечённых полей плюс полный исходный код страницы. Ничего не нужно парсить повторно.

🧬 Сырой HTML html_raw

Полный исходник страницы в каждом ответе. Хочешь свою экстракцию — данные уже у тебя, без повторного похода на сайт. Плюс content_hash для дедупликации.

HTTP и редиректы 14

status_code · final_url · redirect_chain · https_enforced · has_hsts · cache_control · server_header…

Security-заголовки 4

has_csp · has_x_frame_options · has_x_content_type_options · has_x_robots_noindex

On-page SEO 15

title · description · h1/h2/h3_count · canonical · canonical_matches_url · is_indexed · robots_raw · lang…

OG / Twitter 6

og_title · og_description · og_image · og_type · twitter_card · twitter_title

Структурированные данные 8

json_ld_raw · json_ld_types · has_product_schema · has_breadcrumb_schema · has_faq_schema · microdata_raw…

Картинки и ссылки 6

images_total · images_missing_alt · images_without_dimensions · internal/external_links_count · nofollow_count

Контент 5

word_count · text_to_html_ratio · has_tables · lists_count · has_noscript_fallback

URL-структура 7

url_length · path_depth · has_cyrillic_url · has_query_params · trailing_slash · page_type…

Пагинация 3

is_paginated · rel_next · rel_prev

Soft-404 / SPA-детект 3

is_soft_404 · soft_404_patterns · is_suspicious_spa — отлавливаем заглушки и пустые SPA-шаблоны

Скорость 1+

ttfb_ms в basic · LCP / CLS и web-vitals в deep-режиме (браузерный рендеринг)

// эндпоинты

API в три вызова

Аутентификация — заголовок x-api-key. Кликни по эндпоинту для деталей.

POST/api/fetchбатч-сбор: от 1 URL до сотен тысяч
Принимает { urls: [...], mode, webhook_url, metadata } → мгновенно отвечает 202 { batch_id, accepted, rejected } и ставит задачи в очередь. Результаты прилетают батч-вебхуками на твой webhook_url (до 100 страниц на POST, с ретраями — ничего не теряется) или забираются поллингом. metadata возвращается как есть — удобно прокидывать свои ID.
POST/api/fetch-syncмгновенный ответ, без хранения
Stateless-режим «как прокси»: до 20 URL за запрос, результат inline в ответе, в базу ничего не пишем. Повторные попытки при сбое + честная классификация недоступности: busy / unreachable / server_error. Идеален для попробовать и для точечных проверок.
GET/api/jobs/:batch_idвыборка результатов с курсором
Поллинг-фоллбэк к вебхукам: ?status=done&since_id=<cursor>&limit=1000 → страницы с полным result и next_cursor.
GET/api/jobs/:batch_id/statsпрогресс батча одним запросом
{ pending, processing, done, failed, empty, redirect, skipped, total } — дешёвый счётчик для прогресс-баров.
POST/api/searchпоиск страниц-конкурентов
Поисковый слой: найти релевантные страницы/домены по запросу — вход для конкурентного анализа.
POST/api/reconразведка домена
Запускает recon по домену: sitemap, структура, оценка объёма — перед полным краулом.
quickstart.sh
# 1. Попробовать мгновенно — sync-режим (без хранения)
curl -X POST https://api.catalogos.ru/api/fetch-sync \
  -H "x-api-key: $KEY" -H "Content-Type: application/json" \
  -d '{"urls": ["https://example-shop.ru/catalog/robot-x1"]}'

# → { "stored": false, "results": [ { "status": "done", "ttfb_ms": 212,
#       "result": { ...80+ полей..., "html_raw": "<!DOCTYPE html>..." } } ] }

# 2. Боевой батч — async с вебхуком
curl -X POST https://api.catalogos.ru/api/fetch \
  -H "x-api-key: $KEY" -H "Content-Type: application/json" \
  -d '{"urls": [...165000 URL...], "mode": "basic",
       "webhook_url": "https://you.app/hooks/pages",
       "metadata": {"project": "robots"}}'

# → 202 { "batch_id": "5f1c…", "accepted": 164998, "rejected": [...] }
// под капотом

Просто API. Сложное — наша забота

Вы отправляете ссылки и получаете данные. Скорости, обходы защит и повторные попытки происходят сами — без настройки с вашей стороны.

🤝

Бережно к сайтам

Скорость сбора подстраивается под каждый сайт автоматически: быстро там, где можно, аккуратно там, где нельзя. Источники не банят наши запросы — данные приходят стабильно.

🌐

Масштаб без очередей

Тысячи сайтов собираются параллельно: медленный или капризный домен не тормозит остальные — ваш батч не стоит в очереди за чужим.

🎭

Защищённые сайты — тоже данные

Если страница собирается JavaScript'ом или закрыта анти-бот защитой, она автоматически уходит в реальный браузер. Для вас это тот же API и тот же формат ответа.

📦

Ни одна страница не теряется

Результаты доставляются с повторными попытками, зависшие задачи перезапускаются сами, а всё недоставленное можно добрать запросом в любой момент.

🔍

Честные статусы

Не просто «ошибка»: страница-заглушка, редирект, пустой шаблон, бинарный файл — каждый URL получает понятный статус, с которым можно работать дальше.

Срочно или дёшево

Нужен ответ прямо сейчас — синхронный режим. Нужны сотни тысяч страниц «к утру» — отложенный батч, он кратно дешевле.

// режимы работы

Три способа забрать страницу

Sync

Мгновенный

POST /api/fetch-sync
  • до 20 URL, ответ в том же запросе
  • без хранения на нашей стороне
  • повторные попытки при сбое
  • для проверок, интеграций, «попробовать»
Basic · основной

Батч-краул

POST /api/fetch · mode: basic
  • сотни тысяч URL одним батчем
  • 80+ полей + html_raw на страницу
  • вебхуки или поллинг с курсором
  • авто-fallback в браузер при анти-боте
Deep

Браузерный

POST /api/fetch · mode: deep
  • полный рендеринг страницы
  • web-vitals: LCP, CLS
  • JS-сайты и SPA
  • для глубокого аудита производительности
// стоимость

Платите за класс страницы

Открытый сайт стоит копейки, защищённый JS-сайт — дороже по ресурсам. Честная кредитная модель: страница списывает кредиты по своему классу, цена кредита падает с объёмом.

×1

Открытый HTML

статическая страница, отдаётся сразу

×5

JS-рендеринг

контент собирается браузером

×10

Спец-прокси

нужны выделенные / гео-адреса

×25

JS + защита

анти-бот + браузер вместе

План
Объём / мес
Цена кредита
Открытый HTML / 1000
PAYG
без обязательств
60 ₽ / 1000
60 ₽
Старт
от 100 тыс.
40 ₽ / 1000
40 ₽
Бизнес популярный
от 1 млн
22 ₽ / 1000
22 ₽
Энтерпрайз
от 10 млн
12 ₽ / 1000
12 ₽

Списываем кредиты только за успешно собранные страницы. Отложенный батч «к утру» — дешевле.

Не уверены, какой у вас класс?

Вставьте ссылку в поле вверху или напишите нам — прогоним пробу, определим класс и вернём точную цену за 1000 страниц под вашу задачу.

Получить расчёт →
// дополнительно

Поисковая выдача как данные

Не только страницы сайтов — отдаём структурированную выдачу Яндекса: органика, рекламные блоки и подсказки одним JSON. Дёшево за счёт отложенных запросов.

📢

Реклама конкурентов

Кто и с какими текстами рекламируется по запросу — рекламные блоки выдачи с позицией, заголовком и ссылкой.

📊

Позиции в органике

Мониторинг позиций сайта и конкурентов по ключам: title, сниппет, быстрые ссылки, миниатюра.

💡

Поисковые подсказки

Тысячи живых подсказок по маске — готовое семантическое ядро из реального спроса.