봇 V5 (beta)

내 봇 목록과 봇 하나의 상세를 읽습니다.

봇은 수집 대상 사이트와 수집 방식을 묶은 단위입니다(v4 의 schedules). 목록·상세 모두 읽기 전용이고, 수집 조건은 설정, 자동 수집은 주기에서 다룹니다.

엔드포인트

  • GET /v5/api/bots 내 봇 목록 — 이름·건당 크레딧·주기 요약·최근 수집
  • GET /v5/api/bots/{bot_id} 봇 하나 — 위 칸과 설정 요약·알림 요약

봇 목록

만든 순서(오래된 것부터)로 옵니다. limit(기본 100, 최대 1000)과 cursor로 이어 받습니다. 숨긴 봇은 나오지 않습니다.

요청 예시
curl 'https://www.hashscraper.com/v5/api/bots?limit=50' \
  -H 'Authorization: Bearer YOUR_API_KEY'
응답 예시 200
{
  "result": "success",
  "version": "v5",
  "request_id": "req_5a8c1f1c-9b2d-4e7c-9abf-3f7e0a4d1b21",
  "elapsed_sec": 0.0123,
  "count": 1,
  "next_cursor": null,
  "data": [
    {
      "id": "8f3a7c1e9b5d24f6",
      "name": "Sample shopping bot",
      "description": "Collects product lists by keyword.",
      "schedule_group": null,
      "union": false,
      "created_at": "2026-08-12T10:21:05+09:00",
      "updated_at": "2026-10-01T18:02:40+09:00",
      "worker_source": {
        "name": "Shopping list",
        "version": 12,
        "updated_at": "2026-09-20T11:00:00+09:00",
        "price": 5
      },
      "credit_per_item": 5,
      "plans_count": 2,
      "active_plans": [
        {
          "id": "512",
          "name": "주기 2",
          "label": "매주 월요일 09:00 (KST)"
        }
      ],
      "period_summary": "주기 2 · 매주 월요일 09:00 (KST)",
      "next_run_at": "2026-10-05T09:00:00+09:00",
      "latest_dataset": {
        "id": 239758028,
        "status": "done",
        "data_count": 1280,
        "trigger": "period",
        "created_at": "2026-09-28T09:00:03+09:00"
      }
    }
  ]
}

응답 칸

칸설명
id봇 ID. 다른 경로의 {bot_id}에 넣습니다.
name·description봇 이름과 설명.
schedule_group속한 그룹(id·name·name_en), 없으면 null.
union수집 결과를 이어 쌓는 설정(유니온)이 켜져 있는지.
worker_source수집 방식 정보(name·version·updated_at·price).
credit_per_item건당 크레딧.
plans_count주기 개수. 여러 주기 기능이 닫힌 계정은 null.
active_plans켜져 있는 주기 [{ id, name, label }]. id는 글자입니다.
period_summary켜진 주기를 한 줄로 요약한 문장(한국어). 주기가 없으면 null.
next_run_at켜진 주기 중 가장 가까운 다음 수집 시각, 없으면 null.
latest_dataset가장 최근 수집 { id, status, data_count, trigger, created_at }, 아직 없으면 null.
created_at·updated_at봇을 만든 시각·마지막으로 바뀐 시각.

여러 주기 기능이 닫힌 계정

계정에 여러 주기 기능이 아직 열려 있지 않으면 plans_count는 null, active_plans는 빈 배열이고, 이전에 쓰던 주기 한 줄만 period_summary로 옵니다. 주기 경로는 404 PLAN_NOT_FOUND로 닫혀 있습니다.

응답 예시 200
{
  "result": "success",
  "version": "v5",
  "request_id": "req_5a8c1f1c-9b2d-4e7c-9abf-3f7e0a4d1b21",
  "elapsed_sec": 0.0123,
  "count": 1,
  "next_cursor": null,
  "data": [
    {
      "id": "8f3a7c1e9b5d24f6",
      "name": "Sample shopping bot",
      "description": "Collects product lists by keyword.",
      "schedule_group": null,
      "union": false,
      "created_at": "2026-08-12T10:21:05+09:00",
      "updated_at": "2026-10-01T18:02:40+09:00",
      "worker_source": {
        "name": "Shopping list",
        "version": 12,
        "updated_at": "2026-09-20T11:00:00+09:00",
        "price": 5
      },
      "credit_per_item": 5,
      "plans_count": null,
      "active_plans": [],
      "period_summary": "매일 09:00 (KST)",
      "next_run_at": "2026-10-05T09:00:00+09:00",
      "latest_dataset": {
        "id": 239758028,
        "status": "done",
        "data_count": 1280,
        "trigger": "period",
        "created_at": "2026-09-28T09:00:03+09:00"
      }
    }
  ]
}

봇 하나

목록의 칸에 settings(input_mode·union_enabled)와 notifications(webhook.enabled·slack.enabled·slack.channel)가 더해집니다. 자세한 값은 설정·알림·연동에서 읽습니다.

요청 예시
curl 'https://www.hashscraper.com/v5/api/bots/8f3a7c1e9b5d24f6' \
  -H 'Authorization: Bearer YOUR_API_KEY'
응답 예시 200
{
  "result": "success",
  "version": "v5",
  "request_id": "req_5a8c1f1c-9b2d-4e7c-9abf-3f7e0a4d1b21",
  "elapsed_sec": 0.0123,
  "data": {
    "id": "8f3a7c1e9b5d24f6",
    "name": "Sample shopping bot",
    "description": "Collects product lists by keyword.",
    "schedule_group": null,
    "union": false,
    "created_at": "2026-08-12T10:21:05+09:00",
    "updated_at": "2026-10-01T18:02:40+09:00",
    "worker_source": {
      "name": "Shopping list",
      "version": 12,
      "updated_at": "2026-09-20T11:00:00+09:00",
      "price": 5
    },
    "credit_per_item": 5,
    "plans_count": 2,
    "active_plans": [
      {
        "id": "512",
        "name": "주기 2",
        "label": "매주 월요일 09:00 (KST)"
      }
    ],
    "period_summary": "주기 2 · 매주 월요일 09:00 (KST)",
    "next_run_at": "2026-10-05T09:00:00+09:00",
    "latest_dataset": {
      "id": 239758028,
      "status": "done",
      "data_count": 1280,
      "trigger": "period",
      "created_at": "2026-09-28T09:00:03+09:00"
    },
    "settings": {
      "input_mode": "direct",
      "union_enabled": false
    },
    "notifications": {
      "webhook": {
        "enabled": true
      },
      "slack": {
        "enabled": false,
        "channel": null
      }
    }
  }
}

찾을 수 없을 때

없는 봇·숨긴 봇·남의 봇은 모두 같은 404 BOT_NOT_FOUND입니다. 남의 봇이 있는지는 알려 주지 않습니다.

함께 보면 좋은 가이드