API 참조

API 개요

Base URL, 인증, 오류 형식 및 전체 오류 코드 참조

Base URL

https://openapi.thunderbit.com/openapi/v1

인증

모든 엔드포인트는 HTTP Bearer(API Key)를 사용합니다:

Authorization: Bearer YOUR_API_KEY

Thunderbit 대시보드에서 키를 발급받으세요. 키는 폐기 가능하며 환경별로 분리됩니다 —— 운영 키를 클라이언트 코드에 절대 포함시키지 마세요.

오류 응답 구조

모든 오류 응답은 동일한 envelope를 공유합니다. 기본값은 LEGACY 형식입니다:

{
  "success": false,
  "error": {
    "code":    "INVALID_URL",
    "status":  400,
    "message": "The provided URL is not valid",
    "details": null
  }
}

Note: 이전에 GOOGLE_RPC 대체 엔벨로프가 문서화되어 있었고, codestatus의 타입이 서로 바뀌었습니다 (string ↔ number). 이 모드는 사용을 권장하지 않으며 deprecated 입니다 — 강타입 클라이언트(OpenAPI codegen, Pydantic, serde, encoding/json)는 역직렬화에 실패합니다. 위 LEGACY 형식을 사용하세요. 향후 업데이트에서도 code: string, status: number 가 유지됩니다. details 필드는 구조화된 컨텍스트를 담을 수 있습니다 —— 예를 들어 INVALID_PARAMETER 시에는 { field: message } 형식의 필드 단위 검증 오류가 반환됩니다.

표준 오류 코드

HTTPCode의미
400INVALID_URLURL 형식이 잘못됨
400INVALID_SCHEMAJSON Schema가 잘못됨
400INVALID_PARAMETER하나 이상의 요청 파라미터 검증 실패
400SCHEMA_OR_PROMPT_REQUIRED추출 시 schema(또는 prompt) 필수
400SCHEMA_AND_PROMPT_EXCLUSIVEschemaprompt는 동시에 제공할 수 없음
400BATCH_SIZE_EXCEEDED배치 요청이 100 URL 상한을 초과
400MALFORMED_REQUEST_BODY요청 본문이 유효한 JSON이 아님
401API_KEY_MISSINGAuthorization 헤더 누락
401API_KEY_INVALID_FORMATAPI Key 형식이 잘못됨
401API_KEY_NOT_FOUND시스템에서 API Key를 찾을 수 없음
401API_KEY_REVOKEDAPI Key가 폐기됨
401API_KEY_DISABLEDAPI Key가 비활성화됨
401API_KEY_EXPIREDAPI Key가 만료됨
401INVALID_API_KEY(사용 중단, 위의 구체적 API_KEY_* 코드 사용 권장)
402INSUFFICIENT_CREDITS계정 크레딧 부족
404JOB_NOT_FOUND배치 작업을 찾을 수 없음
404RESOURCE_NOT_FOUND리소스를 찾을 수 없음
408REQUEST_TIMEOUTAPI 요청 타임아웃
408SCRAPE_TIMEOUT대상 페이지 응답 타임아웃
422SCRAPE_SSL_ERROR대상 사이트의 SSL/TLS 문제
422SCRAPE_DNS_RESOLUTION_ERROR대상 호스트명 해석 실패
422SCRAPE_SITE_ERROR대상 사이트가 오류 반환
422SCRAPE_EMPTY_CONTENT대상 페이지가 빈 콘텐츠 반환
422SCRAPE_CONTENT_TOO_LARGE대상 페이지가 크기 한도 초과
422SCRAPE_TARGET_FORBIDDEN대상 사이트 접근 거부(403)
422SCRAPE_TARGET_NOT_FOUND대상 URL이 404 반환
422SCRAPE_UNSUPPORTED_FILE지원하지 않는 파일 형식
429RATE_LIMIT_EXCEEDED계정 속도 제한 발동
429SCRAPE_TARGET_RATE_LIMITED대상 사이트가 요청에 속도 제한 적용
500INTERNAL_ERROR일반 내부 오류
500DISTILL_FAILED디스틸 파이프라인 실패
500EXTRACT_FAILED추출 파이프라인 실패
500PIPELINE_ERROR파이프라인 단계 실패
500AI_EXTRACTION_FAILEDAI 추출 단계 실패
500MARKDOWN_CONVERSION_FAILEDHTML → Markdown 변환 실패
502SCRAPE_ALL_PROVIDERS_FAILED모든 스크레이핑 provider 실패
502UPSTREAM_BAD_GATEWAY업스트림이 잘못된 응답 반환
503SCRAPE_PROVIDER_UNAVAILABLE스크레이핑 provider 사용 불가
503AI_SERVICE_UNAVAILABLEAI 서비스 사용 불가
503DOWNSTREAM_SERVICE_UNAVAILABLE다운스트림 서비스 일시 사용 불가
504UPSTREAM_TIMEOUT업스트림 게이트웨이 타임아웃
504AI_TIMEOUTAI 서비스 호출 타임아웃

재시도 전략 참조

오류 분류재시도?방법
4xx(입력 오류)❌ 불가요청 수정 후 재시도
401(인증)❌ 불가API Key 재발급 / 교체
402(크레딧)❌ 불가충전
408 / 504(타임아웃)✅ 가능지수 백오프, 최대 3회
429(속도 제한)✅ 가능X-RateLimit-Reset까지 대기 —— 속도 제한 참고
5xx(서버)✅ 가능지수 백오프, 최대 3회
SCRAPE_TARGET_*(대상 사이트)⚠️ 경우에 따라renderMode를 올려 1회 재시도