데이터셋 재시도 V4

POST www.hashscraper.com/v4/api/schedule_results/{id}/retry

기존 데이터셋을 재시도해 같은 파라미터로 다시 수집합니다.

요청한 데이터셋의 상태를 ready로 리셋하고 큐에 다시 넣습니다. 새 데이터셋을 만들지 않고 같은 ID를 재사용하므로 결과 데이터도 같은 데이터셋에 누적됩니다.

현재 진행 중인 상태(ready·running·retry·canceling)에서는 재시도가 차단되며 EXECUTION_BLOCKED(reason: already_running)을 받습니다. 완료(finish·complete) 또는 그 외 종료 상태에서만 재시도가 허용됩니다.

이용권 만료·크레딧 소진은 새 수집과 동일한 사유로 차단됩니다.

요청 파라미터

  • Authorization: Header
    해시스크래퍼 API 키. Bearer <api_key> 형식으로 전달합니다.
    예시 Bearer YOUR_API_KEY
  • id: Integer (path)
    재시도할 데이터셋 ID.
    예시 239758028

응답 필드

  • result: String
    요청 처리 결과.
    허용값 success, error
  • version: String
    API 버전.
    예시 v4
  • request_id: String
    요청 추적용 ID.
    예시 req_5a8c1f1c-...
  • elapsed_sec: Float
    응답 생성에 걸린 시간(초 단위 Float).
    예시 0.0287
  • data: Object
    재시도 결과.
    • schedule_result_id: Integer
      재시도된 데이터셋 ID(echo, 요청 ID와 동일).
    • schedule_id: String
      데이터셋이 속한 크롤링 봇의 ID.
    • name: String
      데이터셋이 속한 크롤링 봇의 이름.
    • sr_status: String
      재시도 직후 상태. 일반적으로 ready.
    • param_info: Object
      이 데이터셋의 파라미터 스냅샷. 키는 param1~paramN으로 안정적이며, 각 항목은 name(라벨)과 value를 포함합니다.

에러 응답

  • 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_RESULT_NOT_FOUND
    전달된 ID로 데이터셋을 찾을 수 없거나 접근 권한이 없습니다. (HTTP 404)
    {
      "result": "error",
      "version": "v4",
      "request_id": "req_5a8c1f1c-...",
      "code": "SCHEDULE_RESULT_NOT_FOUND",
      "message": "ScheduleResult not found.",
      "elapsed_sec": 0.0021,
      "details": { "resource": "schedule_result", "id": "999999" }
    }
  • EXECUTION_BLOCKED (already_running)
    현재 진행 중인 데이터셋은 재시도할 수 없습니다. 차단 대상은 영어 코드(ready·running·retry·canceling)와 동등한 한국어 라벨이 저장된 legacy 데이터셋을 모두 포함합니다. (HTTP 409)
    {
      "result": "error",
      "version": "v4",
      "request_id": "req_5a8c1f1c-...",
      "code": "EXECUTION_BLOCKED",
      "message": "Already running.",
      "elapsed_sec": 0.0017,
      "details": { "reason": "already_running", "sr_status": "running" }
    }
  • TICKET_EXPIRED
    이용권 기간이 만료되었거나 등록된 이용권이 없습니다. (HTTP 402)
    {
      "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
    보유 크레딧을 모두 소진하여 재시도를 시작할 수 없습니다. (HTTP 402)
    {
      "result": "error",
      "version": "v4",
      "request_id": "req_5a8c1f1c-...",
      "code": "CREDIT_EXHAUSTED",
      "message": "Credit exhausted",
      "elapsed_sec": 0.0033,
      "details": { "reason": "credit_exhausted" }
    }

관련 가이드

요청 예시
  • cURL
  • Ruby
  • Python
  • NodeJS
  • PHP
  • Java
응답 예시 200
{
  "result": "success",
  "version": "v4",
  "request_id": "req_5a8c1f1c-9b2d-4e7c-9abf-3f7e0a4d1b21",
  "elapsed_sec": 0.0287,
  "data": {
    "schedule_result_id": 239758028,
    "schedule_id": "8f3a7c1e9b5d24f6",
    "name": "네이버 뉴스 검색",
    "sr_status": "ready",
    "param_info": {
      "param1": { "name": "키워드", "alias": "keyword", "value": "키성장" },
      "param2": { "name": "정렬",   "alias": "sorting", "value": "관련도순" }
    }
  }
}