Bots V5 (beta)
Read your bot list and the detail of one bot.
Endpoints
-
GET
/v5/api/botsYour bots: name, credits per item, plan summary and latest collection -
GET
/v5/api/bots/{bot_id}One bot: the fields above plus a settings and notifications summary
Bot list
Bots arrive in creation order (oldest first). Page with limit (default 100, maximum 1000) and cursor. Hidden bots are not listed.
Example request
curl 'https://www.hashscraper.com/v5/api/bots?limit=50' \
-H 'Authorization: Bearer YOUR_API_KEY'
Example response 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"
}
}
]
}Response fields
| Field | Description |
|---|---|
id | The bot ID. Use it as {bot_id} in the other paths. |
name, description | Bot name and description. |
schedule_group | The group it belongs to (id, name, name_en), or null. |
union | Whether the setting that accumulates results (union) is on. |
worker_source | Collection method info (name, version, updated_at, price). |
credit_per_item | Credits per collected item. |
plans_count | Number of plans. null for accounts where multiple plans are not open. |
active_plans | Plans that are on, [{ id, name, label }]. id is a string. |
period_summary | A one-line sentence (in Korean) summarizing the plans that are on, or null when there is none. |
next_run_at | The nearest next run among plans that are on, or null. |
latest_dataset | The latest collection { id, status, data_count, trigger, created_at }, or null if there is none yet. |
created_at, updated_at | When the bot was created and last changed. |
Accounts without multiple plans
If multiple plans are not open on the account yet, plans_count is null, active_plans is an empty array, and only the single legacy plan arrives as period_summary. The plan paths are closed with 404 PLAN_NOT_FOUND.
Example response 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"
}
}
]
}One bot
On top of the list fields you get settings (input_mode, union_enabled) and notifications (webhook.enabled, slack.enabled, slack.channel). Read the details in Settings and Notifications.
Example request
curl 'https://www.hashscraper.com/v5/api/bots/8f3a7c1e9b5d24f6' \
-H 'Authorization: Bearer YOUR_API_KEY'
Example response 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
}
}
}
}When it cannot be found
A bot that does not exist, is hidden, or belongs to someone else is always the same 404 BOT_NOT_FOUND. We never reveal whether another account's bot exists.