ebaysoldlistingsDOCS

Batch jobs

POST /scrape/batch runs up to 100 keywords in one asynchronous job. Poll it, then read the results as JSON or one CSV.

Process up to 100 keywords in one asynchronous job instead of firing hundreds of calls. Submit a job, poll it, then read the combined results as JSON or download them as one CSV. One batch runs per account at a time.

POST/scrape/batchcost 1 request per keyword that succeeds

Send a JSON body with a keywords array (1 to 100 strings). Any search parameter (ebaySite, count, sold, itemCondition, price and date filters, and so on) applies to every keyword in the job.

curl -X POST "https://api.ebaysoldlistingsapi.com/scrape/batch" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "keywords": ["nintendo switch oled", "steam deck 512gb", "ps5 slim"],
    "ebaySite": "ebay.com",
    "count": 240
  }'

The call returns 202 Accepted with a job id to poll:

Response
{ "jobId": "job_9f2c...", "status": "queued", "total": 3, "resultsUrl": "/scrape/batch/job_9f2c..." }

Poll the job

GET/scrape/batch/{jobId}cost free
Response
{
  "jobId": "job_9f2c...",
  "status": "complete",
  "completed": 3,
  "succeeded": 3,
  "failed": 0,
  "total": 3,
  "ebaySite": "ebay.com",
  "downloadUrl": "/scrape/batch/job_9f2c.../download.csv",
  "results": [
    { "keyword": "nintendo switch oled", "status": "ok", "count": 240, "results": [ /* sales */ ] },
    { "keyword": "steam deck 512gb",     "status": "ok", "count": 212, "results": [ /* sales */ ] },
    { "keyword": "ps5 slim",             "status": "ok", "count": 240, "results": [ /* sales */ ] }
  ]
}

status moves through queued, running and complete. Finished keywords appear in results while the job is still running, so you can start processing early. Poll every few seconds.

Billing.

Each keyword that succeeds counts as one request. A keyword that fails is marked "status": "failed" with an error and code, and is never charged. A busy or temporarily blocked keyword is retried once automatically. The job is rejected up front with 402 if your remaining allowance is smaller than the number of keywords.

On this page