POST https://api.acedata.cloud/webextrator/render
WebExtrator 웹페이지 렌더링 API는 헤드리스 Chromium 기반의 웹페이지 렌더링 서비스입니다. URL을 하나 제공하면,
완전히 렌더링된 HTML(JS로 주입된 콘텐츠 포함), 순수 텍스트, 페이지 제목 및 최종 URL을 반환합니다.
Render는 WebExtrator의 가장 하위 수준 인터페이스입니다. 구조화된 추출 결과(본문,
상품 가격, 레시피 재료 …)가 필요하다면
/webextrator/extract를 사용하세요 —— 이는 동일한 렌더링 기반
위에서 전체 타입화된 추출 파이프라인을 실행합니다.
신청 절차
WebExtrator 서비스 페이지를 사용하려면 먼저 Ace Data Cloud 콘솔에서 API Token을 발급받아 예비용으로 보관하세요.
아직 로그인하거나 가입하지 않았다면, 등록 및 로그인을 안내하는 로그인 페이지로 자동 이동하며, 완료 후 현재 페이지로 자동 반환됩니다.
하나의 API Token으로 플랫폼의 모든 서비스를 호출할 수 있으며, 서비스별로 별도 신청할 필요가 없습니다. 최초 신청 시 무료 할당량이 제공되어 무료로 체험할 수 있으며, 할당량이 부족할 경우 콘솔에서 공용 잔액을 충전할 수 있습니다.
📘 전체 문서: WebExtrator 서비스 페이지 →
인증
모든 WebExtrator 인터페이스는 표준 Bearer Token 인증을 사용합니다:요청 파라미터
플랫폼 계약은 일관되게 snake_case를 사용합니다. 내부 렌더링 서비스는 camelCase를 지원하지만, 외부 호출에서는 일률적으로 snake_case를 사용합니다.
Cookie 구조
동기 응답
비동기 응답
async=true(또는 callback_url 제공) 시 즉시 반환됩니다(HTTP 200):
callback_url로 POST 푸시되거나(구성된 경우), 또는
/webextrator/tasks를 통해 능동적으로 조회할 수 있습니다.
콜백 구조
플랫폼은 동기 모드와 완전히 동일한 envelope를callback_url로 POST하며,
Content-Type: application/json입니다. 임의의 2xx를 반환하면 확인된 것으로 간주되며, 5xx는
지수 백오프로 약 5분간 재시도됩니다.
오류 응답
오류 구조:
예시
cURL
Python (requests)
Node.js (fetch)
비동기 + 콜백
{ "success": true, "task_id": "...", "trace_id": "...", "started_at": 1777717800.123 }를 반환합니다;
작업이 완료되면 플랫폼이 전체 결과를 당신의 callback_url로 POST합니다.
캐시 강제 우회
팁과 주의사항
wait_until을 올바르게 선택하는 것이 중요합니다.networkidle이 가장 안정적이지만 가장 느립니다;domcontentloaded는 빠르지만 비동기로 삽입된 콘텐츠를 놓칠 수 있습니다;load는 전통적인 정적 페이지에 적합합니다.- 캐시 Key는
async를 무시합니다. 동일 URL의 동기 및 비동기 요청은 동일한 캐시 항목에 적중하며, 임의로 전환해도 무효화되지 않습니다. - 캐시 Key는
bypass_cache와cache_ttl_seconds를 무시합니다. 이 둘은 작업 스위치이며, 응답 내용에 영향을 주지 않습니다. cookies와headers는 캐시를 분리합니다. 이 둘을 사용자 지정하면 처음의 동일한 조합은 적중하지 못합니다.- 무거운 SPA는 기본 30초를 자주 초과합니다.
timeout: 60、wait_until: "domcontentloaded"、delay: 4를 권장하며,wait_for_selector등을 함께 사용하여 실제로 관심 있는 요소를 기다리세요. block_resources는 지연 시간을 줄이는 가장 빠른 방법입니다. 기본적으로 이미지 / 글꼴 / 미디어는 이미 차단됩니다; 추출이 CSS 레이아웃에 의존하지 않는다면stylesheet를 추가하면 더 빨라질 수 있습니다.

