Update Scraper Settings V4

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

Partially updates a scraper's parameters, collection period, and union mode.

Only the keys present in the body are applied. The request body has two groups: params (collection parameters) and settings (scraper meta settings) — both groups are optional. Missing or empty groups leave that area untouched. name and description cannot be updated through this endpoint.

params.param1~params.param10 are updated when present. Empty strings ("") are accepted as intentional empty values. settings.period and settings.union are strictly validated — invalid values return INVALID_PARAM. If validation fails on any key, no keys are applied (all-or-nothing).

This endpoint does not trigger collection. To collect with the new values immediately, call collect separately.

Request Parameters

  • Authorization: Header
    HashScraper API key. Send it in the form Bearer <api_key>.
    Example Bearer YOUR_API_KEY
  • schedule_id: String (path)
    ID of the scraper to update. Passed as the {schedule_id} path segment. You can copy the Bot ID from Actions → Copy Bot ID on the scraper's detail page.
    Example 8f3a7c1e9b5d24f6
  • params: optional Object
    Collection parameters group. Place the paramN keys you want to update inside this object.
    • param1 ~ param10: optional String
      Scraper input parameters. Send inside the params group with keys param1~param10; if the bot has an alias configured you may use it instead of paramN. The label text (name/name_en) is display-only and not a valid key. Updated when the key is present; left unchanged otherwise. Empty strings ("") are accepted.
    • <alias>: optional String
      Under params, you may use the English alias configured for the bot as the key instead of paramN. e.g. keyword instead of param1.
  • settings: optional Object
    Scraper meta settings group. Place the period/union keys you want to update inside this object.
    • period: optional String
      settings.period. Collection period. Only manual, hour, or day are accepted.
      Allowed manual, hour, day
    • union: optional Boolean
      settings.union. Whether union mode is enabled. Only true/false or their string forms ("true"/"false") are accepted.
      Allowed true, false

Response Fields

  • result: String
    Result of the request.
    Allowed success, error
  • version: String
    API version.
    Example v4
  • request_id: String
    Request trace ID.
    Example req_5a8c1f1c-...
  • elapsed_sec: Float
    Time the server took to produce the response, in seconds (Float).
    Example 0.0156
  • data: Object
    Scraper state after the update.
    • id: String
      Echo of the scraper ID.
    • name: String
      Scraper name.
    • description: String | null
      Scraper description. May contain raw HTML (e.g. <br>, line breaks); escape or sanitize when rendering.
    • period: String | null
      Current collection period.
      Allowed manual, hour, day
    • union: Boolean
      Current union mode flag.
    • schedule_group: Object | null
      Group this scraper belongs to. null when the scraper has no group.
      • id: Integer
        Group ID.
      • name: String
        Group name.
      • name_en: String
        Group name (English). The key is omitted if not configured.
    • updated_at: String (ISO 8601)
      Scraper last update time (ISO 8601, Asia/Seoul).
    • param_info: Object
      Input parameters after the update. Keys are stable (param1~paramN) and only in-use slots are included. options is not included (action echo).

Error Responses

  • MISSING_API_KEY
    Missing or malformed Authorization header. Send as 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
    No user matches the provided API key. (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
    No scraper matches the ID, or the caller does not have access. (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 must be one of 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 must be a boolean (true/false) or its string form. (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" }
    }

Related Guides

Example Request
  • cURL
  • Ruby
  • Python
  • NodeJS
  • PHP
  • Java
Optional
Example Response 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": "관련도순" }
    }
  }
}