A useful AI visibility report often starts with a list of questions. You may want to compare the same questions across platforms, collect search results for a keyword set, or keep an observation for each product category.
ProtoScrape batches let you save up to 100 prompts in one request. The service admits those prompts as your account has available credits and job capacity. You can close the browser after the batch is accepted; collection continues on the server.
Start with a list or CSV
Open Batch collection in your workspace. Choose an engine and paste one prompt per line, or upload a UTF-8 CSV. Download the CSV template from the form for an example.
The CSV requires a query column. Optional engine and tag columns let you mix platforms and attach your own references. A blank engine uses the engine selected in the form. Use the identifiers google_serp, google_ai_mode, chatgpt and perplexity.
query,engine,tag
"Project management software for small teams",google_serp,project-tools
"Compare project management software for small teams",chatgpt,project-tools
"Compare project management software for small teams",perplexity,project-tools
The preview shows the number of prompts and maximum credit cost if every job succeeds. Review it before submitting. Each prompt can contain up to 2,000 characters; a tag can contain up to 128. Current market coverage remains US, English, desktop.
Submit a batch from your application
Use the same server-side API key as single-job requests. Save a unique idempotency key for each logical batch and reuse it with identical input after a network timeout.
curl https://api.protoscrape.com/v1/batches \
-H "Authorization: Bearer $PROTOSCRAPE_API_KEY" \
-H 'Content-Type: application/json' \
-H 'Idempotency-Key: saved-report-batch-001' \
-d '{"name":"Project tools report","max_credits":9,"items":[{"engine":"google_serp","query":"Project management software for small teams","tag":"project-tools"},{"engine":"chatgpt","query":"Compare project management software for small teams","tag":"project-tools"}]}'
The optional max_credits is a quote guard. If the total successful cost exceeds it, the entire request is rejected before any prompts are accepted. In this example, one Google Search success costs one credit and one ChatGPT success costs eight, for a maximum of nine.
A 202 response includes the batch ID. Save that ID and call GET /v1/batches/{batch_id} to read progress and item references. Poll with a delay, such as 20 seconds, and respect Retry-After when rate limited. Version 0.2.1 of our Node.js, Python, Go and PHP libraries includes create, list, inspect, pause, resume and cancel methods.
Understand pending, active and completed work
Pending inputs have been saved but have no job ID or credit reservation yet. Once admitted, an item receives a job ID and its normal credit reservation. Its item status becomes submitted; open that job to see whether it is queued or running.
The batch tracks successful, failed, cancelled and expired items separately. A completed batch means all items have finished; check the counts because completion does not guarantee every item succeeded. Platform availability and query coverage still affect results.
If credits run out, admission waits without skipping ahead to later prompts. Pending inputs may be admitted for up to 24 hours after batch creation. After that deadline, remaining inputs expire without charge. Each admitted job has its own 30-minute execution deadline.
An account can have up to 200 pending batch inputs and make three batch-create requests per minute, within the normal API request limit. Batches share the account's active-job concurrency with individual submissions. Batch acceptance does not promise an immediate start or a fixed throughput.
Pause or cancel without losing completed results
Pause stops new admissions from that batch. Jobs already admitted continue. Resume restarts pending admission before the original deadline; pausing does not extend it.
Cancel remaining cancels pending inputs and jobs that have not completed. Their reserved credits are released. A job that finishes successfully before cancellation keeps its result and charge. Cancellation cannot reverse completed collection.
The API provides the same controls through POST /v1/batches/{batch_id}/pause, /resume and /cancel. These actions take no request fields.
Export the evidence and check the cost
Select up to ten admitted jobs from the batch table and download JSON, NDJSON or CSV. Download further groups as needed. Exports include the batch reference and your tag when present, helping join observations to an existing report. Reading or exporting a result does not create another charge.
Failed, cancelled and expired jobs cost zero credits. Pending inputs also cost zero. The batch shows charged and reserved totals separately; the workspace's credit activity records each reservation, charge or release. See the export guide for formats and limits.
Download needed records within approximately seven days. Batches collect a saved list once. Use signed completion webhooks to receive admitted job results automatically. Native recurring schedules remain planned.