eBay Product Scraper - Prices, Ratings & Listings avatar

eBay Product Scraper - Prices, Ratings & Listings

Pricing

from $1.20 / 1,000 listings

Go to Apify Store
eBay Product Scraper - Prices, Ratings & Listings

eBay Product Scraper - Prices, Ratings & Listings

Scrape eBay product listings in one run. Get titles, prices, conditions, ratings, images, and shipping details for marketplace pricing and product research.

Pricing

from $1.20 / 1,000 listings

Rating

0.0

(0)

Developer

kane liu

kane liu

Maintained by Community

Actor stats

2

Bookmarked

3

Total users

2

Monthly active users

a day ago

Last modified

Share

eBay Scraper

Scrape live eBay product listings across 17 country sites. Acquisition runs on the hosted ebay-com worker; this Actor handles input, Dataset output, and pay-per-event billing.

Architecture: this Apify Actor is a thin client. Each run is one job on the ebay-com worker, submitted through the control plane route https://worker.opendata.best/b/ebay-com (HTTPS + API key). The worker owns its exit; this Actor uses no Apify proxy.

Worker URL is config, not code: the Actor reads WORKER_BASE_URL from Actor environment variables (plus optional per-run workerBaseUrl, limited to allowlisted hosts). There is no built-in fallback: a missing WORKER_BASE_URL fails the run with a configuration error.

  • Search by keyword on the selected eBay market
  • Filter by L1 category (or any raw categoryId)
  • Collect titles, prices, conditions, ratings, shipping, images, and listing URLs
  • Fetches only the rows your maximum total charge pays for; listings without a price are skipped and not charged

Free Apify plan limits (set by this Actor's developer)

LimitFree Apify planPaid Apify plan
Runs of this Actor10 runs totalUnlimited
Rows per runUp to 200Up to your maximum total charge

When the run cap is hit, the run finishes with a clear status message — not an Apify platform error. Paying Apify users are not subject to the run cap.


More Actors like this

Need a marketplace-specific scraper or a different vertical? Use a dedicated Actor below for structured fields. Stay on this Actor (ecommerce-scraper) for eBay keyword search across 17 country sites.

Similar e-commerce scrapers

Prefer another specialized scraper?

If your target has a specialized Actor below, use that first — usually cheaper and more structured than a generic scrape.

Jobs & Freelance

Real Estate

Travel & Stays

Social & Content

Ads Intelligence

Local & Maps

General tools

→ See the full catalog in Related Actors below, or browse apify.com/lentic_clockss.


How to use (no code required)

  1. Click "Try for Free" at the top of this page
  2. Enter a keyword (e.g. iphone 15)
  3. Choose a market (US, GB, DE, … — see Supported markets)
  4. (Optional) Set category / categoryId and maxResults
  5. Click Start — results appear in the Dataset tab, ready to download as Excel, CSV, or JSON

maxResults is the most listing rows for this keyword. It defaults to 70 and values up to 500 remain supported. The whole run stops at your maximum total charge. Free Apify plans are capped at 10 runs and 200 rows per run (see free-tier table above).


Supported markets

CodeSiteCurrency
USebay.comUSD
GBebay.co.ukGBP
DEebay.deEUR
FRebay.frEUR
ITebay.itEUR
ESebay.esEUR
AUebay.com.auAUD
CAebay.caCAD
NLebay.nlEUR
ATebay.atEUR
CHebay.chCHF
IEebay.ieEUR
PLebay.plPLN
BEebay.beEUR
HKebay.com.hkHKD
SGebay.com.sgSGD
MYebay.com.myMYR

Example input

{
"keyword": "iphone 15",
"market": "US",
"category": "electronics",
"maxResults": 20
}

Example output item

{
"itemId": "146637072148",
"title": "Apple iPhone 15 128GB Factory Unlocked Smartphone",
"price": 378.37,
"currency": "USD",
"condition": "Very Good - Refurbished",
"imageUrl": "https://i.ebayimg.com/images/g/example/s-l500.webp",
"itemUrl": "https://www.ebay.com/itm/146637072148",
"market": "US",
"category": "electronics",
"source": "ebay",
"keyword": "iphone 15",
"scrapedAt": "2026-07-21T10:00:00Z",
"sellerUsername": "cocosprinkles",
"sellerPositiveRate": 99.9,
"sellerFeedbackCount": 40649,
"person": { "name": "cocosprinkles", "role": "seller" },
"org": { "name": "The Coco Store", "id": "cocosprinkles" },
"web": { "website": "https://www.ebay.com/str/cocosmartphones", "socials": [] },
"address": { "street": null, "unit": null, "locality": "Brooklyn", "region": "New York", "postalCode": null, "country": "United States", "full": "Brooklyn, New York, United States" },
"geo": null,
"leadSource": "detail",
"leadReveal": "absent",
"leadAbsences": { "phones": "本站无(eBay 全站不展示电话)", "emails": "闸门锁(中介消息需登录)" }
}

Lead & contact fields (seller leads)

Every dataset item carries the full lead-field set below. eBay is an intermediated marketplace: seller contact info (phone, email) is intentionally not public. What eBay does expose is seller identity (username / store / feedback) and a city-level item location — those are populated; everything else is reported as an explicit absence via leadAbsences instead of being silently omitted.

FieldTypeMeaning on eBay
person{"name", "role"}Seller identity: name = eBay username (e.g. cocosprinkles, refurb.kings), role = "seller". From the search card (leadSource=search) or the detail seller card (leadSource=detail).
org{"name", "id"}eBay store from the detail seller card (x-sellercard-atf): name = store display name (e.g. The Coco Store, iGerat Mobile), id = seller username. Also mirrored in sellerStoreName / sellerStoreUrl.
sellerPositiveRate / sellerFeedbackCountnumber / integerFeedback quality signals from the seller card, e.g. 99.9 (% positive) and 40649 (feedback count).
web{"website", "socials"[]}website = seller profile / store / feedback URL (/usr/{username} → /str/{slug}, fdbk/mweb_profile?username=…); socials always [] (eBay has none).
address{"street","unit","locality","region","postalCode","country","full"}Item location, city level only (e.g. Brooklyn, New York, United States; Osaka, Japan). street/unit(门牌)/postalCode always null — eBay never exposes street addresses. Search cards carry country only (locationCountry).
geo{"lat","lng"} or nullAlways null — eBay pages carry no coordinates.
phones[]Always [] — eBay does not display phone numbers anywhere (本站无).
emails[]Always [] — seller contact runs through eBay's intermediated messaging behind login (闸门锁).
leadSourceenumWhich surface produced the lead fields: search (listing card) or detail (item-page enrichment; enrichDetails is on by default).
leadRevealenumAlways absent — eBay has no click-to-reveal contact controls at all.
leadAbsencesobjectPer-subfield absence reasons, consistent with site research: 本站无 (site doesn't have it), 闸门锁 (login-gated), 未验证 (not verified this run).
sellerUsername / sellerStoreName / sellerStoreUrl / locationCountry / watchersscalarsPer-surface raw seller fields the lead objects are built from.

Reveal cost (lead reveal economics)

  • There is nothing to reveal on eBay. A six-surface probe (search, detail, store, seller/feedback, and contact paths) found zero click-to-reveal controls and zero reveal XHRs; phone/email strings never appear in the guest DOM or raw HTML. Hence leadReveal is always absent — the Actor performs no reveal clicks, and reveal cannot add cost or rate-limit pressure.
  • Lead fields are a by-product of surfaces the Actor already visits: seller username/feedback from the search card is free; the full seller + store + item-location set comes from the optional detail step.
  • Detail enrichment cost: when enrichDetails is enabled (default), every delivered row costs one extra page load on the worker (its /itm/{id} page). Runtime grows roughly linearly with maxResults; if the run nears its time limit, the remaining rows keep their search-card fields (leadSource: search) and the run warnings include detail_enrich_partial. There is no separate "reveal" step beyond that.
  • The Actor never logs in, never submits forms, and never attempts to bypass eBay's intermediated-contact gate.

Honest limitations

Verified against site research (2026-08-29 recon report) and cloud smoke runs; leadAbsences on each item uses the same vocabulary:

  • Phone numbers — 本站无. eBay exposes no phone numbers on any guest surface.
  • Email addresses — 闸门锁. Seller contact is only possible through eBay's intermediated messaging system, which requires a login. This Actor stays in guest sessions and does not log in.
  • Street address / 门牌 / postal code — 本站无. eBay item location is city/state/country level only.
  • Social links — 本站无. Seller surfaces carry no social profiles.
  • Geo coordinates — 未验证. Item pages carry no lat/lng; the field is always null.
  • Item location on eBay.de detail pages — 未验证 (known gap). The detail-page item-location extractor matches the English "Located in" wording only; it does not yet match the German wording on ebay.de. DE detail items therefore ship address = all-null with leadAbsences.address.* = 未验证. The US detail chain is verified with real samples (Brooklyn, New York / Baltimore, Maryland). Search-level locationCountry still works on DE.
  • Markets beyond US/DE — search surfaces 未验证. The coverage matrix marks US and DE search/detail as opened; the other 15 market sites' surfaces were not exercised in this mission and are not claimed as covered.
  • Store and seller-feedback deep surfaces — 未验证. Store pages (/str/{slug}) and feedback profiles exist and are linked from web.website, but deep scraping of those surfaces was not exhausted during research.

Runtime behavior

  • Acquisition: one job per run on the ebay-com worker via the control plane (/b/ebay-com)
  • Proxy: the worker's own exit; no Apify proxy. A failed job is submitted once more only on a transient failure (worker restart, edge 5xx); blocks, empty results and input errors end the run
  • Billing: before the job starts, maxResults is lowered to the rows your maximum total charge covers at the live event prices; when it cannot cover one row, the run ends without calling the worker (RUN_SUMMARY.status=CHARGE_LIMIT)
  • Memory: 1024 MB default (thin Actor; browser runs on the worker)
  • Worker env: production WORKER_BASE_URL + WORKER_AUTH (secret @ebayWorkerApiKey)

FAQ

Q: Why did my free-plan run stop after 10 runs? A: Free Apify plan users get 10 runs of this Actor and up to 200 rows per run. These limits are set by the Actor developer (not Apify). When you hit the run cap, the run finishes with a clear status message — it is not a platform bug. Upgrade to a paid Apify plan for unlimited runs.

API

curl "https://api.apify.com/v2/acts/lentic_clockss~ecommerce-scraper/runs?token=YOUR_TOKEN" \
-X POST \
-H "Content-Type: application/json" \
-d '{"keyword":"iphone 15","market":"US","category":"electronics","maxResults":10}'

All 77 public Actors from [lentic_clockss]. Click a name to open the Store detail page.

Jobs & Freelance

Real Estate

E-commerce

Travel & Stays

Social & Content

Ads Intelligence

Local & Maps

General Tools

→ Browse the full profile: apify.com/lentic_clockss