POST https://api.acedata.cloud/webextrator/extract
WebExtrator 스마트 추출 API는 URL을 유형화된 구조화 결과로 변환합니다 —— 기사, 상품, 레시피, 비디오, 토론, 채용 등, 동시에 정리된 Markdown 및 순수 텍스트를 제공합니다. 원시 HTML이 아닌 “깨끗한 구조화 데이터”가 필요할 때 사용하는 인터페이스입니다.
기본적으로는 세 단계의 파이프라인으로 구성되어 있습니다:
- schema.org JSON-LD 매퍼 —— 결정적이며, LLM 비용이 없습니다. Wikipedia / BestBuy / AllRecipes / YouTube / 대부분의 뉴스 / 대부분의 상품 페이지를 커버합니다.
- 유형화 LLM 추출 —— schema.org가 미치지 못할 때만 트리거됩니다. 페이지 유형에 따라 Schema를 선택하고, Zod로 엄격하게 검증합니다.
- Readability + Markdown 보완 —— 항상 실행되며, 앞의 두 단계에서 채워지지 않은 최상위 필드를 보완합니다.
신청 절차
WebExtrator 서비스 페이지를 사용하려면, 먼저 Ace Data Cloud 콘솔에서 API Token을 받아두세요.
로그인 또는 등록이 되어 있지 않으면 자동으로 로그인 페이지로 리디렉션되어 등록 및 로그인을 초대합니다. 완료 후 현재 페이지로 자동으로 돌아옵니다.
하나의 API Token으로 플랫폼의 모든 서비스를 호출할 수 있으며, 각 서비스마다 별도로 신청할 필요가 없습니다. 처음 신청 시 무료 할당량이 제공되어 무료로 체험할 수 있습니다; 할당량이 부족할 경우 콘솔에서 일반 잔액을 충전할 수 있습니다.
📘 전체 문서: 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 (최종 URL에 따라 절대적으로 해석됨).
LLM 유형화 스키마
enable_llm: true 그리고 schema.org에 primary가 없을 때, 추출기는 URL 휴리스틱
(또는 expected_type 힌트)에 따라 아래 중 하나의 Zod 스키마 검증 모델 출력을 선택합니다:
LLM 성공 시 최상위 필드에 “last-resort”로 다시 채워집니다:
article→description/byline/publishedAt/languageproduct→descriptiondiscussion→description(= body의 처음 280자)/byline(= author)/publishedAt(= postedAt)recipe→description/byline(= author)video→description/byline(= channel)/publishedAt(= uploadDate)job→description/byline(= company)/publishedAt(= datePosted)
캐시
동일한 요청은 동일한 Redis 키로 해시됩니다:webextrator:cache:extract:<sha256(canonical-json)>。캐시 키는 무시합니다 async、
bypass_cache、cache_ttl_seconds(이는 작동 스위치이며, 응답에 영향을 미치지 않습니다)。cookies /
headers 는 분리된 캐시로 저장됩니다.
캐시 적중 응답은
data.cached: true 및 data.cacheStoredAt: <unix-ms>를 포함합니다.
비동기 모드 및 콜백
async: true로 설정하면 비동기 모드로 전환됩니다 (또한 callback_url을 제공하면 자동으로 전환됩니다). 플랫폼은 즉시 반환합니다 (HTTP 200):
callback_url로 POST합니다 (구성된 경우). 또한 나중에 /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에 primary가 없을 때만 호출되므로 기본적으로 켜두는 것이 안전합니다.- 디버깅 시
rawSignals.hasJsonLd를 먼저 확인하세요. 만약true이지만structured.schemaOrg.primary가null이라면, 페이지가 우리가 매핑한 적이 없는@type을 사용한 것입니다 — 이슈를 제기하면 추가하겠습니다. structured.llmError는 정보성입니다. 요청은 여전히 성공적이며, 휴리스틱 결과도 여전히 반환됩니다.llmError.error를 확인하여 원인을 파악하세요 (타임아웃, JSON 파싱 실패, Zod 검증 실패).- 비기사 페이지의
links[]는 관련성 정렬을 하지 않습니다. “최대 100개 + 유효하지 않은 프로토콜 필터링”에 따라 최선을 다해 정리합니다. - 캐시 적중도 요금이 부과됩니다. 캐시는 지연 및 브라우저 풀 보호를 위해 존재하며, 비용 절감을 위한 것이 아닙니다.

