POST https://api.acedata.cloud/webextrator/extract
WebExtrator Інтелектуальний API перетворює URL на типізовані структуровані результати — статті, товари, рецепти, відео, обговорення, вакансії тощо, одночасно надаючи очищений Markdown та чистий текст. Коли вам потрібні “чисті структуровані дані”, а не сирий HTML, це інтерфейс, який слід використовувати.
В основі лежить трирівнева система:
- schema.org JSON-LD мапер — детермінований, нульова вартість LLM. Охоплює Wikipedia / BestBuy / AllRecipes / YouTube / більшість новин / більшість товарних сторінок.
- Типізоване LLM витягування — спрацьовує лише тоді, коли schema.org не спрацьовує. Вибір схеми за типом сторінки, строгий контроль Zod.
- Readability + Markdown підстрахування — завжди працює, заповнюючи верхні поля, які не були заповнені першими двома рівнями.
Процес подачі заявки
Щоб використовувати сторінку послуг WebExtrator, спочатку перейдіть до консолі Ace Data Cloud для отримання вашого API токена, залиште його на випадок потреби.
Якщо ви ще не увійшли або не зареєструвалися, вас автоматично перенаправлять на сторінку входу, запрошуючи вас зареєструватися та увійти, після чого ви автоматично повернетеся на цю сторінку.
Один API токен дозволяє викликати всі послуги платформи, не потрібно окремо подавати заявку на кожну послугу. Перша заявка надає безкоштовний ліміт, ви можете безкоштовно випробувати; при недостатньому ліміті ви можете поповнити загальний баланс на консолі.
📘 Повна документація: Сторінка послуг WebExtrator →
Аутентифікація
Параметри запиту
Extract приймає всі Render API параметри (url, user_agent, timeout, wait_until, delay, wait_for_selector,
block_resources, headers, cookies, callback_url, bypass_cache,
cache_ttl_seconds, async), плюс два спеціальних поля Extract:
Коли сторінка має schema.org JSON-LD, enable_llm не діє — детермінований мапер безпосередньо видає результати,
ніколи не витрачаючи виклик LLM. Ви безкоштовно отримуєте типізовані результати.
Синхронна відповідь
Верхні поля
Підполя data.structured
Покриття мапера schema.org
Сортовано за пріоритетом (якщо спрацьовує, то якstructured.schemaOrg.primary):
Обробка мапера:
- Контейнер
@graph(рекурсивне розгортання); - Масив
@type(наприклад,["Recipe", "NewsArticle"]— обидва розпізнаються, пріоритет за першим); - Варіанти з префіксом
http://schema.org/; - Вкладені
OfferтаAggregateOffer(остання читаєlowPrice); - Відносні URL зображень (перетворюються на абсолютні за
finalUrl).
Типізований Schema LLM
Колиenable_llm: true і schema.org не має primary, парсер за URL використовує евристичний
(або підказку expected_type) для вибору одного з моделей валідації Zod:
Успішний LLM також заповнить “останній резерв” для верхніх полів:
article→description/byline/publishedAt/languageproduct→descriptiondiscussion→description(перші 280 символів тіла) /byline(автор) /publishedAt(дата публікації)recipe→description/byline(автор)video→description/byline(канал) /publishedAt(дата завантаження)job→description/byline(компанія) /publishedAt(дата публікації)
Кешування
Один і той же запит буде хешуватися в один і той же Redis Key:webextrator:cache:extract:<sha256(canonical-json)>. Кеш Key ігнорує async,
bypass_cache, cache_ttl_seconds (це перемикач, не впливає на відповідь). cookies /
headers будуть кешуватися в окремих відрах.
Відповіді, що потрапили в кеш, будуть містити
data.cached: true та data.cacheStoredAt: <unix-ms>.
Асинхронний режим та зворотний виклик
Встановітьasync: true, щоб увійти в асинхронний режим (надання callback_url також автоматично активує). Платформа негайно повертає (HTTP 200):
POST на ваш callback_url (якщо налаштовано). Також можна
потім активно запитати через /webextrator/tasks.
Приклад
1. Стаття Wikipedia (спрацьовує schema.org, LLM не потрібен)
data.structured.schemaOrg.primary:
2. Сторінка товару BestBuy (schema.org виявлено)
3. Сторінка рецепту AllRecipes (з харчуванням та етапами)
4. Сторінка обговорення HN (без JSON-LD —— потрібно увімкнути LLM)
data.structured.llm.data:
byline = "alice"、publishedAt = "..."。
5. Сторінка товару Amazon (Amazon без JSON-LD —— потрібно увімкнути LLM)
data.structured.llm.data(типізований product):
Python (requests)
Node.js (fetch)
Поради та підводні камені
- Якщо можливо, передайте
expected_type. Безкоштовна порада, пропустіть евристичне визначення, особливо корисно для сторінок, URL-адреси яких не входять до вбудованого списку. enable_llm: trueна сторінках з виявленим schema.org безкоштовно. LLM викликається лише тоді, коли schema.org не має первинного, тому за замовчуванням це також безпечно.- Під час налагодження спочатку перевірте
rawSignals.hasJsonLd. Якщо цеtrue, алеstructured.schemaOrg.primaryєnull, це означає, що сторінка використовує тип, який наш мапер ще не покрив — створіть issue, ми додамо. structured.llmErrorє інформаційним. Запит все ще успішний, евристичний результат все ще повертається. ПерегляньтеllmError.error, щоб визначити причину (тайм-аут, помилка парсингу JSON, помилка валідації Zod).- Посилання
links[]на не-сторінках статей не будуть відсортовані за релевантністю. Лише за “максимум 100 записів + фільтрація недійсних протоколів” намагайтеся очистити. - Кешування також підлягає оплаті. Кеш призначений для затримки та захисту пулу браузерів, а не для економії.

