> ## 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 | Запит не вдалося виконати через помилку на сервері.                               |
