크롤링 봇 데이터셋 이력 조회 V4

GET www.hashscraper.com/v4/api/schedules/{schedule_id}/schedule_results

특정 크롤링 봇의 데이터셋 이력을 페이지 단위로 조회합니다.

한 번에 최대 limit건(기본 100, 최대 1000)을 반환합니다. 응답의 next_cursor 값을 다음 요청의 cursor로 전달해 다음 페이지를 이어서 조회합니다.

sr_status 파라미터로 특정 상태의 데이터셋만 필터링할 수 있습니다.

응답의 schedule.latest_schedule_result_id는 같은 크롤링 봇의 가장 최근 데이터셋 ID입니다. 페이지의 data 배열과는 무관하게 항상 같은 값으로 반환됩니다.

요청 파라미터

  • Authorization: Header
    해시스크래퍼 API 키. Bearer <api_key> 형식으로 전달합니다.
    예시 Bearer YOUR_API_KEY
  • schedule_id: String (path)
    조회할 크롤링 봇의 ID. URL 경로의 {schedule_id}로 전달합니다. 봇 ID는 봇 상세 페이지의 작업 → 봇 ID 복사하기에서 복사할 수 있습니다.
    예시 8f3a7c1e9b5d24f6
  • sorting: optional String
    데이터셋 ID 기준 정렬 방향. 페이지네이션 도중에 변경하지 마세요. cursor의 적용 방향이 함께 뒤집힙니다.
    기본값 asc 허용값 asc, desc
  • cursor: optional Integer
    응답의 next_cursor 값을 그대로 다음 요청에 전달. 현재 sorting 방향에 맞춰 적용됩니다.
  • sr_status: optional String
    특정 상태의 데이터셋만 조회. canceling, canceled, finish, ready, retry, running, complete 중 하나.
    허용값 canceling, canceled, finish, ready, retry, running, complete
  • limit: optional Integer
    한 페이지당 최대 데이터셋 수.
    기본값 100 허용값 1 ~ 1000

응답 필드

  • result: String
    요청 처리 결과.
    허용값 success, error
  • version: String
    API 버전.
    예시 v4
  • request_id: String
    요청 추적용 ID.
    예시 req_5a8c1f1c-...
  • elapsed_sec: Float
    응답 생성에 걸린 시간(초 단위 Float).
    예시 0.0142
  • count: Integer
    이 응답에 포함된 데이터셋 수.
  • next_cursor: Integer | null
    다음 페이지 조회 시 cursor로 전달할 값. null이면 마지막 페이지입니다.
  • schedule: Object
    조회 대상 크롤링 봇의 컨텍스트 (페이지와 무관하게 항상 동일).
    • id: String
      크롤링 봇의 ID(echo).
    • name: String
      크롤링 봇의 이름.
    • latest_schedule_result_id: Integer | null
      같은 크롤링 봇의 가장 최근 데이터셋 ID. 데이터셋이 하나도 없으면 null.
  • data: Array<Object>
    데이터셋 배열.
    • schedule_result_id: Integer
      데이터셋 ID.
    • sr_status: String
      수집 진행 상태. 일반적으로 ready, running, retry, finish/complete, canceling(취소 진행 중), canceled(취소 완료) 중 하나입니다. 일부 legacy 데이터셋은 locale에 따라 다른 라벨(예: 한국어 '완료'/'처리중'/'취소'/'중지' 또는 영문 Complete/Processing/Cancel/Stop)이 반환될 수 있습니다.
    • data_count: Integer
      이 데이터셋에 수집된 결과 건수. 진행 중이면 호출 시점 기준 실시간 값이라 호출마다 증가할 수 있습니다.
    • created_at: String (ISO 8601)
      데이터셋 생성 시각 (ISO 8601, Asia/Seoul).
    • updated_at: String (ISO 8601)
      데이터셋 마지막 갱신 시각 (ISO 8601, Asia/Seoul). 진행 중에는 워커가 갱신하면서 자주 변하고, 완료 이후에는 보통 변하지 않습니다.
    • param_info: Object
      이 데이터셋의 파라미터 스냅샷. 키는 param1~paramN으로 안정적이며, 각 항목은 name(라벨)과 value를 포함합니다.
    • union: Boolean | null
      union 모드 여부. union 모드는 새 데이터셋을 만들지 않고 같은 크롤링 봇의 마지막 데이터셋을 재사용해 결과를 모으는 모드입니다. 해당 수집 실행 시점의 union 값을 그대로 반환합니다.

에러 응답

  • MISSING_API_KEY
    Authorization 헤더가 없거나 형식이 올바르지 않습니다. Authorization: Bearer <api_key> 형태로 전달하세요. (HTTP 401)
    {
      "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
    전달된 API 키와 일치하는 사용자가 없습니다. (HTTP 401)
    {
      "result": "error",
      "version": "v4",
      "request_id": "req_5a8c1f1c-...",
      "code": "INVALID_API_KEY",
      "message": "API key is invalid.",
      "elapsed_sec": 0.0011
    }
  • SCHEDULE_NOT_FOUND
    전달된 ID로 크롤링 봇을 찾을 수 없거나 접근 권한이 없습니다. (HTTP 404)
    {
      "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" }
    }
  • INVALID_PARAM (sorting)
    sorting 값이 asc 또는 desc가 아닙니다. (HTTP 400)
    {
      "result": "error",
      "version": "v4",
      "request_id": "req_5a8c1f1c-...",
      "code": "INVALID_PARAM",
      "message": "Invalid sorting parameter.",
      "elapsed_sec": 0.0014,
      "details": { "param_name": "sorting", "allowed": ["asc","desc"] }
    }
  • INVALID_PARAM (sr_status)
    sr_status 값이 허용된 상태가 아닙니다. (HTTP 400)
    {
      "result": "error",
      "version": "v4",
      "request_id": "req_5a8c1f1c-...",
      "code": "INVALID_PARAM",
      "message": "Invalid sr_status parameter.",
      "elapsed_sec": 0.0014,
      "details": { "param_name": "sr_status", "value": "unknown", "allowed": ["canceling","canceled","finish","ready","retry","running","complete"] }
    }

관련 가이드

요청 예시
  • cURL
  • Ruby
  • Python
  • NodeJS
  • PHP
  • Java
옵션 파라미터
응답 예시 200
{
  "result": "success",
  "version": "v4",
  "request_id": "req_5a8c1f1c-9b2d-4e7c-9abf-3f7e0a4d1b21",
  "elapsed_sec": 0.0142,
  "count": 2,
  "next_cursor": null,
  "schedule": {
    "id": "8f3a7c1e9b5d24f6",
    "name": "네이버 뉴스 검색",
    "latest_schedule_result_id": 239758029
  },
  "data": [
    {
      "schedule_result_id": 239758028,
      "sr_status": "finish",
      "data_count": 100,
      "created_at": "2026-05-06T10:00:00+09:00",
      "updated_at": "2026-05-06T10:01:23+09:00",
      "param_info": {
        "param1": { "name": "키워드", "value": "키성장" },
        "param2": { "name": "정렬",   "value": "관련도순" }
      },
      "union": false
    },
    {
      "schedule_result_id": 239758029,
      "sr_status": "running",
      "data_count": 42,
      "created_at": "2026-05-07T09:00:00+09:00",
      "updated_at": "2026-05-07T09:00:14+09:00",
      "param_info": {
        "param1": { "name": "키워드", "value": "백엔드" },
        "param2": { "name": "정렬",   "value": "최신순" }
      },
      "union": false
    }
  ]
}