> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cleariflow.com/llms.txt
> Use this file to discover all available pages before exploring further.

# API веб-скрейпинга

> API веб-скрейпинга Cleariflow обеспечивает извлечение страниц с выполненным JavaScript через современный RESTful JSON-интерфейс с SSRF-защитой и гибкими параметрами рендеринга.

## Начало работы

<Card title="Синхронный скрейпинг" icon="browser" href="scrape/scrape">
  Эндпоинт `scrape` запускает сессию браузера и возвращает отрендеренный HTML в одном запросе — идеально для интеграций с низкой задержкой.
</Card>

<Card title="Асинхронные задачи" icon="clock" href="scrape/jobs">
  Эндпоинты `jobs` ставят скрейпинг в очередь и позволяют опрашивать статус и результаты — идеально для высокой нагрузки или медленных страниц.
</Card>

### REST-архитектура

API веб-скрейпинга следует принципам REST с предсказуемыми URL, ориентированными на ресурсы, и стандартными HTTP-кодами состояния для бесшовной интеграции и обработки ошибок.

### Безопасность HTTPS

Вся коммуникация с API защищена TLS 1.2 или выше для обеспечения целостности и конфиденциальности данных.

### Версии API

API веб-скрейпинга поддерживает обратную совместимость через версионирование и сейчас работает в Version 1.

### Аутентификация

Ваш API-ключ — единственные учётные данные для доступа к API веб-скрейпинга. Каждый сервис Cleariflow требует отдельного ключа. Передавайте ключ в JSON-теле как `api_key`.

### Базовый URL

```
https://scrape.cleariflow.com
```

### Рендеринг страниц

Страницы рендерятся в реальном headless-браузере. JavaScript полностью выполняется перед возвратом контента. Встроенная SSRF-защита блокирует запросы к localhost и частным IP-диапазонам.

## Коды ответов и ошибок

При неудаче API возвращает структурированные JSON-ответы с конкретными кодами и описаниями для эффективного устранения неполадок.

| Код | Тип                   | Детали                                                                                      |
| --- | --------------------- | ------------------------------------------------------------------------------------------- |
| 200 | OK                    | Всё работало как ожидалось.                                                                 |
| 202 | Accepted              | Асинхронная задача успешно поставлена в очередь.                                            |
| 400 | Bad request           | Неверный запрос — недействительный URL, заблокированная цель или некорректное тело запроса. |
| 401 | Unauthorized          | Запрос не принят. Обычно из-за отсутствующего или неверного API-ключа.                      |
| 422 | Quota reached         | Запрос прерван из-за недостатка API-кредитов. (Бесплатные тарифы)                           |
| 429 | Too many requests     | Достигнут лимит запросов в секунду. На бесплатных тарифах — 1 запрос в секунду.             |
| 500 | Internal server error | Запрос не удалось выполнить из-за ошибки на сервере.                                        |
