빠른 시작 V4
처음 API를 쓰신다면 여기부터 — 5분 안에 첫 수집 데이터를 받아 봅니다.
API 키 하나로 봇 찾기 → 설정값 확인 → 수집 요청 → 완료 확인 → 데이터 받기까지 순서대로 호출합니다. 아래 명령을 터미널에 복사해 YOUR_API_KEY만 바꾸면 그대로 동작합니다.
- 약 5분
- 준비물
- 해시스크래퍼 계정 · 크롤링 봇 1개 · 크레딧(또는 이용권)
-
API 키 복사하기
내 정보에서 API 키 보기내 정보 → API 키에서 키를 복사합니다. 모든 요청의
Authorization헤더에Bearer YOUR_API_KEY형식으로 넣습니다.키는 비밀번호와 같습니다. 코드 저장소·화면 공유에 노출하지 마세요.
-
연결 확인하기
GET키가 맞는지 먼저 확인합니다. 내 계정 이메일이 돌아오면 준비가 끝났습니다.
cURLcurl 'https://www.hashscraper.com/v4/api/me' \ -H 'Authorization: Bearer YOUR_API_KEY'"result": "success"와 내 이메일이 보이면 성공입니다.401이면 키를 다시 복사하세요. -
수집할 봇 고르기
GET내 크롤링 봇 목록을 받아 수집할 봇의
id를 고릅니다. 봇 상세 화면의 더보기 → 봇 ID 복사하기로도 복사할 수 있습니다.cURLcurl 'https://www.hashscraper.com/v4/api/schedules' \ -H 'Authorization: Bearer YOUR_API_KEY'data[].id가 봇 ID입니다. 다음 단계에서 이 ID로 설정값을 확인합니다. -
설정값 확인하기
GET고른 봇이 어떤 입력값(키워드·정렬 등)을 쓰는지, 지금 저장된 값은 무엇인지, 고를 수 있는 값은 무엇인지 확인합니다.
param_info에 나온 항목이 수집 요청 때params에 넣어야 할 키입니다.param1대신alias(예:keyword)를 키로 써도 됩니다.options가 있는 항목은 그 목록의value중에서 골라 보내세요.cURLcurl 'https://www.hashscraper.com/v4/api/schedules/8f3a7c1e9b5d24f6/param_info' \ -H 'Authorization: Bearer YOUR_API_KEY'data.param_info의 키마다name(뜻)·value(저장된 값)·options(고를 수 있는 값)를 확인하세요. -
수집 요청하기
POST고른 봇에 수집을 요청합니다. 봇이 쓰는 입력값은
params안에 모두 넣어야 합니다(키가 빠지면MISSING_PARAM). 이번 요청의 값은 봇 설정을 바꾸지 않습니다.요청이 받아들여지면 크레딧이 차감되고, 응답의
schedule_result_id가 이번 수집(데이터셋)의 번호입니다.cURLcurl -X POST 'https://www.hashscraper.com/v4/api/schedules/8f3a7c1e9b5d24f6/collections' \ -H 'Authorization: Bearer YOUR_API_KEY' \ -H 'Content-Type: application/json' \ -d '{ "params": { "param1": "키성장" } }'data.schedule_result_id를 다음 단계에 씁니다. -
완료될 때까지 확인하기
GET수집은 백그라운드에서 진행됩니다. 10~30초 간격으로 상태를 조회하세요. 사이트와 수집량에 따라 수십 초에서 수십 분이 걸립니다.
cURLcurl 'https://www.hashscraper.com/v4/api/schedule_results/239758028' \ -H 'Authorization: Bearer YOUR_API_KEY'sr_status가finish또는complete가 되면 완료입니다.data_count는 지금까지 모인 건수입니다. -
데이터 받기
GET완료된 데이터셋의 데이터를 받습니다. 한 번에
limit건씩 오며, 응답의next_cursor를 다음 요청의cursor로 넘겨 이어 받습니다.cURLcurl 'https://www.hashscraper.com/v4/api/schedule_results/239758028/results?limit=1000' \ -H 'Authorization: Bearer YOUR_API_KEY'next_cursor가null이면 마지막 페이지입니다.
다음 단계
import time
import requests
API_KEY = "YOUR_API_KEY"
BASE = "https://www.hashscraper.com/v4/api"
HEADERS = {"Authorization": f"Bearer {API_KEY}"}
# 2. 연결 확인
me = requests.get(f"{BASE}/me", headers=HEADERS).json()
print("계정:", me["data"]["email"])
# 3. 봇 고르기 — 목록의 첫 봇
bots = requests.get(f"{BASE}/schedules", headers=HEADERS).json()
bot = bots["data"][0]
# 4. 설정값 확인 (입력값·저장된 값·고를 수 있는 값)
url = f"{BASE}/schedules/{bot['id']}/param_info"
data = requests.get(url, headers=HEADERS).json()["data"]
info = data["param_info"]
params = {}
for key, item in info.items():
choices = [o["value"] for o in item.get("options", [])]
print(key, item["name"], item.get("value"), choices)
params[key] = item.get("value") or ""
# 5. 수집 요청
url = f"{BASE}/schedules/{bot['id']}/collections"
res = requests.post(url, headers=HEADERS, json={"params": params})
sr_id = res.json()["data"]["schedule_result_id"]
# 6. 완료될 때까지 확인 (15초 간격)
while True:
url = f"{BASE}/schedule_results/{sr_id}"
data = requests.get(url, headers=HEADERS).json()["data"]
status = data["sr_status"]
if status in ("finish", "complete"):
break
if status in ("canceling", "canceled"):
raise SystemExit("수집이 취소되었습니다")
time.sleep(15)
# 7. 데이터 받기 (1,000건씩 이어 받기)
rows, cursor = [], None
while True:
query = {"limit": 1000}
if cursor:
query["cursor"] = cursor
url = f"{BASE}/schedule_results/{sr_id}/results"
page = requests.get(url, headers=HEADERS, params=query).json()
rows += page["data"]
cursor = page["next_cursor"]
if cursor is None:
break
print(len(rows), "건을 받았습니다")
위 1~7단계를 이어 붙인 예시입니다. requests 패키지가 필요합니다.