데이터 수집 요청 V4
특정 크롤링 봇에 새로운 데이터 수집 작업을 요청합니다.
요청 즉시 새 데이터셋을 생성하고 백그라운드에서 수집 작업을 시작합니다. 응답으로 받은 schedule_result_id를 이후 상태·결과 조회에 사용하세요.
요청 본문은 params(수집 파라미터)와 settings(엔드포인트 옵션) 두 그룹으로 나뉩니다. 크롤링 봇에서 사용으로 지정된 파라미터는 모두 params 그룹 안에 포함해야 합니다. 빈 문자열("")은 의도적 빈 값으로 허용되지만, 키 자체가 없으면 MISSING_PARAM으로 거부됩니다. 사용 중인 파라미터 목록은 GET /v4/api/schedules/{id}/param_info로 확인할 수 있습니다.
기본적으로 보낸 파라미터는 이번 수집에만 적용되고 크롤링 봇 자체는 변경되지 않습니다. 크롤링 봇의 기본값으로도 저장하려면 settings.param_save: true를 함께 전달하세요.
크롤링 봇의 union이 true이고 기존 데이터셋이 하나라도 있으면, 새 데이터셋을 만들지 않고 가장 최근 데이터셋을 재사용해 결과가 누적됩니다. 응답의 schedule_result_id도 그 재사용된 데이터셋 ID로 반환됩니다. union이 false이거나 기존 데이터셋이 없으면 새 데이터셋이 생성됩니다.
이용권이 만료되었거나 보유 크레딧이 부족하면 수집이 거부됩니다. HTTP 상태 코드와 code 필드로 사유를 구분할 수 있습니다.
요청 파라미터
-
Authorization: Header해시스크래퍼 API 키.
Bearer <api_key>형식으로 전달합니다. -
schedule_id: String (path)수집을 요청할 크롤링 봇의 ID. URL 경로의
{schedule_id}로 전달합니다. 봇 ID는 봇 상세 페이지의 작업 → 봇 ID 복사하기에서 복사할 수 있습니다. -
params: optional Object수집 파라미터 그룹. 크롤링 봇이 사용하는
paramN키들을 이 안에 담습니다.-
param1 ~ param10: optional String
params그룹 안에param1~param10형식의 키로 전달합니다. 봇에 영문 별칭(alias)이 설정돼 있으면paramN대신 그 alias를 키로 쓸 수 있습니다. 라벨명(param_info의name·name_en)은 표시용이라 키로 인식되지 않습니다. 크롤링 봇에서 사용으로 지정된 항목은 필수이며, 사용 안 함이면 보내도 무시됩니다. 빈 문자열("")은 의도적 빈 값으로 허용되어 워커에게 그대로 전달됩니다. 어느 항목이 사용 중인지는GET /v4/api/schedules/{id}/param_info로 확인하세요. -
<alias>: optional String
paramN대신 봇에 설정한 영문 별칭(alias)을 키로 보낼 수 있습니다. 예:param1대신keyword.
-
-
settings: optional Object엔드포인트 옵션 그룹. 수집 동작과 관련된 메타 옵션을 이 안에 담습니다.
-
param_save: optional Boolean
settings.param_save.true이면 보낸 파라미터를 크롤링 봇 자체에 저장하여 다음 실행의 기본값으로 사용합니다.false(기본값)이면 이번 호출에만 적용됩니다.
-
응답 필드
-
result: String요청 처리 결과.
-
version: StringAPI 버전.
-
request_id: String요청 추적용 ID. 클라이언트가
X-Request-ID헤더에req_접두사 ID를 보내면 그대로 echo, 그 외에는 서버가 생성(req_<uuid>)합니다. -
elapsed_sec: Float응답 생성에 걸린 시간(초 단위 Float).
-
data: Object수집 요청 결과 정보.
-
schedule_id: String요청한 크롤링 봇의 ID(echo).
-
name: String크롤링 봇의 이름.
-
schedule_result_id: Integer이번 수집으로 생성된 데이터셋 ID(정수). 이후 상태·결과 조회의 입력값으로 사용합니다.
-
param_save: Boolean요청 시 전달한
settings.param_save값(echo). -
param_info: Object이번 수집에 사용된 파라미터. 키는
param1~paramN으로 안정적이며, 각 항목은name(라벨)과value를 포함합니다.options(허용값 목록)는 포함되지 않습니다. 옵션 목록은GET /v4/api/schedules/{id}/param_info에서 확인합니다.
-
에러 응답
-
MISSING_API_KEY
{ "result": "error", "version": "v4", "request_id": "req_5a8c1f1c-...", "code": "MISSING_API_KEY", "message": "API key is missing.", "elapsed_sec": 0.0008, "details": { "hint": "Send `Authorization: Bearer <api_key>` header." } } -
INVALID_API_KEY
{ "result": "error", "version": "v4", "request_id": "req_5a8c1f1c-...", "code": "INVALID_API_KEY", "message": "API key is invalid.", "elapsed_sec": 0.0011 } -
MISSING_PARAM
{ "result": "error", "version": "v4", "request_id": "req_5a8c1f1c-...", "code": "MISSING_PARAM", "message": "Required parameter is missing.", "elapsed_sec": 0.0014, "details": { "param_name": "param2" } } -
VALIDATION_FAILED
{ "result": "error", "version": "v4", "request_id": "req_5a8c1f1c-...", "code": "VALIDATION_FAILED", "message": "Validation failed.", "elapsed_sec": 0.0017, "details": { "errors": [ { "code": "MISSING_PARAM", "param_name": "param1" }, { "code": "MISSING_PARAM", "param_name": "param2" } ] } } -
SCHEDULE_NOT_FOUND
{ "result": "error", "version": "v4", "request_id": "req_5a8c1f1c-...", "code": "SCHEDULE_NOT_FOUND", "message": "Schedule not found.", "elapsed_sec": 0.0021, "details": { "resource": "schedule", "id": "8f3a7c1e9b5d24f6" } } -
TICKET_EXPIRED
{ "result": "error", "version": "v4", "request_id": "req_5a8c1f1c-...", "code": "TICKET_EXPIRED", "message": "Service ticket expired", "elapsed_sec": 0.0033, "details": { "reason": "ticket_expired" } } -
CREDIT_EXHAUSTED
{ "result": "error", "version": "v4", "request_id": "req_5a8c1f1c-...", "code": "CREDIT_EXHAUSTED", "message": "Credit exhausted", "elapsed_sec": 0.0033, "details": { "reason": "credit_exhausted" } }
관련 가이드
요청 예시
옵션 파라미터
응답 예시 200
{
"result": "success",
"version": "v4",
"request_id": "req_5a8c1f1c-9b2d-4e7c-9abf-3f7e0a4d1b21",
"elapsed_sec": 0.0123,
"data": {
"schedule_id": "8f3a7c1e9b5d24f6",
"name": "네이버 뉴스 검색",
"schedule_result_id": 239758028,
"param_save": false,
"param_info": {
"param1": { "name": "키워드", "alias": "keyword", "value": "키성장" },
"param2": { "name": "정렬", "alias": "sorting", "value": "추천순" }
}
}
}