크롤링 봇 설정 변경 V4

PATCH www.hashscraper.com/v4/api/schedules/{schedule_id} Content-Type: application/json

크롤링 봇의 파라미터·수집 주기·union 모드를 부분 업데이트합니다.

본문에 보낸 키만 반영되는 부분 업데이트입니다. 요청 본문은 params(수집 파라미터)와 settings(봇 설정 메타) 두 그룹으로 나뉘며, 두 그룹 모두 optional입니다. 그룹 자체가 없거나 비어 있으면 해당 영역은 변경되지 않습니다. name·description은 본 엔드포인트로 변경할 수 없습니다.

params.param1~params.param10은 키만 보내면 그 paramN을 그대로 갱신합니다. 빈 문자열("")은 의도적 빈 값으로 허용됩니다. settings.period·settings.union은 값 검증을 통과해야 하며, 형식이 맞지 않으면 INVALID_PARAM을 받습니다. 검증에 실패한 키가 하나라도 있으면 다른 키도 반영되지 않습니다(all-or-nothing).

이 엔드포인트는 수집을 트리거하지 않습니다. 변경된 값으로 즉시 수집하려면 별도로 collect를 호출하세요.

요청 파라미터

  • Authorization: Header
    해시스크래퍼 API 키. Bearer <api_key> 형식으로 전달합니다.
    예시 Bearer YOUR_API_KEY
  • schedule_id: String (path)
    변경할 크롤링 봇의 ID. URL 경로의 {schedule_id}로 전달합니다. 봇 ID는 봇 상세 페이지의 작업 → 봇 ID 복사하기에서 복사할 수 있습니다.
    예시 8f3a7c1e9b5d24f6
  • params: optional Object
    수집 파라미터 그룹. 갱신할 paramN 키들을 이 안에 담습니다.
    • param1 ~ param10: optional String
      크롤링 봇의 입력 파라미터. params 그룹 안에 param1~param10 형식의 키로 전달합니다. 봇에 alias가 설정돼 있으면 paramN 대신 alias를 키로 쓸 수 있습니다. 라벨명(name·name_en)은 표시용이라 키로 인식되지 않습니다. 키만 보내면 갱신, 키 자체가 없으면 변경 안 함. 빈 문자열("")은 허용됩니다.
    • <alias>: optional String
      paramN 대신 봇에 설정한 영문 별칭(alias)을 키로 보낼 수 있습니다. 예: param1 대신 keyword.
  • settings: optional Object
    봇 설정 메타 그룹. 갱신할 period·union을 이 안에 담습니다.
    • period: optional String
      settings.period. 수집 주기. manual(수동), hour(시간 단위), day(일 단위) 중 하나만 허용됩니다.
      허용값 manual, hour, day
    • union: optional Boolean
      settings.union. union 모드 활성 여부. true·false 또는 "true"·"false"만 허용됩니다.
      허용값 true, false

응답 필드

  • result: String
    요청 처리 결과.
    허용값 success, error
  • version: String
    API 버전.
    예시 v4
  • request_id: String
    요청 추적용 ID.
    예시 req_5a8c1f1c-...
  • elapsed_sec: Float
    응답 생성에 걸린 시간(초 단위 Float).
    예시 0.0156
  • data: Object
    업데이트 후 크롤링 봇 상태.
    • id: String
      크롤링 봇의 ID(echo).
    • name: String
      크롤링 봇 이름.
    • description: String | null
      크롤링 봇 설명. raw HTML이 포함될 수 있으므로(예: <br>·줄바꿈) 표시 시 escape하거나 적절히 처리하세요.
    • period: String | null
      현재 수집 주기.
      허용값 manual, hour, day
    • union: Boolean
      현재 union 모드 여부.
    • schedule_group: Object | null
      크롤링 봇이 속한 그룹 정보. 그룹이 없으면 null.
      • id: Integer
        그룹 ID.
      • name: String
        그룹 이름.
      • name_en: String
        그룹 이름(영문). 설정되지 않은 경우 키 자체가 생략됩니다.
    • updated_at: String (ISO 8601)
      크롤링 봇 마지막 갱신 시각 (ISO 8601, Asia/Seoul).
    • param_info: Object
      업데이트 후 입력 파라미터. 키는 param1~paramN으로 안정적이며, 사용으로 지정된 항목만 포함됩니다. 액션 응답이라 options는 포함되지 않습니다.

에러 응답

  • 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 (period)
    period 값이 manual·hour·day 중 하나가 아닙니다. (HTTP 400)
    {
      "result": "error",
      "version": "v4",
      "request_id": "req_5a8c1f1c-...",
      "code": "INVALID_PARAM",
      "message": "Invalid period parameter.",
      "elapsed_sec": 0.0014,
      "details": { "param_name": "period", "value": "weekly", "allowed": ["manual","hour","day"] }
    }
  • INVALID_PARAM (union)
    union 값이 boolean(true·false) 또는 그 문자열 표기가 아닙니다. (HTTP 400)
    {
      "result": "error",
      "version": "v4",
      "request_id": "req_5a8c1f1c-...",
      "code": "INVALID_PARAM",
      "message": "Invalid union parameter.",
      "elapsed_sec": 0.0014,
      "details": { "param_name": "union", "value": "maybe" }
    }

관련 가이드

요청 예시
  • cURL
  • Ruby
  • Python
  • NodeJS
  • PHP
  • Java
옵션 파라미터
응답 예시 200
{
  "result": "success",
  "version": "v4",
  "request_id": "req_5a8c1f1c-9b2d-4e7c-9abf-3f7e0a4d1b21",
  "elapsed_sec": 0.0156,
  "data": {
    "id": "8f3a7c1e9b5d24f6",
    "name": "네이버 뉴스 검색",
    "description": "키워드로 네이버 뉴스를 수집합니다.",
    "period": "hour",
    "union": false,
    "schedule_group": { "id": 7, "name": "뉴스", "name_en": "NEWS" },
    "updated_at": "2026-05-07T11:23:45+09:00",
    "param_info": {
      "param1": { "name": "키워드", "alias": "keyword", "value": "키성장" },
      "param2": { "name": "정렬",   "alias": "sorting", "value": "관련도순" }
    }
  }
}