POST
/extract
AI 기반 구조화된 추출

AI를 사용하여 웹 페이지에서 구조화된 데이터를 추출합니다. JSON 스키마로 원하는 출력 구조를 정의하면 AI가 지능적으로 정보를 추출합니다.

사용 사례:

  • 이커머스 페이지에서 상품 정보 추출
  • 채용 공고를 구조화된 형식으로 파싱
  • 연락처 정보 및 비즈니스 세부 정보 추출
  • 뉴스 기사를 구조화된 데이터로 변환
  • 가격표 및 사양 스크래핑

작동 방식:

  1. URL과 원하는 구조를 정의하는 JSON 스키마 제공
  2. AI가 페이지 콘텐츠 분석
  3. 스키마에 맞는 데이터 추출
  4. 검증된 JSON 출력 반환

스키마 정의:

JSON 스키마를 사용하여 원하는 출력 구조를 정의합니다:

  • 필드 유형: string, number, boolean, array, object
  • 필드 설명: AI가 무엇을 추출해야 하는지 이해하도록 도움
  • 필수 필드: 중요한 필드를 필수로 표시
  • 중첩 구조: 복잡한 중첩 데이터 지원

스키마 예시:

{
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "description": "상품명 또는 제목"
    },
    "price": {
      "type": "number",
      "description": "현재 가격 (USD)"
    },
    "availability": {
      "type": "boolean",
      "description": "상품 재고 여부"
    },
    "features": {
      "type": "array",
      "items": {"type": "string"},
      "description": "주요 상품 특징 목록"
    }
  },
  "required": ["title", "price"]
}

인증

YOUR_API_KEY
인증Bearer <token>

Thunderbit Dashboard에서 API 키를 가져오세요. 헤더 형식: Authorization: Bearer YOUR_API_KEY

위치: header

본문

application/json

TypeScript Definitions

Use the request body type in TypeScript.

url*string필수

데이터를 추출할 웹 페이지의 URL

예:https://thunderbit.com/playground
schemaobject

JSON Schema. 선택 사항 — 생략하면 Thunderbit가 페이지 내용에서 스키마를 자동으로 생성합니다.

예:
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "description": "Product name"
    },
    "price": {
      "type": "number",
      "description": "Product price"
    },
    "currency": {
      "type": "string",
      "description": "Currency unit"
    }
  },
  "required": [
    "name",
    "price"
  ]
}
timeoutnumber기본값:60000

요청 타임아웃(밀리초), 기본값 30000

허용 범위:5000 <= x <= 120000
예:
60000
waitFornumber기본값:0

페이지 로드 후 동적 콘텐츠가 렌더링되기를 기다리는 시간 (밀리초, 기본값: 0, 최대: 10000)

허용 범위:0 <= x <= 10000
예:
2000
renderModestring기본값:"none"

JavaScript 렌더링 모드. none = JS 렌더링 안 함 (기본값), basic = 표준 렌더링, full = 동적 콘텐츠 대기 시간 연장

허용 값"none" | "basic" | "full"
formatsany[]

출력 형식(Distill formats 배열과 동일한 구조).

예:
[
  "markdown",
  "links",
  "images"
]

응답

application/json

Success response

successboolean
예:
true
dataobject
하위 속성 표시
urlstring
예:https://thunderbit.com/playground
dataobject[]

Extracted structured data matching your schema, returned as an array where each item is a key-value map

예:
[
  {
    "name": "iPhone 15 Pro",
    "price": 999,
    "currency": "USD",
    "availability": true,
    "rating": 4.7,
    "features": [
      "A17 Pro chip with 6-core GPU",
      "Pro camera system with 48MP main camera",
      "Titanium design with textured matte glass"
    ]
  }
]
linksobject[]

페이지에서 추출된 링크.

하위 속성 표시
textstring

Visible link text.

예:Read more
hrefstring

Resolved absolute URL.

예:https://example.com/article
imagesobject[]

페이지에서 추출된 이미지.

하위 속성 표시
srcstring

Image source URL.

예:https://example.com/hero.png
altstring

Image alt text.

예:Hero banner
widthinteger

Image width in pixels.

heightinteger

Image height in pixels.

summarystring

페이지 요약(LLM 형식).

answerstring

question 형식으로 제공된 질문에 대한 답변.

highlightsstring[]

강조된 구절.

metadataobject
하위 속성 표시
titlestring

Page title extracted from tag or Open Graph

예:iPhone 15 Pro - Apple
descriptionstring

Meta description or excerpt

예:The ultimate iPhone with A17 Pro chip.
languagestring

Detected language code (ISO 639-1)

예:en
authorstring

Article author if available

예:
null
publishedDatestring

Publication date if available

예:
null
imagestring

Featured image URL from Open Graph or Twitter Card

예:https://example.com/product/iphone-15-pro.jpg
sourceURLstring

소스 URL

예:https://example.com/product/iphone-15-pro
statusCodeinteger

HTTP 상태 코드

예:
200
contentLengthinteger

Length of the markdown content in characters

예:
5000