Bulk Data Collection V4
Triggers collections for multiple scrapers in a single request.
Send a top-level schedules array of collection requests. Each element in schedules[] is a single-scraper unit (schedule_id, params, settings) — the same shape as a single collect body — and is referred to as a "collection request" below. Each collection request is processed independently; if some fail, the rest still enter the queue.
The HTTP status is always 200 OK unless the request itself is rejected at parse time. Use the top-level result for the overall outcome at a glance, and branch per-request on the success flag inside data.items[].
Failed collection requests carry success: false along with code, message, and details. See the code field below for the possible values and their meanings.
settings.param_save is decided per request. When true, that request's parameters become the scraper's new defaults. A single bulk call can mix scrapers that persist with scrapers that run one-off, handling that scenario in one shot.
Each collection request follows the same union behavior as a single collect: if the scraper's union is true and a prior data set exists, the most recent data set is reused and that ID is returned as schedule_result_id.
Request Parameters
-
Authorization: HeaderHashScraper API key. Send it in the form
Bearer <api_key>. -
schedules: Array<Object>Array of collection requests. Each element mirrors a single
collectbody:schedule_idplus theparamsandsettingsgroups. Up to 100 items per request; anything larger is rejected withINVALID_PARAM(400).-
schedule_id: StringID of the scraper to collect from. You can copy the Bot ID from Actions → Copy Bot ID on the scraper's detail page.
-
params: optional ObjectThis collection request's parameters group. Place the scraper's
paramNkeys inside this object.-
param1 ~ param10: optional StringScraper input parameters. Send inside this request's
paramsgroup with keysparam1~param10; if the bot has an alias configured you may use it instead ofparamN. The label text (name/name_en) is display-only and not a valid key. Required if marked in-use; ignored otherwise. An empty string ("") is allowed as an intentional empty value. -
<alias>: optional StringUnder
params, you may use the English alias configured for the bot as the key instead ofparamN. e.g.keywordinstead ofparam1.
-
-
settings: optional ObjectThis collection request's endpoint options group. Settings are decided per request and do not affect other requests.
-
param_save: optional Boolean
schedules[].settings.param_save. Whentrue, this collection request's parameters are persisted on its scraper as the new defaults.false(default) applies them only to this call. Decided per request and independent of other requests.
-
-
Response Fields
-
result: StringOverall result.
successwhen every request succeeded,partial_successwhen only some failed, andfailurewhen every request failed. The three labels are mutually exclusive, so a caller can branch on this single field. -
version: StringAPI version.
-
request_id: StringRequest trace ID.
-
elapsed_sec: FloatTime the server took to produce the response, in seconds (Float).
-
count: IntegerNumber of collection requests received (length of the
schedulesarray). -
success_count: IntegerNumber of collection requests that successfully entered the queue.
-
failure_count: IntegerNumber of failed collection requests.
-
data: ObjectCollection request results.
-
items: Array<Object>Per-request result array. The order matches the order of
schedules[].-
schedule_id: StringEcho of this collection request's
schedule_id. May benullif the request omitted it. -
name: StringOn success: name of the scraper. Omitted on failure.
-
success: BooleanWhether this collection request was processed successfully.
-
schedule_result_id: IntegerOn success: the data set ID created for this collection (Integer). Omitted on failure.
-
param_save: BooleanOn success: echo of this collection request's
settings.param_save. Lets the caller see at a glance which requests persisted to their scraper. Omitted on failure. -
param_info: ObjectOn success: snapshot of the parameters used. Keys are stable (
param1~paramN) and each entry containsname(label) andvalue. -
code: StringOn failure: this collection request's error code. One of
MISSING_PARAM(missingschedule_idor a single missing parameter),VALIDATION_FAILED(multiple parameters missing),SCHEDULE_NOT_FOUND,TICKET_EXPIRED,CREDIT_EXHAUSTED,EXECUTION_BLOCKED. -
message: StringOn failure: human-readable English error message.
-
details: ObjectOn failure: code-specific extras.
MISSING_PARAMincludesparam_name,VALIDATION_FAILEDincludes oneerrors[]entry per missing paramN, ticket/credit/execution blocks includereason.
-
-
Error Responses
-
MISSING_API_KEY
{ "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
{ "result": "error", "version": "v4", "request_id": "req_5a8c1f1c-...", "code": "INVALID_API_KEY", "message": "API key is invalid.", "elapsed_sec": 0.0011 } -
MISSING_PARAM (schedules)
{ "result": "error", "version": "v4", "request_id": "req_5a8c1f1c-...", "code": "MISSING_PARAM", "message": "Required parameter is missing.", "elapsed_sec": 0.0013, "details": { "param_name": "schedules" } } -
INVALID_PARAM (schedules)
{ "result": "error", "version": "v4", "request_id": "req_5a8c1f1c-...", "code": "INVALID_PARAM", "message": "schedules must be an array.", "elapsed_sec": 0.0015, "details": { "param_name": "schedules", "type": "Hash" } } -
INVALID_PARAM (too many schedules)
{ "result": "error", "version": "v4", "request_id": "req_5a8c1f1c-...", "code": "INVALID_PARAM", "message": "schedules exceeds the maximum of 100 items.", "elapsed_sec": 0.0014, "details": { "param_name": "schedules", "max": 100, "size": 150 } }
Related Guides
{
"result": "partial_success",
"version": "v4",
"request_id": "req_5a8c1f1c-9b2d-4e7c-9abf-3f7e0a4d1b21",
"elapsed_sec": 0.7843,
"count": 3,
"success_count": 1,
"failure_count": 2,
"data": {
"items": [
{
"schedule_id": "8f3a7c1e9b5d24f6",
"name": "네이버 뉴스 검색",
"success": true,
"schedule_result_id": 239758028,
"param_info": {
"param1": { "name": "키워드", "alias": "keyword", "value": "검색어A" }
}
},
{
"schedule_id": "8f3a7c1e9b5d24f6",
"success": false,
"code": "MISSING_PARAM",
"message": "Required parameter is missing.",
"details": { "param_name": "param2" }
},
{
"schedule_id": "ffffffffffffffff",
"success": false,
"code": "SCHEDULE_NOT_FOUND",
"message": "Schedule not found.",
"details": { "schedule_id": "ffffffffffffffff" }
}
]
}
}