{
  "data": {
    "id": "4kE2H1DS8w7oBB0Z1",
    "actId": "viDUFMwWczdagyjtn",
    "userId": "NL4ThgItAwaoBlffQ",
    "startedAt": "2026-11-08T17:49:33.437Z",
    "finishedAt": "2026-11-08T17:49:43.775Z",
    "status": "SUCCEEDED",
    "meta": {
      "origin": "CLI"
    },
    "stats": {
      "durationMillis": 10261,
      "runTimeSecs": 10.261,
      "computeUnits": 0.011401111111111112,
      "imageSizeBytes": 332576256
    },
    "options": {
      "useCache": true,
      "betaPackages": false,
      "memoryMbytes": 4096,
      "diskMbytes": 8192
    },
    "createdByOrganizationMemberUserId": "zifX0mkAFMHe8CatY",
    "exitCode": 0,
    "inputSchema": "{\n  \"title\": \"eBay Multi-Marketplace Scraper Input\",\n  \"type\": \"object\",\n  \"schemaVersion\": 1,\n  \"properties\": {\n    \"mode\": {\n      \"title\": \"What to scrape\",\n      \"type\": \"string\",\n      \"description\": \"Choose a data surface: keyword search, category browse, item details, seller feedback or a store's active listings.\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"search\",\n        \"browse\",\n        \"item\",\n        \"seller\",\n        \"stores\"\n      ],\n      \"enumTitles\": [\n        \"Keyword search — listings matching your terms\",\n        \"Browse a category — listings inside a category\",\n        \"Item details — open specific item pages\",\n        \"Seller profile — feedback score, ratings and recent feedback\",\n        \"Store listings — active items from a store or seller\"\n      ],\n      \"default\": \"search\",\n      \"prefill\": \"search\",\n      \"sectionCaption\": \"Mode\"\n    },\n    \"searchQueries\": {\n      \"title\": \"Search keywords\",\n      \"type\": \"array\",\n      \"description\": \"Keywords to search on the selected marketplace. One search per entry. Use quotes for exact phrases.\",\n      \"editor\": \"stringList\",\n      \"default\": [],\n      \"prefill\": [\n        \"laptop\"\n      ]\n    },\n    \"categories\": {\n      \"title\": \"Category IDs or URLs\",\n      \"type\": \"array\",\n      \"description\": \"Category IDs (for example 177) or eBay /b/ category URLs. Used in Browse mode.\",\n      \"editor\": \"stringList\",\n      \"default\": []\n    },\n    \"browseKeyword\": {\n      \"title\": \"Keyword inside category\",\n      \"type\": \"string\",\n      \"description\": \"Optional keyword to narrow category browsing. Leave blank to browse the whole category.\",\n      \"editor\": \"textfield\"\n    },\n    \"itemIds\": {\n      \"title\": \"Item IDs or URLs\",\n      \"type\": \"array\",\n      \"description\": \"eBay item IDs (for example 257633093777) or full /itm/ URLs. Used in Item details mode.\",\n      \"editor\": \"stringList\",\n      \"default\": []\n    },\n    \"sellerUsernames\": {\n      \"title\": \"Seller usernames or profile URLs\",\n      \"type\": \"array\",\n      \"description\": \"eBay seller usernames (for example discountcomputerdepot) or /usr/ profile URLs. Used in Seller profile mode.\",\n      \"editor\": \"stringList\",\n      \"default\": []\n    },\n    \"storeNames\": {\n      \"title\": \"Store names or URLs\",\n      \"type\": \"array\",\n      \"description\": \"eBay store names or /str/ store URLs. Used in Store listings mode.\",\n      \"editor\": \"stringList\",\n      \"default\": []\n    },\n    \"startUrls\": {\n      \"title\": \"Paste any eBay URLs (optional shortcut)\",\n      \"type\": \"array\",\n      \"description\": \"Legacy-friendly shortcut: paste search, category, item, seller or store URLs and each is routed to the right mode automatically. Ignored when the arrays above already cover that source.\",\n      \"editor\": \"requestListSources\",\n      \"default\": []\n    },\n    \"marketplace\": {\n      \"title\": \"Marketplace\",\n      \"type\": \"string\",\n      \"description\": \"Country site used for searches and for inputs that are not already a URL.\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"US\",\n        \"GB\",\n        \"DE\",\n        \"FR\",\n        \"IT\",\n        \"ES\",\n        \"CA\",\n        \"AU\"\n      ],\n      \"enumTitles\": [\n        \"United States (ebay.com)\",\n        \"United Kingdom (ebay.co.uk)\",\n        \"Germany (ebay.de)\",\n        \"France (ebay.fr)\",\n        \"Italy (ebay.it)\",\n        \"Spain (ebay.es)\",\n        \"Canada (ebay.ca)\",\n        \"Australia (ebay.com.au)\"\n      ],\n      \"default\": \"US\",\n      \"prefill\": \"US\",\n      \"sectionCaption\": \"Marketplace & filters\"\n    },\n    \"condition\": {\n      \"title\": \"Item condition\",\n      \"type\": \"string\",\n      \"description\": \"Filter listings by condition. Leave on All conditions for every condition.\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"\",\n        \"new\",\n        \"openBox\",\n        \"manufacturerRefurbished\",\n        \"refurbished\",\n        \"used\",\n        \"forParts\"\n      ],\n      \"enumTitles\": [\n        \"All conditions\",\n        \"New\",\n        \"Open box\",\n        \"Manufacturer refurbished\",\n        \"Seller refurbished\",\n        \"Used\",\n        \"For parts or not working\"\n      ],\n      \"default\": \"\"\n    },\n    \"buyingFormat\": {\n      \"title\": \"Buying format\",\n      \"type\": \"string\",\n      \"description\": \"Show only Buy It Now listings, only auctions, or both.\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"\",\n        \"buyItNow\",\n        \"auction\"\n      ],\n      \"enumTitles\": [\n        \"Buy It Now & auctions\",\n        \"Buy It Now only\",\n        \"Auctions only\"\n      ],\n      \"default\": \"\"\n    },\n    \"minPrice\": {\n      \"title\": \"Minimum price\",\n      \"type\": \"number\",\n      \"description\": \"Minimum item price in the marketplace's local currency.\",\n      \"editor\": \"number\",\n      \"minimum\": 0,\n      \"maximum\": 1000000000\n    },\n    \"maxPrice\": {\n      \"title\": \"Maximum price\",\n      \"type\": \"number\",\n      \"description\": \"Maximum item price in the marketplace's local currency.\",\n      \"editor\": \"number\",\n      \"minimum\": 0,\n      \"maximum\": 1000000000\n    },\n    \"sortBy\": {\n      \"title\": \"Sort order\",\n      \"type\": \"string\",\n      \"description\": \"How to order search results.\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"bestMatch\",\n        \"priceLowest\",\n        \"priceHighest\",\n        \"endingSoonest\",\n        \"newlyListed\"\n      ],\n      \"enumTitles\": [\n        \"Best match\",\n        \"Price: lowest first\",\n        \"Price: highest first\",\n        \"Ending soonest\",\n        \"Newly listed\"\n      ],\n      \"default\": \"bestMatch\"\n    },\n    \"freeShipping\": {\n      \"title\": \"Free shipping only\",\n      \"type\": \"boolean\",\n      \"description\": \"Keep only listings that advertise free shipping/delivery.\",\n      \"default\": false,\n      \"prefill\": false\n    },\n    \"returnsAccepted\": {\n      \"title\": \"Returns accepted only\",\n      \"type\": \"boolean\",\n      \"description\": \"Keep only listings that accept returns.\",\n      \"default\": false,\n      \"prefill\": false\n    },\n    \"itemLocation\": {\n      \"title\": \"Item location\",\n      \"type\": \"string\",\n      \"description\": \"Prefer items located in the marketplace country or show worldwide results.\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"\",\n        \"domestic\",\n        \"worldwide\"\n      ],\n      \"enumTitles\": [\n        \"Any location\",\n        \"Domestic only\",\n        \"Worldwide\"\n      ],\n      \"default\": \"\"\n    },\n    \"maxItems\": {\n      \"title\": \"Max records\",\n      \"type\": \"integer\",\n      \"description\": \"Upper limit on item rows (or seller/store records) across all sources.\",\n      \"default\": 50,\n      \"prefill\": 2,\n      \"minimum\": 1,\n      \"maximum\": 10000,\n      \"sectionCaption\": \"Result limits\"\n    },\n    \"maxPages\": {\n      \"title\": \"Max pages per source\",\n      \"type\": \"integer\",\n      \"description\": \"Stop after this many result pages per search, category or store. Each page holds up to 240 listings.\",\n      \"default\": 10,\n      \"prefill\": 1,\n      \"minimum\": 1,\n      \"maximum\": 200\n    },\n    \"includeItemSpecifics\": {\n      \"title\": \"Include item specifics (Item details mode)\",\n      \"type\": \"boolean\",\n      \"description\": \"Add the full item-specifics table (brand, model, MPN, dimensions, features and other aspects) to item records.\",\n      \"default\": true,\n      \"prefill\": true\n    },\n    \"includeRecentFeedback\": {\n      \"title\": \"Include recent feedback (Seller profile mode)\",\n      \"type\": \"boolean\",\n      \"description\": \"Add up to 25 recent feedback entries with buyer, rating, price and date to seller records.\",\n      \"default\": true,\n      \"prefill\": true\n    }\n  }\n}",
    "readme": "# eBay Multi-Marketplace Listing & Seller Data Scraper\n\nCollect structured eBay data from eight country sites without cookies, logins, API keys or proxy setup. Five modes cover the whole buyer-side surface: keyword search, category browse, item details, seller feedback profiles, and store inventories. Every row is server-rendered data from the live site with prices, conditions, seller ratings, shipping, returns, item specifics and pagination across US, UK, Germany, France, Italy, Spain, Canada and Australia.\n\n## What can you scrape?\n\n| Mode | What it returns | Good for |\n|---|---|---|\n| **Keyword search** | Listings matching one or more queries, with filters and up to 240 rows per page | Price monitoring, assortment tracking, resale research |\n| **Category browse** | Listings inside a category ID or `/b/` URL, optionally narrowed by a keyword | Category-wide price scans and new-arrival feeds |\n| **Item details** | Full item page: JSON-LD product data, item specifics, seller, shipping, returns, images | Product enrichment and catalog building |\n| **Seller profile** | Feedback score, positive percentage, 1/6/12-month positive-neutral-negative counts, member-since, store badge and recent feedback | Seller vetting, lead scoring, competitor research |\n| **Store listings** | Active listings from a store or seller, enriched with store name, tagline, feedback percentage, items sold and followers | Store monitoring and inventory snapshots |\n\n## Data source and access\n\nThe actor reads eBay's public server-rendered pages. eBay fronts its sites with Akamai Bot Manager, so a plain request from many IP ranges receives a generic error page. The actor first tries eBay directly, then transparently falls back to the public Google Translate website mirror of the same page. The mirror carries the identical DOM, JSON-LD, prices and currencies, so no data changes. There are **no cookies, no login, no API key and no Apify Proxy group** in the default path; a `proxy` input from older saved tasks is accepted and ignored.\n\n## Input\n\n| Field | Type | Default | Description |\n|---|---|---|---|\n| `mode` | select | `search` | `search`, `browse`, `item`, `seller` or `stores` |\n| `searchQueries` | string list | – | Keywords for search mode. One search per entry |\n| `categories` | string list | – | Category IDs (for example `177`), `/b/` URLs or `_sacat` search URLs for browse mode |\n| `browseKeyword` | string | – | Optional keyword to narrow a category |\n| `itemIds` | string list | – | Item IDs or `/itm/` URLs for item mode |\n| `sellerUsernames` | string list | – | Seller usernames or `/usr/` URLs for seller mode |\n| `storeNames` | string list | – | Store names or `/str/` URLs for stores mode |\n| `startUrls` | URL list | – | Shortcut: paste any eBay URLs and each is routed by type. Mixed search, category, item, seller and store URLs run together and share `maxItems` |\n| `marketplace` | select | `US` | `US`, `GB`, `DE`, `FR`, `IT`, `ES`, `CA`, `AU` |\n| `condition` | select | `\"\"` | All, new, open box, manufacturer refurbished, seller refurbished, used, for parts |\n| `buyingFormat` | select | `\"\"` | Both, Buy It Now only, auctions only |\n| `minPrice` / `maxPrice` | number | – | Price range in the marketplace currency |\n| `sortBy` | select | `bestMatch` | Best match, price low/high, ending soonest, newly listed |\n| `freeShipping` | boolean | false | Keep free shipping/delivery listings only |\n| `returnsAccepted` | boolean | false | Keep listings that accept returns |\n| `itemLocation` | select | `\"\"` | Any location, domestic only, worldwide |\n| `maxItems` | integer | 50 | Record cap across all sources (1–10,000) |\n| `maxPages` | integer | 10 | Page cap per search/category/store (1–200) |\n| `includeItemSpecifics` | boolean | true | Add the item-specifics table to item records |\n| `includeRecentFeedback` | boolean | true | Add up to 25 recent feedback rows to seller records |\n\nLegacy keys are mapped in code, not shown in the form: `keywords` and `query` become `searchQueries`, `startUrls` are routed by URL type, and `proxy` is ignored.\n\n## Examples\n\n### Keyword search with filters\n\n```json\n{\n  \"mode\": \"search\",\n  \"searchQueries\": [\"thinkpad\", \"macbook pro\"],\n  \"marketplace\": \"GB\",\n  \"condition\": \"used\",\n  \"buyingFormat\": \"buyItNow\",\n  \"minPrice\": 200,\n  \"maxPrice\": 900,\n  \"sortBy\": \"priceLowest\",\n  \"maxItems\": 120,\n  \"maxPages\": 2\n}\n```\n\n### Browse a category\n\n```json\n{\n  \"mode\": \"browse\",\n  \"categories\": [\"177\", \"https://www.ebay.de/b/PC-Laptops-Netbooks/177/bn_317584\"],\n  \"marketplace\": \"DE\",\n  \"maxItems\": 240\n}\n```\n\n### Item, seller and store modes\n\n```json\n{\n  \"mode\": \"item\",\n  \"itemIds\": [\"257633093777\", \"https://www.ebay.co.uk/itm/276493839365\"],\n  \"includeItemSpecifics\": true\n}\n```\n\n```json\n{\n  \"mode\": \"seller\",\n  \"sellerUsernames\": [\"discountcomputerdepot\"],\n  \"includeRecentFeedback\": true\n}\n```\n\n```json\n{\n  \"mode\": \"stores\",\n  \"storeNames\": [\"discountcomputerdepot\"],\n  \"marketplace\": \"US\",\n  \"maxItems\": 60\n}\n```\n\n## Output\n\nFields are omitted when eBay genuinely does not show them for a record; the actor never emits `null`, empty strings, empty lists or empty objects.\n\n### Listing and item fields\n\n| Field | Description |\n|---|---|\n| `recordType` | `item`, `seller` or `store` |\n| `id` / `itemId` | eBay item ID |\n| `url` | Canonical item URL |\n| `title`, `imageUrl`, `images` | Listing title and image URLs |\n| `price`, `priceValue`, `priceCurrency` | Formatted price, numeric value and ISO currency |\n| `wasPrice`, `wasPriceValue`, `discountPercent` | Original price and discount when shown |\n| `condition`, `conditionDescription` | Item condition (localized card labels are normalized to eBay's English condition names) and the full condition explanation |\n| `brand`, `model`, `mpn`, `gtin`, `color` | Product identifiers from JSON-LD |\n| `seller`, `sellerFeedbackPercent`, `sellerFeedbackCount`, `sellerFeedbackScore` | Seller identity and reputation |\n| `productRating`, `reviewCount` | Product star rating and number of ratings |\n| `watchCount`, `soldCount`, `bids`, `timeLeft` | Demand and auction signals |\n| `listingType`, `isBestOffer`, `isSponsored`, `programBadge` | Format, offers, sponsored flag and programme badge |\n| `shippingCost`, `shippingCostValue`, `shippingCurrency`, `deliveryEstimate`, `shippingDestination` | Shipping data |\n| `itemLocation`, `returns`, `returnDays`, `returnFees` | Location and returns policy |\n| `quantityAvailable`, `quantitySold` | Stock and units sold |\n| `paymentMethods` | Accepted payment methods |\n| `itemSpecifics`, `sellerNotes` | Full item-specifics table and seller notes |\n| `categoryPath` | Breadcrumb categories |\n| `availability`, `startTime` | Stock state and listing start time |\n| `marketplace` | Marketplace code |\n| `storeName`, `storeUrl`, `storeTagline`, `storeFeedbackPercent`, `storeItemsSold`, `storeFollowers` | Store context on store-mode rows |\n| `searchUrl`, `scrapedAt` | Source search URL and ISO scrape time |\n\n### Seller profile fields\n\n| Field | Description |\n|---|---|\n| `sellerUsername`, `sellerProfileUrl` | Seller identity and feedback URL |\n| `sellerFeedbackScore` | Lifetime feedback score |\n| `positiveFeedbackPercent` | Positive feedback percentage for the last 12 months |\n| `positiveFeedbackCount`, `neutralFeedbackCount`, `negativeFeedbackCount` | 12-month counts |\n| `feedbackBreakdown` | Counts for the last 1, 6 and 12 months |\n| `totalFeedbackReceived`, `automatedFeedbackCount` | Total and automated feedback |\n| `memberSince`, `memberCountry` | Membership date and country |\n| `isEbayStore`, `isTopRatedSeller`, `storeUrl` | Store and top-rated flags |\n| `recentFeedback` | Up to 25 rows: comment, item title/ID, rating, buyer, price, when |\n\n### Store record fields (when a store has no active listings)\n\n`recordType: \"store\"`, `storeName`, `storeUrl`, `storeTagline`, `storeFeedbackPercent`, `storeItemsSold`, `storeFollowers`, `storeListingCount`, `storeCategories`, `marketplace`, `scrapedAt`.\n\n## Pages, limits and reliability\n\n- Each result page asks for 60, 120 or 240 rows depending on the remaining record budget, up to eBay's 200-page search cap.\n- Pagination stops on `maxItems`, `maxPages`, an empty page, a short page, a repeated page (no new IDs) or an explicit \"no exact matches\" page.\n- Network errors, 403/429/5xx responses and throttle pages are retried with exponential backoff and jitter; the client switches between direct eBay and the public mirror automatically.\n- Duplicate item IDs are removed across queries, categories, stores and mixed URL types; a richer item-detail row replaces a duplicate listing row.\n- Localized condition, seller-feedback and shipping labels from the German, French, Italian and Spanish sites are normalized to the same English field values as the US, UK, Canadian and Australian sites.\n- No wall-clock cut-off is used, so the actor does not silently return fewer rows than requested.\n\n## FAQ\n\n**Do I need cookies or an API key?** No. The actor never asks for credentials and does not use an eBay developer account.\n\n**Do I need to configure a proxy?** No. If an old task still sends a `proxy` object, the actor logs that it is ignored and continues without it.\n\n**Why do some listings lack watch or sold counts?** eBay only renders those counters on some cards and only above its own thresholds. Missing means the source did not show it.\n\n**Can I scrape sold/completed listings?** Not without an eBay login, which this actor deliberately does not require. eBay serves a sign-in wall for `LH_Sold=1`/`LH_Complete=1`.\n\n**How are prices represented?** `price` is the display string (`$339.99`, `£189.99`, `EUR 229,00`, `AU $375.00`); `priceValue` is the numeric value and `priceCurrency` the ISO code.\n\n**How many rows can one run return?** Up to `maxItems` (maximum 10,000), subject to eBay's own 200-page ceiling per source. Split very large jobs by category, query or price range.\n\n**Is this fast?** Listing modes use one HTTP request per page. Item mode uses one request per item. Seller and store modes add one profile/store request per source.\n\n## Limitations\n\n- Sold/completed listings are not available without an eBay account; the actor does not use cookies.\n- eBay caps search pagination at 200 pages per query. For a broader sweep, split by category, keyword or price range.\n- eBay stores show only a curated storefront plus the seller's active listings; ended listings are not part of a store inventory.\n- Item descriptions are not included because eBay serves them from a separate signed frame; the structured specifics table is included instead.\n- Some fields are category- or listing-conditional (bids, watchers, sold counts, GTIN, return policy). They are omitted for records where eBay does not display them.\n- eBay does not render sponsored labels inside the card HTML on the German, Italian and Spanish sites, so `isSponsored` is reliable on the US, UK, Canadian, Australian and French sites and simply omitted elsewhere.\n- Category browse uses the category name (from the ID page title or the `/b/` URL slug) as the search phrase because eBay's keywordless category page is a navigation page, not a listing river. If eBay blocks that category page from a run's IP, the actor falls back to eBay's broad `all` query inside the category; very unusual titles may then be missed, so narrow with `browseKeyword` for a precise sweep.\n- Store statistics are shown only when eBay renders them on the storefront; sellers without a storefront return their active listings with store name and URL only.\n",
    "actorDefinition": {
      "actorSpecification": 1,
      "name": "ebay-multi-marketplace-listing-and-seller-data",
      "title": "eBay Multi-Marketplace Listing & Seller Data Scraper",
      "description": "Search eBay listings, browse categories, open item pages, read seller feedback profiles and pull store inventories across eight marketplaces, with prices, conditions, seller ratings, shipping, returns, item specifics and pagination.",
      "version": "1.0",
      "minMemoryMbytes": 1024,
      "defaultRunOptions": {
        "build": "latest",
        "timeoutSecs": 3600,
        "memoryMbytes": 1024
      },
      "input": {
        "title": "eBay Multi-Marketplace Scraper Input",
        "type": "object",
        "schemaVersion": 1,
        "properties": {
          "mode": {
            "title": "What to scrape",
            "type": "string",
            "description": "Choose a data surface: keyword search, category browse, item details, seller feedback or a store's active listings.",
            "editor": "select",
            "enum": [
              "search",
              "browse",
              "item",
              "seller",
              "stores"
            ],
            "enumTitles": [
              "Keyword search — listings matching your terms",
              "Browse a category — listings inside a category",
              "Item details — open specific item pages",
              "Seller profile — feedback score, ratings and recent feedback",
              "Store listings — active items from a store or seller"
            ],
            "default": "search",
            "prefill": "search",
            "sectionCaption": "Mode"
          },
          "searchQueries": {
            "title": "Search keywords",
            "type": "array",
            "description": "Keywords to search on the selected marketplace. One search per entry. Use quotes for exact phrases.",
            "editor": "stringList",
            "default": [],
            "prefill": [
              "laptop"
            ]
          },
          "categories": {
            "title": "Category IDs or URLs",
            "type": "array",
            "description": "Category IDs (for example 177) or eBay /b/ category URLs. Used in Browse mode.",
            "editor": "stringList",
            "default": []
          },
          "browseKeyword": {
            "title": "Keyword inside category",
            "type": "string",
            "description": "Optional keyword to narrow category browsing. Leave blank to browse the whole category.",
            "editor": "textfield"
          },
          "itemIds": {
            "title": "Item IDs or URLs",
            "type": "array",
            "description": "eBay item IDs (for example 257633093777) or full /itm/ URLs. Used in Item details mode.",
            "editor": "stringList",
            "default": []
          },
          "sellerUsernames": {
            "title": "Seller usernames or profile URLs",
            "type": "array",
            "description": "eBay seller usernames (for example discountcomputerdepot) or /usr/ profile URLs. Used in Seller profile mode.",
            "editor": "stringList",
            "default": []
          },
          "storeNames": {
            "title": "Store names or URLs",
            "type": "array",
            "description": "eBay store names or /str/ store URLs. Used in Store listings mode.",
            "editor": "stringList",
            "default": []
          },
          "startUrls": {
            "title": "Paste any eBay URLs (optional shortcut)",
            "type": "array",
            "description": "Legacy-friendly shortcut: paste search, category, item, seller or store URLs and each is routed to the right mode automatically. Ignored when the arrays above already cover that source.",
            "editor": "requestListSources",
            "default": []
          },
          "marketplace": {
            "title": "Marketplace",
            "type": "string",
            "description": "Country site used for searches and for inputs that are not already a URL.",
            "editor": "select",
            "enum": [
              "US",
              "GB",
              "DE",
              "FR",
              "IT",
              "ES",
              "CA",
              "AU"
            ],
            "enumTitles": [
              "United States (ebay.com)",
              "United Kingdom (ebay.co.uk)",
              "Germany (ebay.de)",
              "France (ebay.fr)",
              "Italy (ebay.it)",
              "Spain (ebay.es)",
              "Canada (ebay.ca)",
              "Australia (ebay.com.au)"
            ],
            "default": "US",
            "prefill": "US",
            "sectionCaption": "Marketplace & filters"
          },
          "condition": {
            "title": "Item condition",
            "type": "string",
            "description": "Filter listings by condition. Leave on All conditions for every condition.",
            "editor": "select",
            "enum": [
              "",
              "new",
              "openBox",
              "manufacturerRefurbished",
              "refurbished",
              "used",
              "forParts"
            ],
            "enumTitles": [
              "All conditions",
              "New",
              "Open box",
              "Manufacturer refurbished",
              "Seller refurbished",
              "Used",
              "For parts or not working"
            ],
            "default": ""
          },
          "buyingFormat": {
            "title": "Buying format",
            "type": "string",
            "description": "Show only Buy It Now listings, only auctions, or both.",
            "editor": "select",
            "enum": [
              "",
              "buyItNow",
              "auction"
            ],
            "enumTitles": [
              "Buy It Now & auctions",
              "Buy It Now only",
              "Auctions only"
            ],
            "default": ""
          },
          "minPrice": {
            "title": "Minimum price",
            "type": "number",
            "description": "Minimum item price in the marketplace's local currency.",
            "editor": "number",
            "minimum": 0,
            "maximum": 1000000000
          },
          "maxPrice": {
            "title": "Maximum price",
            "type": "number",
            "description": "Maximum item price in the marketplace's local currency.",
            "editor": "number",
            "minimum": 0,
            "maximum": 1000000000
          },
          "sortBy": {
            "title": "Sort order",
            "type": "string",
            "description": "How to order search results.",
            "editor": "select",
            "enum": [
              "bestMatch",
              "priceLowest",
              "priceHighest",
              "endingSoonest",
              "newlyListed"
            ],
            "enumTitles": [
              "Best match",
              "Price: lowest first",
              "Price: highest first",
              "Ending soonest",
              "Newly listed"
            ],
            "default": "bestMatch"
          },
          "freeShipping": {
            "title": "Free shipping only",
            "type": "boolean",
            "description": "Keep only listings that advertise free shipping/delivery.",
            "default": false,
            "prefill": false
          },
          "returnsAccepted": {
            "title": "Returns accepted only",
            "type": "boolean",
            "description": "Keep only listings that accept returns.",
            "default": false,
            "prefill": false
          },
          "itemLocation": {
            "title": "Item location",
            "type": "string",
            "description": "Prefer items located in the marketplace country or show worldwide results.",
            "editor": "select",
            "enum": [
              "",
              "domestic",
              "worldwide"
            ],
            "enumTitles": [
              "Any location",
              "Domestic only",
              "Worldwide"
            ],
            "default": ""
          },
          "maxItems": {
            "title": "Max records",
            "type": "integer",
            "description": "Upper limit on item rows (or seller/store records) across all sources.",
            "default": 50,
            "prefill": 2,
            "minimum": 1,
            "maximum": 10000,
            "sectionCaption": "Result limits"
          },
          "maxPages": {
            "title": "Max pages per source",
            "type": "integer",
            "description": "Stop after this many result pages per search, category or store. Each page holds up to 240 listings.",
            "default": 10,
            "prefill": 1,
            "minimum": 1,
            "maximum": 200
          },
          "includeItemSpecifics": {
            "title": "Include item specifics (Item details mode)",
            "type": "boolean",
            "description": "Add the full item-specifics table (brand, model, MPN, dimensions, features and other aspects) to item records.",
            "default": true,
            "prefill": true
          },
          "includeRecentFeedback": {
            "title": "Include recent feedback (Seller profile mode)",
            "type": "boolean",
            "description": "Add up to 25 recent feedback entries with buyer, rating, price and date to seller records.",
            "default": true,
            "prefill": true
          }
        }
      },
      "output": {
        "actorOutputSchemaVersion": 1,
        "title": "eBay Multi-Marketplace Listing & Seller Data Output",
        "description": "One dataset of eBay listings, item details, seller feedback profiles and store inventories: formatted and numeric prices with currency, condition, brand/model/MPN/GTIN, seller feedback and recent feedback, watch/sold/bid counts, shipping, returns, item specifics, images and pagination-aware URLs.",
        "properties": {
          "items": {
            "type": "string",
            "title": "eBay records",
            "description": "Dataset containing item listings, item details, seller profiles and store records. The recordType field tells rows apart.",
            "template": "{{links.apiDefaultDatasetUrl}}/items"
          }
        }
      },
      "dockerfile": "../Dockerfile",
      "readme": "# eBay Multi-Marketplace Listing & Seller Data Scraper\n\nCollect structured eBay data from eight country sites without cookies, logins, API keys or proxy setup. Five modes cover the whole buyer-side surface: keyword search, category browse, item details, seller feedback profiles, and store inventories. Every row is server-rendered data from the live site with prices, conditions, seller ratings, shipping, returns, item specifics and pagination across US, UK, Germany, France, Italy, Spain, Canada and Australia.\n\n## What can you scrape?\n\n| Mode | What it returns | Good for |\n|---|---|---|\n| **Keyword search** | Listings matching one or more queries, with filters and up to 240 rows per page | Price monitoring, assortment tracking, resale research |\n| **Category browse** | Listings inside a category ID or `/b/` URL, optionally narrowed by a keyword | Category-wide price scans and new-arrival feeds |\n| **Item details** | Full item page: JSON-LD product data, item specifics, seller, shipping, returns, images | Product enrichment and catalog building |\n| **Seller profile** | Feedback score, positive percentage, 1/6/12-month positive-neutral-negative counts, member-since, store badge and recent feedback | Seller vetting, lead scoring, competitor research |\n| **Store listings** | Active listings from a store or seller, enriched with store name, tagline, feedback percentage, items sold and followers | Store monitoring and inventory snapshots |\n\n## Data source and access\n\nThe actor reads eBay's public server-rendered pages. eBay fronts its sites with Akamai Bot Manager, so a plain request from many IP ranges receives a generic error page. The actor first tries eBay directly, then transparently falls back to the public Google Translate website mirror of the same page. The mirror carries the identical DOM, JSON-LD, prices and currencies, so no data changes. There are **no cookies, no login, no API key and no Apify Proxy group** in the default path; a `proxy` input from older saved tasks is accepted and ignored.\n\n## Input\n\n| Field | Type | Default | Description |\n|---|---|---|---|\n| `mode` | select | `search` | `search`, `browse`, `item`, `seller` or `stores` |\n| `searchQueries` | string list | – | Keywords for search mode. One search per entry |\n| `categories` | string list | – | Category IDs (for example `177`), `/b/` URLs or `_sacat` search URLs for browse mode |\n| `browseKeyword` | string | – | Optional keyword to narrow a category |\n| `itemIds` | string list | – | Item IDs or `/itm/` URLs for item mode |\n| `sellerUsernames` | string list | – | Seller usernames or `/usr/` URLs for seller mode |\n| `storeNames` | string list | – | Store names or `/str/` URLs for stores mode |\n| `startUrls` | URL list | – | Shortcut: paste any eBay URLs and each is routed by type. Mixed search, category, item, seller and store URLs run together and share `maxItems` |\n| `marketplace` | select | `US` | `US`, `GB`, `DE`, `FR`, `IT`, `ES`, `CA`, `AU` |\n| `condition` | select | `\"\"` | All, new, open box, manufacturer refurbished, seller refurbished, used, for parts |\n| `buyingFormat` | select | `\"\"` | Both, Buy It Now only, auctions only |\n| `minPrice` / `maxPrice` | number | – | Price range in the marketplace currency |\n| `sortBy` | select | `bestMatch` | Best match, price low/high, ending soonest, newly listed |\n| `freeShipping` | boolean | false | Keep free shipping/delivery listings only |\n| `returnsAccepted` | boolean | false | Keep listings that accept returns |\n| `itemLocation` | select | `\"\"` | Any location, domestic only, worldwide |\n| `maxItems` | integer | 50 | Record cap across all sources (1–10,000) |\n| `maxPages` | integer | 10 | Page cap per search/category/store (1–200) |\n| `includeItemSpecifics` | boolean | true | Add the item-specifics table to item records |\n| `includeRecentFeedback` | boolean | true | Add up to 25 recent feedback rows to seller records |\n\nLegacy keys are mapped in code, not shown in the form: `keywords` and `query` become `searchQueries`, `startUrls` are routed by URL type, and `proxy` is ignored.\n\n## Examples\n\n### Keyword search with filters\n\n```json\n{\n  \"mode\": \"search\",\n  \"searchQueries\": [\"thinkpad\", \"macbook pro\"],\n  \"marketplace\": \"GB\",\n  \"condition\": \"used\",\n  \"buyingFormat\": \"buyItNow\",\n  \"minPrice\": 200,\n  \"maxPrice\": 900,\n  \"sortBy\": \"priceLowest\",\n  \"maxItems\": 120,\n  \"maxPages\": 2\n}\n```\n\n### Browse a category\n\n```json\n{\n  \"mode\": \"browse\",\n  \"categories\": [\"177\", \"https://www.ebay.de/b/PC-Laptops-Netbooks/177/bn_317584\"],\n  \"marketplace\": \"DE\",\n  \"maxItems\": 240\n}\n```\n\n### Item, seller and store modes\n\n```json\n{\n  \"mode\": \"item\",\n  \"itemIds\": [\"257633093777\", \"https://www.ebay.co.uk/itm/276493839365\"],\n  \"includeItemSpecifics\": true\n}\n```\n\n```json\n{\n  \"mode\": \"seller\",\n  \"sellerUsernames\": [\"discountcomputerdepot\"],\n  \"includeRecentFeedback\": true\n}\n```\n\n```json\n{\n  \"mode\": \"stores\",\n  \"storeNames\": [\"discountcomputerdepot\"],\n  \"marketplace\": \"US\",\n  \"maxItems\": 60\n}\n```\n\n## Output\n\nFields are omitted when eBay genuinely does not show them for a record; the actor never emits `null`, empty strings, empty lists or empty objects.\n\n### Listing and item fields\n\n| Field | Description |\n|---|---|\n| `recordType` | `item`, `seller` or `store` |\n| `id` / `itemId` | eBay item ID |\n| `url` | Canonical item URL |\n| `title`, `imageUrl`, `images` | Listing title and image URLs |\n| `price`, `priceValue`, `priceCurrency` | Formatted price, numeric value and ISO currency |\n| `wasPrice`, `wasPriceValue`, `discountPercent` | Original price and discount when shown |\n| `condition`, `conditionDescription` | Item condition (localized card labels are normalized to eBay's English condition names) and the full condition explanation |\n| `brand`, `model`, `mpn`, `gtin`, `color` | Product identifiers from JSON-LD |\n| `seller`, `sellerFeedbackPercent`, `sellerFeedbackCount`, `sellerFeedbackScore` | Seller identity and reputation |\n| `productRating`, `reviewCount` | Product star rating and number of ratings |\n| `watchCount`, `soldCount`, `bids`, `timeLeft` | Demand and auction signals |\n| `listingType`, `isBestOffer`, `isSponsored`, `programBadge` | Format, offers, sponsored flag and programme badge |\n| `shippingCost`, `shippingCostValue`, `shippingCurrency`, `deliveryEstimate`, `shippingDestination` | Shipping data |\n| `itemLocation`, `returns`, `returnDays`, `returnFees` | Location and returns policy |\n| `quantityAvailable`, `quantitySold` | Stock and units sold |\n| `paymentMethods` | Accepted payment methods |\n| `itemSpecifics`, `sellerNotes` | Full item-specifics table and seller notes |\n| `categoryPath` | Breadcrumb categories |\n| `availability`, `startTime` | Stock state and listing start time |\n| `marketplace` | Marketplace code |\n| `storeName`, `storeUrl`, `storeTagline`, `storeFeedbackPercent`, `storeItemsSold`, `storeFollowers` | Store context on store-mode rows |\n| `searchUrl`, `scrapedAt` | Source search URL and ISO scrape time |\n\n### Seller profile fields\n\n| Field | Description |\n|---|---|\n| `sellerUsername`, `sellerProfileUrl` | Seller identity and feedback URL |\n| `sellerFeedbackScore` | Lifetime feedback score |\n| `positiveFeedbackPercent` | Positive feedback percentage for the last 12 months |\n| `positiveFeedbackCount`, `neutralFeedbackCount`, `negativeFeedbackCount` | 12-month counts |\n| `feedbackBreakdown` | Counts for the last 1, 6 and 12 months |\n| `totalFeedbackReceived`, `automatedFeedbackCount` | Total and automated feedback |\n| `memberSince`, `memberCountry` | Membership date and country |\n| `isEbayStore`, `isTopRatedSeller`, `storeUrl` | Store and top-rated flags |\n| `recentFeedback` | Up to 25 rows: comment, item title/ID, rating, buyer, price, when |\n\n### Store record fields (when a store has no active listings)\n\n`recordType: \"store\"`, `storeName`, `storeUrl`, `storeTagline`, `storeFeedbackPercent`, `storeItemsSold`, `storeFollowers`, `storeListingCount`, `storeCategories`, `marketplace`, `scrapedAt`.\n\n## Pages, limits and reliability\n\n- Each result page asks for 60, 120 or 240 rows depending on the remaining record budget, up to eBay's 200-page search cap.\n- Pagination stops on `maxItems`, `maxPages`, an empty page, a short page, a repeated page (no new IDs) or an explicit \"no exact matches\" page.\n- Network errors, 403/429/5xx responses and throttle pages are retried with exponential backoff and jitter; the client switches between direct eBay and the public mirror automatically.\n- Duplicate item IDs are removed across queries, categories, stores and mixed URL types; a richer item-detail row replaces a duplicate listing row.\n- Localized condition, seller-feedback and shipping labels from the German, French, Italian and Spanish sites are normalized to the same English field values as the US, UK, Canadian and Australian sites.\n- No wall-clock cut-off is used, so the actor does not silently return fewer rows than requested.\n\n## FAQ\n\n**Do I need cookies or an API key?** No. The actor never asks for credentials and does not use an eBay developer account.\n\n**Do I need to configure a proxy?** No. If an old task still sends a `proxy` object, the actor logs that it is ignored and continues without it.\n\n**Why do some listings lack watch or sold counts?** eBay only renders those counters on some cards and only above its own thresholds. Missing means the source did not show it.\n\n**Can I scrape sold/completed listings?** Not without an eBay login, which this actor deliberately does not require. eBay serves a sign-in wall for `LH_Sold=1`/`LH_Complete=1`.\n\n**How are prices represented?** `price` is the display string (`$339.99`, `£189.99`, `EUR 229,00`, `AU $375.00`); `priceValue` is the numeric value and `priceCurrency` the ISO code.\n\n**How many rows can one run return?** Up to `maxItems` (maximum 10,000), subject to eBay's own 200-page ceiling per source. Split very large jobs by category, query or price range.\n\n**Is this fast?** Listing modes use one HTTP request per page. Item mode uses one request per item. Seller and store modes add one profile/store request per source.\n\n## Limitations\n\n- Sold/completed listings are not available without an eBay account; the actor does not use cookies.\n- eBay caps search pagination at 200 pages per query. For a broader sweep, split by category, keyword or price range.\n- eBay stores show only a curated storefront plus the seller's active listings; ended listings are not part of a store inventory.\n- Item descriptions are not included because eBay serves them from a separate signed frame; the structured specifics table is included instead.\n- Some fields are category- or listing-conditional (bids, watchers, sold counts, GTIN, return policy). They are omitted for records where eBay does not display them.\n- eBay does not render sponsored labels inside the card HTML on the German, Italian and Spanish sites, so `isSponsored` is reliable on the US, UK, Canadian, Australian and French sites and simply omitted elsewhere.\n- Category browse uses the category name (from the ID page title or the `/b/` URL slug) as the search phrase because eBay's keywordless category page is a navigation page, not a listing river. If eBay blocks that category page from a run's IP, the actor falls back to eBay's broad `all` query inside the category; very unusual titles may then be missed, so narrow with `browseKeyword` for a precise sweep.\n- Store statistics are shown only when eBay renders them on the storefront; sellers without a storefront return their active listings with store name and URL only.\n",
      "storages": {
        "dataset": {
          "actorSpecification": 1,
          "title": "eBay Listings, Items and Sellers",
          "views": {
            "listings": {
              "title": "Listings",
              "transformation": {
                "fields": [
                  "recordType",
                  "title",
                  "price",
                  "priceValue",
                  "priceCurrency",
                  "condition",
                  "brand",
                  "seller",
                  "sellerFeedbackPercent",
                  "productRating",
                  "watchCount",
                  "soldCount",
                  "shippingCost",
                  "itemLocation",
                  "listingType",
                  "url"
                ]
              },
              "display": {
                "component": "table",
                "properties": {
                  "recordType": {
                    "label": "Type",
                    "format": "text"
                  },
                  "title": {
                    "label": "Title",
                    "format": "text"
                  },
                  "price": {
                    "label": "Price",
                    "format": "text"
                  },
                  "priceValue": {
                    "label": "Price Value",
                    "format": "number"
                  },
                  "priceCurrency": {
                    "label": "Currency",
                    "format": "text"
                  },
                  "condition": {
                    "label": "Condition",
                    "format": "text"
                  },
                  "brand": {
                    "label": "Brand",
                    "format": "text"
                  },
                  "seller": {
                    "label": "Seller",
                    "format": "text"
                  },
                  "sellerFeedbackPercent": {
                    "label": "Feedback %",
                    "format": "text"
                  },
                  "productRating": {
                    "label": "Rating",
                    "format": "text"
                  },
                  "watchCount": {
                    "label": "Watchers",
                    "format": "number"
                  },
                  "soldCount": {
                    "label": "Sold",
                    "format": "number"
                  },
                  "shippingCost": {
                    "label": "Shipping",
                    "format": "text"
                  },
                  "itemLocation": {
                    "label": "Location",
                    "format": "text"
                  },
                  "listingType": {
                    "label": "Format",
                    "format": "text"
                  },
                  "url": {
                    "label": "URL",
                    "format": "link"
                  }
                }
              }
            },
            "sellerProfiles": {
              "title": "Seller Profiles",
              "transformation": {
                "fields": [
                  "recordType",
                  "sellerUsername",
                  "sellerFeedbackScore",
                  "positiveFeedbackPercent",
                  "positiveFeedbackCount",
                  "neutralFeedbackCount",
                  "negativeFeedbackCount",
                  "memberSince",
                  "memberCountry",
                  "storeName",
                  "sellerProfileUrl"
                ]
              },
              "display": {
                "component": "table",
                "properties": {
                  "recordType": {
                    "label": "Type",
                    "format": "text"
                  },
                  "sellerUsername": {
                    "label": "Seller",
                    "format": "text"
                  },
                  "sellerFeedbackScore": {
                    "label": "Feedback Score",
                    "format": "number"
                  },
                  "positiveFeedbackPercent": {
                    "label": "Positive %",
                    "format": "text"
                  },
                  "positiveFeedbackCount": {
                    "label": "Positive",
                    "format": "number"
                  },
                  "neutralFeedbackCount": {
                    "label": "Neutral",
                    "format": "number"
                  },
                  "negativeFeedbackCount": {
                    "label": "Negative",
                    "format": "number"
                  },
                  "memberSince": {
                    "label": "Member Since",
                    "format": "text"
                  },
                  "memberCountry": {
                    "label": "Country",
                    "format": "text"
                  },
                  "storeName": {
                    "label": "Store",
                    "format": "text"
                  },
                  "sellerProfileUrl": {
                    "label": "Profile URL",
                    "format": "link"
                  }
                }
              }
            },
            "itemDetails": {
              "title": "Item Details",
              "transformation": {
                "fields": [
                  "title",
                  "price",
                  "wasPrice",
                  "condition",
                  "conditionDescription",
                  "brand",
                  "model",
                  "mpn",
                  "gtin",
                  "color",
                  "seller",
                  "sellerFeedbackScore",
                  "quantityAvailable",
                  "quantitySold",
                  "watchCount",
                  "bids",
                  "timeLeft",
                  "shippingCost",
                  "shippingDestination",
                  "returns",
                  "returnDays",
                  "paymentMethods",
                  "categoryPath",
                  "images",
                  "url"
                ]
              },
              "display": {
                "component": "table",
                "properties": {
                  "title": {
                    "label": "Title",
                    "format": "text"
                  },
                  "price": {
                    "label": "Price",
                    "format": "text"
                  },
                  "wasPrice": {
                    "label": "Was",
                    "format": "text"
                  },
                  "condition": {
                    "label": "Condition",
                    "format": "text"
                  },
                  "conditionDescription": {
                    "label": "Condition Detail",
                    "format": "text"
                  },
                  "brand": {
                    "label": "Brand",
                    "format": "text"
                  },
                  "model": {
                    "label": "Model",
                    "format": "text"
                  },
                  "mpn": {
                    "label": "MPN",
                    "format": "text"
                  },
                  "gtin": {
                    "label": "GTIN",
                    "format": "text"
                  },
                  "color": {
                    "label": "Color",
                    "format": "text"
                  },
                  "seller": {
                    "label": "Seller",
                    "format": "text"
                  },
                  "sellerFeedbackScore": {
                    "label": "Seller Feedback",
                    "format": "number"
                  },
                  "quantityAvailable": {
                    "label": "Available",
                    "format": "number"
                  },
                  "quantitySold": {
                    "label": "Sold",
                    "format": "number"
                  },
                  "watchCount": {
                    "label": "Watchers",
                    "format": "number"
                  },
                  "bids": {
                    "label": "Bids",
                    "format": "number"
                  },
                  "timeLeft": {
                    "label": "Time Left",
                    "format": "text"
                  },
                  "shippingCost": {
                    "label": "Shipping",
                    "format": "text"
                  },
                  "shippingDestination": {
                    "label": "Ships To",
                    "format": "text"
                  },
                  "returns": {
                    "label": "Returns",
                    "format": "text"
                  },
                  "returnDays": {
                    "label": "Return Days",
                    "format": "number"
                  },
                  "paymentMethods": {
                    "label": "Payments",
                    "format": "text"
                  },
                  "categoryPath": {
                    "label": "Categories",
                    "format": "text"
                  },
                  "images": {
                    "label": "Images",
                    "format": "text"
                  },
                  "url": {
                    "label": "URL",
                    "format": "link"
                  }
                }
              }
            }
          }
        }
      }
    },
    "buildNumber": "1.0.2",
    "imageDigest": "d26c1ed3812624458de1e5b0395e344f4fef92c273321ed162687f6753ef4d7a",
    "actVersion": {
      "sourceType": "SOURCE_FILES",
      "buildTag": "latest",
      "versionNumber": "1.0"
    },
    "usage": {
      "ACTOR_COMPUTE_UNITS": 0.011401111111111112
    }
  }
}