webatla API
도메인 데이터베이스를 자체 스택으로 직접 가져오십시오. Bearer 키로 인증하고, 전체 데이터셋 또는 일부 슬라이스를 압축된 JSONL로 다운로드한 후 로컬에서 필터링하십시오. 행 단위 과금은 없습니다.
API의 작동 방식
이 API는 실시간 쿼리 엔드포인트가 아니라 파일 전체를 제공합니다. 전체 데이터셋 또는 단일 슬라이스를 다운로드한 후, 여러분의 컴퓨터에서 직접 분할하고 필터링합니다. 이를 통해 다운로드 속도는 빠르게 유지되며 쿼리 방식에는 제한이 없습니다.
1. 키 생성
계정에서 Bearer API 키를 발급하십시오. 필요하다면 IP 허용 목록으로 제한할 수 있습니다. 발급한 키는 Authorization 헤더로 전송하십시오.
2. 파일 다운로드
전체 내보내기를 받거나, TLD, TLD 접미사, 국가, 기술 중 하나를 기준으로 한 슬라이스를 받으십시오. 중단된 다운로드는 Range 요청으로 재개할 수 있습니다.
3. 로컬에서 필터링
zstd로 압축을 해제하고, jq나 데이터 웨어하우스, 또는 직접 작성한 코드로 쿼리하십시오. 슬라이스 하나당 차원은 하나이며, 나머지 차원의 교집합은 직접 처리해야 합니다.
인증
대부분의 엔드포인트는 Bearer API 키를 필요로 합니다. 공개 카탈로그, 프리뷰 및 샘플 엔드포인트는 인증이 필요하지 않습니다.
- 키 생성과 관리는 다음에서 가능합니다: 내 계정. 전체 키는 생성 시 한 번만 표시되므로 안전하게 보관하시기 바랍니다.
- 인증이 필요한 모든 요청에서 이를
Authorization: Bearer wbtl_…형식으로 전송하십시오. - 선택적으로 키를 IP 허용 목록으로 제한할 수 있습니다. 다른 주소의 요청에는 다음 상태 코드가 반환됩니다:
401. - 키는 키 단위로 속도 제한이 적용됩니다. 언제든지 키를 교체하거나 폐기할 수 있습니다.
엔드포인트
완전한 머신 판독형 사양은 다음 URL에서 확인할 수 있습니다: /api/v1/openapi.json (OpenAPI 3.1).
| 메서드 | 엔드포인트 | 인증 | 속도 제한 | 목적 |
|---|---|---|---|---|
| GET | /api/v1/datasets | 공개 | 60/min | 가격과 행 수를 포함해 게시된 데이터셋 목록을 반환합니다. |
| GET | /api/v1/preview?dataset={slug} | 공개 | 30/min | 전체 데이터셋의 무료 10,000행 샘플 |
| GET | /api/v1/sample/{scope}/{key}?dataset={slug} | 공개 | 30/min | 하나의 엔티티(TLD, 접미사, 국가, 기술)에 대한 무료 20행 샘플 |
| GET | /api/v1/me | Bearer | 200/min | 현재 키의 사용자 및 스코프 |
| GET | /api/v1/me/orders | Bearer | 200/min | 주문 내역과 상태 |
| GET | /api/v1/me/downloads | Bearer | 200/min | 다운로드 내역 (?limit= 최대 500건) |
| GET | /api/download/{slug} | Bearer | 240/min | 지정한 형식의 전체 데이터셋 내보내기 .jsonl.zst |
| GET | /api/download/{slug}/{scope}/{key} | Bearer | 240/min | 데이터셋의 스코프별 세그먼트 1개 |
scope 다음 중 하나입니다: tld, tld_suffix, country 또는 technology. 다운로드 엔드포인트를 사용하려면 해당 데이터셋에 대한 유효 기간 내의 유료 액세스 권한이 필요합니다.
빠른 시작
다운로드는 항상 파일 1개 단위입니다. 데이터셋 전체를 받거나, 먼저 단일 차원으로 좁혀서 받으십시오.
전체 내보내기 다운로드
단일 슬라이스 다운로드
curl, 재개, 로컬 필터링
과거 다운로드 목록을 확인하려면 다음을 사용합니다: GET https://webatla.com/api/v1/me/downloads. 키 없이 무료 미리보기를 사용해 보려면: GET https://webatla.com/api/v1/preview?dataset=all-data.
데이터 형식
파일은 JSON Lines 형식(한 줄에 JSON 객체 하나)이며, zstd로 압축되어 있습니다. 스키마는 모든 데이터셋에서 공통이므로, 동일한 도메인 키를 기준으로 신호가 정렬됩니다.
- 각 행은 하나의 도메인입니다. 압축 해제에는 다음을 사용합니다:
zstd -d. 스트리밍에는 다음을 사용합니다:zstdcat. - 열 이름에는 공백이 포함될 수 있으므로 jq에서는 대괄호 키 구문으로 읽습니다. 예:
.["Country by IP"]. - 필드는 누락되었거나 null일 수 있습니다. 기본값을 설정하십시오. 예:
.Registrar // "". - 날짜는 ISO 8601 형식의 문자열입니다. 예:
"2026-11-18T04:47:13.573"또는"2026-04-22".
열 참조
| 열 | 유형 | 예시 | 데이터셋 |
|---|---|---|---|
| Domain | string | "arriva.com.hr" | d1–d7 |
| TLD suffix | string | "com.hr" | d1–d7 |
| TLD | string | "hr" | d1–d7 |
| Domain type | string: "ICANN" | "PRIVATE" | "ICANN" | d1–d4, d6, d7 |
| HTTP status | integer | null | 200 | d3, d6, d7 |
| IP address | string | null | "31.13.236.27" | d3, d6, d7 |
| Country by IP | string (ISO-2) | null | "DE" | d2, d3, d6, d7 |
| Social networks | object | null | {"facebook": ["https://…"]} | d3, d6, d7 |
| Technologies last data checked | string (date) | null | "2026-04-22" | d3, d6, d7 |
| Technologies | array | object | null | ["WordPress"] / {"PHP": "4.4.9"} | d3, d6, d7 |
| DNS last data checked | string (date) | "2026-06-03" | d4, d6, d7 |
| DNS Status | string: "TRUE" | "FALSE" | "TRUE" | d4, d6, d7 |
| DNS records | object | null | {"A": ["31.13.236.27"], "MX": [{"host": "…", "priority": 0}]} | d4, d6, d7 |
| PR value | number | 4.808574e-9 / 0 | d2, d3, d6, d7 |
| Harmonic value | number | 10305265 / 0 | d2, d3, d6, d7 |
| RDAP/WHOIS last date checked | string (date) | "2026-01-04" | d5, d7, d6* |
| RDAP/WHOIS method | string: "rdap" | "whois" | "whois" | d5, d7, d6* |
| Domain creation date | string (ISO 8601) | null | "2024-12-12T14:04:04" | d2, d3, d5, d6, d7 |
| Domain expiration date | string (ISO 8601) | null | "2026-12-12T14:04:04" | d2, d3, d5, d6, d7 |
| Domain last changed | string (ISO 8601) | null | "2026-01-04T04:43:01" | d5, d7, d6* |
| Registrar | string | null | "REGRU-RU" | d5, d6, d7 |
| RDAP/WHOIS Record | object | null | {"raw_response": "% TCI Whois…"} | d5, d6* |
| Response Status RDAP/WHOIS | string | "Domain is active" | d5, d6* |
데이터셋: d1 All active domains · d2 Websites + Ranking · d3 Technologies · d4 DNS · d5 RDAP & WHOIS · d6 All data · d7 Domain Investor.
* All data (d6) 데이터셋에서는 등록 정보가 있는 도메인에만 RDAP/WHOIS 필드가 존재합니다.
중첩 필드 구조
Technologies이름의 배열이거나, 이름을 버전에 대응시킨 객체입니다.DNS Status값은 다음 문자열입니다:"TRUE"또는"FALSE", . 불리언이 아닙니다.DNS records레코드 타입을 값에 매핑합니다:A, AAAA, NS, SOA, TXT, MX, CNAME, CAA, HTTPS, DNSKEY, DS, SRV, PTR….MX다음 형식입니다:[{"host", "priority"}].Social networks플랫폼을 프로필 링크에 매핑합니다:facebook, instagram, x-twitter, linkedin, youtube, whatsapp, telegram, tiktok, github…. 이는 사이트 자체의 공개 링크이며, 개인의 연락처가 아닙니다.RDAP/WHOIS Record원본 등록 레코드를 담고 있으며, ICANN 규정에 따라 개인 정보 필드는 편집되어 있습니다.
레시피
실제 내보내기 파일로 검증되었습니다. 파일을 다운로드한 이후에는 모든 과정이 로컬에서 실행됩니다.
개수 세기, 추출, CSV 내보내기
기술로 필터링
DNS 및 만료일
Python
응답 코드 및 제한
오류는 다음과 같은 형식의 JSON 본문을 반환합니다: {"error": "…"}. 속도 제한 헤더는 모든 요청에서 반환됩니다.
| 코드 | 의미 |
|---|---|
| 200 / 206 | 성공입니다. 206은 부분(재개된) 다운로드를 의미합니다. |
| 302 | 다운로드 라우트에 브라우저 세션이 없습니다. API 키에는 대신 401이 반환됩니다. |
| 401 | API 키가 없거나 유효하지 않거나 IP로 차단되었습니다. |
| 403 | 이 데이터셋에 대한 활성 유료 액세스 권한이 없습니다. |
| 404 | 알 수 없는 데이터셋 또는 엔티티이거나, 파일이 아직 업로드되지 않았습니다. |
| 416 | 잘못된 형식이거나 멀티파트인 Range 요청입니다. |
| 429 | 속도 제한을 초과했습니다. 잠시 후 다시 시도하십시오. |
공개 엔드포인트는 IP별로 제한됩니다. 인증된 엔드포인트는 위에 나열된 대로 키별 또는 사용자별로 제한됩니다.
개발 시작하기
계정에서 키를 생성하거나, 먼저 데이터셋을 둘러보고 무료 샘플을 받아보십시오. 맞춤 추출에 대해 질문이 있으시면 다음 이메일로 문의해 주십시오: support@webatla.com.