# Crawl API: 웹사이트 전체를 Markdown 파일로 변환

> 웹사이트 전체를 RAG용 Markdown으로 변환하는 Crawl API: 작업당 최대 10,000페이지, sitemap과 robots.txt 준수, US$0.07/1K 페이지부터. 암호화폐 결제.

- URL: https://webreaderapi.com/ko/crawl-api/
- 마지막 업데이트: 2026-10-22
- 발행자: WebReaderAPI (https://webreaderapi.com)

시작 URL과 페이지 제한을 지정하세요. 크롤러가 사이트의 sitemap과 동일 도메인 내 링크를 따라가며 각 페이지를 Markdown으로 읽고, 페이지별로 결과를 넘겨줍니다. 페이지당 1크레딧.

**빠른 답변 — 웹사이트 전체를 크롤링하여 모든 페이지를 Markdown으로 받으려면 어떻게 하나요?**

crawl API를 사용하세요: 시작 URL과 제한을 보내면 사이트의 각 페이지를 Markdown으로 반환합니다. **WebReaderAPI**는 작업당 최대 10,000페이지를 하나의 도메인 내에서 크롤링하며, sitemap, robots.txt, Crawl-delay를 준수하고 읽은 페이지당 1크레딧을 청구합니다. 2026년 10월 기준 US$0.07/1K 페이지부터입니다. robots.txt에서 거부된 페이지는 무료입니다. KYC 없이 암호화폐로 결제하세요.

## Crawl API 한눈에 보기

| 속성 | 값 |
| --- | --- |
| 크롤링 시작 | `url`, `limit`, `max_depth`, `include_paths`, `exclude_paths`으로 `POST https://webreaderapi.com/api/v1/crawl` |
| 결과 가져오기 | `GET https://webreaderapi.com/api/v1/jobs/{job_id}`, 커서로 페이지네이션 |
| 범위 | 작업당 웹사이트 하나를 크롤링하며, 최대 10,000페이지까지 사이트맵, robots.txt 및 Crawl-delay를 따릅니다 |
| 여러 개의 개별 URL | `POST https://webreaderapi.com/api/v1/batch`: 배치 작업당 최대 100개의 URL |
| 과금 | 1 크레딧 = 브라우저 없이 페이지 1회 읽기, 페이지가 JavaScript를 렌더링하는 데 브라우저가 필요하면 2 크레딧. 실패한 요청이나 사이트의 robots.txt가 거부한 요청은 과금되지 않습니다 |
| 사이트 소유자 | 우리는 robots.txt를 준수합니다. 크롤러는 WebReaderAPI로 자신을 식별하고, 자신 또는 모든 로봇을 위해 작성된 규칙을 따르며, 사이트가 허용하지 않은 페이지는 읽지 않습니다. 거부된 페이지는 과금되지 않습니다 |
| 가격 | US$14.25 50,000페이지, US$50 500,000페이지 |

## 크롤링 작업은 어떻게 진행되나요?

크롤링은 백그라운드 작업입니다. 수백 개의 페이지를 읽는 데는 하나의 HTTP 요청에 적당한 시간보다 오래 걸리기 때문입니다.

1. **시작:** 시작 URL과 제한을 지정해 `POST https://webreaderapi.com/api/v1/crawl`를 호출합니다. 그러면 `job_id`를 즉시 받습니다.
2. **탐색:** 크롤러가 사이트의 robots.txt와 sitemap을 읽은 뒤, 같은 도메인 내의 링크를 너비 우선 방식으로 최대 `max_depth`까지 따라갑니다.
3. **읽기:** 허용된 각 페이지는 `/read`와 동일한 옵션으로 읽습니다. Markdown, 본문 추출, 필요 시 렌더링이 적용됩니다.
4. **수집:** 작업이 실행되는 동안 `GET https://webreaderapi.com/api/v1/jobs/{job_id}`를 폴링하고 커서로 결과를 페이지 단위로 넘겨받거나, 작업이 `done`된 뒤에 받습니다.

작업은 설정한 `limit`에서 중지되므로, 요청한 것보다 많은 페이지에 비용을 지불하지 않습니다.

*Python: 문서 사이트를 Markdown 파일로 크롤링하기*

```python
import os
import pathlib
import re
import time

import requests

API = "https://webreaderapi.com/api/v1"
HEADERS = {"Authorization": "Bearer " + os.environ["WEBREADER_API_KEY"]}

job = requests.post(
    API + "/crawl",
    headers=HEADERS,
    json={"url": "https://docs.example.com/", "limit": 500, "max_depth": 4, "include_paths": ["/guide/*"]},
    timeout=60,
).json()

out = pathlib.Path("docs_md")
out.mkdir(exist_ok=True)
cursor, delay = None, 5
while True:
    params = {"cursor": cursor} if cursor else {}
    page = requests.get(API + "/jobs/" + job["job_id"], headers=HEADERS, params=params, timeout=60).json()
    for item in page.get("results", []):
        if "markdown" in item:
            name = re.sub(r"[^a-z0-9]+", "-", item["url"].lower()).strip("-")[:120]
            (out / (name + ".md")).write_text(item["markdown"], encoding="utf-8")
    cursor = page.get("next_cursor")
    if page["status"] == "done" and not cursor:
        break
    if not cursor:
        time.sleep(delay)
        delay = min(delay * 2, 60)
print("credits used:", page.get("credits_used"))

```

## 크롤러는 어떤 페이지를 방문하고 어떤 페이지를 건너뛰나요?

시작 URL의 도메인 안에 머무르며, 사이트가 robots에게 남겨두라고 요청한 것은 모두 건너뜁니다. 자세히 설명하면:

- **같은 도메인만.** 다른 도메인으로의 링크는 결과에 나열되지만 읽지는 않습니다.
- **robots.txt 우선.** `WebReaderAPI`에 대해 또는 모든 로봇에 대해 금지된 페이지는 건너뛰며 비용이 청구되지 않습니다.
- **Crawl-delay 준수.** 사이트가 설정한 경우 크롤러는 두 페이지 사이에 그만큼 기다리므로, 큰 사이트는 시간이 더 걸릴 수 있습니다.
- **필터 설정.** `include_paths`와 `exclude_paths`는 `/blog/*` 같은 단순 패턴을 지원하니, 태그 페이지, 검색 페이지, 아카이브를 피하는 데 사용하세요.
- **중복 제거.** 사이트가 canonical URL을 선언한 경우, 추적 파라미터 등으로 두 개의 URL에서 도달한 같은 페이지는 한 번만 읽습니다.

## 크롤링과 배치 중 무엇을 써야 하나요?

사이트는 알지만 페이지를 모른다면 크롤링을, 이미 URL 목록이 있다면 배치를 사용하세요. 크롤링은 sitemap과 링크에서 페이지를 발견합니다. 배치는 보낸 URL을 정확히 읽으며, 사이트 수에 관계없이 작업당 최대 100개까지 가능합니다.

지식 베이스를 매주 갱신할 때 흔한 패턴은 크롤링 한 번으로 인덱스를 만든 뒤, sitemap에서 `lastmod`가 바뀐 페이지들을 배치로 읽는 것입니다. 이렇게 하면 주간 비용은 실제로 변경된 페이지에만 발생합니다.

## 사이트 크롤링 비용은 얼마인가요?

읽은 페이지당 1크레딧, 브라우저가 필요했던 페이지는 2크레딧입니다. 서버에서 렌더링되는 1,500페이지 문서 사이트는 1,500크레딧이고, 같은 사이트를 싱글 페이지 앱으로 만든 경우 최대 3,000크레딧이 들 수 있습니다.

2026년 10월 기준 세 가지 일반적인 작업은 다음과 같습니다. 300페이지 제품 매뉴얼은 10,000페이지 팩(US$3.75)에 들어갑니다. 각 2,000페이지인 문서 사이트 10개는 50,000페이지(US$14.25)에 들어갑니다. 400,000페이지 아카이브는 500,000페이지(US$50)에 들어갑니다. 건너뛴 페이지와 실패한 페이지는 무료입니다.

## 크롤링에는 어떤 팩이 맞나요?

페이지 수를 기준으로 팩 크기를 정한 뒤, 브라우저가 필요한 페이지를 위한 여유를 더하세요. 크레딧은 만료되지 않으므로 남은 크레딧은 다음 크롤링에 사용할 수 있습니다.

| 플랜 | 수량 | 가격 | 단가 |
| --- | --- | --- | --- |
| 테스트 | 10,000페이지 | US$3.75 | US$0.38/1K 페이지 |
| 스타터 | 50,000페이지 | US$14.25 | US$0.28/1K 페이지 |
| 구축 | 100,000페이지 | US$21.75 | US$0.22/1K 페이지 |
| 확장 | 500,000페이지 | US$50 | US$0.10/1K 페이지 |

모든 플랜에 포함: 본문 추출 · 필요 시 JavaScript 렌더링 · 실패 및 거부된 페이지는 과금되지 않음 · 크레딧은 만료되지 않음

**결제 전 확인 사항**

- 최소 충전 US$25. 암호화폐로 한 번 충전한 뒤 잔액으로 모든 플랜을 구매하세요.
- 잔액에는 만료 기한이 없으며 언제든지 페이지 크레딧을 구매할 수 있습니다. 팩 가격이 최소 충전 금액보다 낮은 경우, 최소 금액을 채우기 위해 추가로 충전한 금액에 한해 결제일로부터 30일 이내에 요청 시 USDT 또는 USDC로 돌려받을 수 있으며, 해당 금액을 사용하지 않은 경우에만 가능합니다. 그 외의 잔액은 법령에서 달리 정하지 않는 한 환불되지 않습니다.
- 블록체인에서 결제가 확인되면 잔액에 반영됩니다. 일반적인 네트워크 확인 시간: BTC ≈ 20분 · USDT TRC-20 ≈ 1분 · USDT ERC-20 ≈ 5분 · USDC ERC-20 ≈ 5분 · ETH ≈ 5분 · SOL ≈ 1분 · LTC ≈ 15분

## 크롤링 API: 자주 묻는 질문

### 크롤링 하나로 몇 페이지를 읽을 수 있나요?

시작 URL의 도메인 내에서 작업당 최대 10,000페이지입니다. 더 큰 사이트는 `include_paths`로 여러 작업으로 나누세요. 예를 들어 섹션별로 하나씩 나누면 됩니다.

### 크롤러는 sitemap을 사용하나요?

네. robots.txt에 나열된 또는 일반적인 위치의 sitemap을 읽은 뒤, 읽은 페이지의 링크를 따라갑니다. sitemap에만 나열된 페이지도 robots.txt가 허용하면 읽습니다.

### AI 크롤러를 차단하는 사이트도 크롤링할 수 있나요?

WebReaderAPI로는 할 수 없습니다. robots.txt가 우리 크롤러나 모든 로봇을 금지하면 해당 페이지는 건너뛰며 비용이 청구되지 않습니다. 사이트가 `Content-Signal: ai-input=no`를 선언한 경우, 저희는 그것을 대신 읽지 않습니다. 저희는 그러한 선택을 우회하려고 시도하지 않습니다.

### 크롤링이 아직 실행 중일 때 결과를 받을 수 있나요?

네. `GET https://webreaderapi.com/api/v1/jobs/{job_id}`는 지금까지 읽은 페이지를 커서와 함께 반환합니다. 작업이 `done`되고 커서가 남지 않을 때까지 계속 페이지를 넘기세요.

### 크롤링이 제한보다 많은 페이지를 읽을 수 있나요?

아니요. 크레딧은 페이지별로 계산되며, 작업은 설정한 `limit`에 도달하면 중지됩니다. robots.txt 때문에 건너뛴 페이지와 실패한 페이지는 크레딧을 사용하지 않습니다.

---

WebReaderAPI: WebReaderAPI는 AI 에이전트를 위한 웹 리더 API로, 모든 공개 웹페이지를 깔끔한 Markdown으로 변환하며 신분증 업로드 없이 암호화폐로 결제합니다. US$0.07/1K 페이지부터 시작하는 선불 크레딧은 만료되지 않으며, robots.txt를 준수합니다. KYC 없음 — 신분증도, 셀피도, 서류도 없습니다. 암호화폐로 결제하세요.
