{
  "openapi": "3.0.1",
  "info": {
    "title": "eBay Scraper: Sold Prices, Listings, Details & Seller Reviews",
    "description": "Scrape eBay sold prices, active listings, item details and seller reviews from 17 eBay sites. Search by keyword or paste any eBay URL. Get price, shipping, item specifics, GTIN/UPC, sold-price summaries and new-listing alerts. No eBay account, API key or code needed. Export to CSV, Excel or JSON",
    "version": "0.0",
    "x-build-id": "BK2nHR7YJGXVUHb8N"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/reviewly~ebay-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-reviewly-ebay-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/reviewly~ebay-scraper/runs": {
      "post": {
        "operationId": "runs-sync-reviewly-ebay-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/reviewly~ebay-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-reviewly-ebay-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "startUrls": {
            "title": "Start URLs",
            "type": "array",
            "description": "eBay URLs from any of the 17 supported sites (ebay.com, ebay.co.uk, ebay.de, ebay.fr, ebay.it, ebay.es, ebay.ca, ebay.com.au, ebay.nl, ebay.at, ebay.ch, ebay.ie, ebay.pl, ebay.com.hk, ebay.com.my, ebay.ph, ebay.com.sg). Accepted: search results (/sch/i.html?…, and category searches /sch/<number>/i.html?…), sellers (/usr/<seller>), stores (/str/<store>), category pages (/b/<name>/<categoryId>/bn_<id>), single items (/itm/<id>) and seller feedback (/fdbk/…).<br><br>Filters in a search URL are kept: set them on eBay and copy the address bar (item location, item specifics such as Brand=Nike, several conditions, accepts offers, free shipping, sellers to include or exclude). Other URL shapes are read from eBay's website, where Listing mode, fast mode and the keyword filters below do not apply. Set Marketplace to the site your URLs come from. Leave empty if you use Search query or Search queries.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "searchQuery": {
            "title": "Search query",
            "type": "string",
            "description": "Keyword(s) to search, e.g. \"iphone 16 pro 256gb\". Supports eBay search syntax (quotes for an exact phrase, minus to exclude). Combined with the marketplace, mode and filters below."
          },
          "searchQueries": {
            "title": "Search queries (one keyword per line)",
            "maxItems": 500,
            "type": "array",
            "description": "A list of keywords. Each keyword runs as its own search with the same Marketplace, Listing mode and filters, and Max number of items applies to each. Every row carries searchQuery (the keyword it came from) and searchUrl. A keyword listed twice (ignoring case and spacing) runs once. Up to 500 keywords per run. While this list is in use, the untouched example Start URL is ignored.",
            "items": {
              "type": "string"
            }
          },
          "marketplace": {
            "title": "Marketplace",
            "enum": [
              "ebay.com",
              "ebay.co.uk",
              "ebay.de",
              "ebay.fr",
              "ebay.it",
              "ebay.es",
              "ebay.ca",
              "ebay.com.au",
              "ebay.nl",
              "ebay.at",
              "ebay.ch",
              "ebay.ie",
              "ebay.pl",
              "ebay.com.hk",
              "ebay.com.my",
              "ebay.ph",
              "ebay.com.sg"
            ],
            "type": "string",
            "description": "Which eBay site to search (affects currency, language of eBay's labels and inventory), and the country the actor connects from. A regional domain in a pasted URL picks the site for that URL, but the connection country still follows this setting, so set it to the site your URLs come from.",
            "default": "ebay.com"
          },
          "mode": {
            "title": "Listing mode",
            "enum": [
              "active",
              "sold",
              "both"
            ],
            "type": "string",
            "description": "Active – current live listings (default).<br>Sold / completed – sold listings for price comps, plus one sold-price summary row per search. eBay shows sold results only to signed-in users; the actor reads them through a signed-in eBay session. If eBay refuses it, sold searches end with a clear message instead of rows (not charged).<br>Both – an active and a sold search for each search.",
            "default": "active"
          },
          "detailedItems": {
            "title": "Fetch full item details (active listings)",
            "type": "boolean",
            "description": "ON (default): each active listing's item page is read for item specifics, gallery images, seller details (store, business/private, member since), returns, exact sold and watcher counts, variations and product identifiers. One extra request per listing. OFF: rows come straight from the search results (price, condition, shipping and its cost, seller name and feedback, image, location), up to 240 per request — much faster and cheaper.",
            "default": true
          },
          "includeDescription": {
            "title": "Include the seller's full description",
            "type": "boolean",
            "description": "Adds a description field with the seller's own description as plain text. One extra request per item, detailed rows only.",
            "default": false
          },
          "includeLegacyFields": {
            "title": "Include legacy fields (raw item-page modules + basic_info)",
            "type": "boolean",
            "description": "ON (default) keeps eBay's raw item-page modules (buy_box, semantic_data, about_this_item, …) on detailed rows and a copy of the search card under basic_info on every listing row. Turn OFF for lean, flat rows; every documented field stays and billing does not change.",
            "default": true
          },
          "categoryPageMode": {
            "title": "Category page (/b/) URLs",
            "enum": [
              "exact",
              "keyword",
              "category"
            ],
            "type": "string",
            "description": "How to scrape /b/<name>/<categoryId>/bn_<id> pages. A page titled like its eBay category is always scraped through eBay's search. For brand, model and curated pages:<br>Exact page (default) – read the page itself (detailed rows only).<br>Add the page title as keywords – search the category plus the title words.<br>Whole category – search the entire category, ignoring the page's own filter.",
            "default": "exact"
          },
          "soldWithinDays": {
            "title": "Sold within last N days",
            "minimum": 1,
            "maximum": 730,
            "type": "integer",
            "description": "Sold / Both modes: keep only listings sold in the last N days. Older sales are not charged."
          },
          "includeSummary": {
            "title": "Include sold-price summary row",
            "type": "boolean",
            "description": "One analytics row per sold search (median / average / min / max price, sell-through rate, sold per day, recommended price). Charged as its own event.",
            "default": true
          },
          "titleMustMatchQuery": {
            "title": "Title must match the search keyword",
            "type": "boolean",
            "description": "Keep only listings whose title contains every word of the search keyword (each search uses its own keyword, including a pasted URL's _nkw). Near matches are dropped before they are written, so they are not charged.",
            "default": false
          },
          "titleMustInclude": {
            "title": "Title must include these words",
            "type": "string",
            "description": "Keep only listings whose title contains every word given here. Overrides Title must match the search keyword. Ignores case, accents and punctuation, so 18V-55 and 18v55 are the same."
          },
          "condition": {
            "title": "Condition",
            "enum": [
              "any",
              "new",
              "used",
              "refurbished",
              "open_box",
              "certified_pre_owned",
              "for_parts"
            ],
            "type": "string",
            "description": "Filter by item condition (keyword searches only).",
            "default": "any"
          },
          "minPrice": {
            "title": "Min price",
            "minimum": 0,
            "type": "integer",
            "description": "Lower price bound in the marketplace currency (keyword searches only)."
          },
          "maxPrice": {
            "title": "Max price",
            "minimum": 0,
            "type": "integer",
            "description": "Upper price bound in the marketplace currency (keyword searches only)."
          },
          "sortBy": {
            "title": "Sort by",
            "enum": [
              "best_match",
              "ending_soon",
              "newest",
              "price_asc",
              "price_desc"
            ],
            "type": "string",
            "description": "Result order for keyword searches.",
            "default": "best_match"
          },
          "listingType": {
            "title": "Listing type",
            "enum": [
              "all",
              "auction",
              "bin",
              "best_offer"
            ],
            "type": "string",
            "description": "Buying format (keyword searches only).",
            "default": "all"
          },
          "freeShipping": {
            "title": "Free shipping only",
            "type": "boolean",
            "description": "Keyword searches only.",
            "default": false
          },
          "returnsAccepted": {
            "title": "Returns accepted only",
            "type": "boolean",
            "description": "Keyword searches only.",
            "default": false
          },
          "seller": {
            "title": "Seller",
            "type": "string",
            "description": "Limit keyword searches to one seller's username (eBay _ssn). With no keyword, returns everything that seller lists. It does not filter pasted Start URLs; add _ssn=<seller> to a URL instead."
          },
          "category": {
            "title": "Category ID",
            "type": "string",
            "description": "Limit keyword searches to an eBay category by numeric ID (eBay _sacat), e.g. 9355 for Cell Phones & Smartphones. Takes precedence over the eBay Motors preset."
          },
          "motorsCategory": {
            "title": "eBay Motors category",
            "enum": [
              "none",
              "6001",
              "6024",
              "26429",
              "50054",
              "66466",
              "63732",
              "6038",
              "6028",
              "6030",
              "10063",
              "26443",
              "43962"
            ],
            "type": "string",
            "description": "Limit keyword searches to an eBay Motors category (ebay.com category tree). Ignored when Category ID is set.",
            "default": "none"
          },
          "minYear": {
            "title": "Min model year",
            "minimum": 1900,
            "maximum": 2100,
            "type": "integer",
            "description": "Vehicles: lowest model year to keep, read from the year at the start of each title. Listings whose title does not start with a year are kept."
          },
          "maxYear": {
            "title": "Max model year",
            "minimum": 1900,
            "maximum": 2100,
            "type": "integer",
            "description": "Vehicles: highest model year to keep. Same rule as Min model year."
          },
          "monitoringMode": {
            "title": "Monitoring mode (only new listings since previous runs)",
            "type": "boolean",
            "description": "Returns only listings not seen in earlier runs of the same search. History is kept per exact search URL in a named key-value store, so changing a URL starts a new history. The first run returns up to Max number of items and records every listing it read. Do not run two monitoring runs of the same search at once.",
            "default": false
          },
          "enablePriceMonitoring": {
            "title": "Enable price monitoring",
            "type": "boolean",
            "description": "With monitoring mode, also returns seen listings whose price changed, flagged priceChanged: true with previousPrice.",
            "default": false
          },
          "feedbackProfiles": {
            "title": "Seller feedback profiles",
            "type": "array",
            "description": "Seller usernames or feedback-profile URLs, e.g. <seller> or https://www.ebay.com/fdbk/feedback_profile/<seller>. One row per review. Max number of items caps reviews per seller.",
            "items": {
              "type": "string"
            }
          },
          "feedbackSort": {
            "title": "Feedback sort",
            "enum": [
              "most_recent",
              "most_relevant"
            ],
            "type": "string",
            "description": "Feedback scraping only.",
            "default": "most_recent"
          },
          "feedbackReceivedAs": {
            "title": "Feedback received as",
            "enum": [
              "seller",
              "buyer",
              "both"
            ],
            "type": "string",
            "description": "Feedback received as a seller, as a buyer, or both (feedback scraping only).",
            "default": "seller"
          },
          "feedbackRating": {
            "title": "Feedback rating",
            "enum": [
              "all",
              "positive",
              "neutral",
              "negative"
            ],
            "type": "string",
            "description": "Only reviews with this rating (feedback scraping only).",
            "default": "all"
          },
          "feedbackImagesOnly": {
            "title": "Feedback with images only",
            "type": "boolean",
            "description": "Feedback scraping only.",
            "default": false
          },
          "feedbackExcludeAutomated": {
            "title": "Exclude automated feedback",
            "type": "boolean",
            "description": "Hide eBay's auto-generated feedback (feedback scraping only).",
            "default": false
          },
          "maxItems": {
            "title": "Max number of items",
            "minimum": 1,
            "type": "integer",
            "description": "Maximum rows per search: each keyword, the Search query and each Start URL is its own search (and in Both mode its active and sold halves each get this many). Also caps reviews per feedback profile. URLs read from eBay's website share one limit.",
            "default": 1000
          },
          "maxConcurrency": {
            "title": "Max concurrency",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "Requests in flight at once, each on its own connection. Lower it (e.g. 3) if eBay rate-limits (HTTP 429).",
            "default": 5
          },
          "minConcurrency": {
            "title": "Min concurrency",
            "minimum": 1,
            "type": "integer",
            "description": "Kept for compatibility; the actor runs Max concurrency connections.",
            "default": 1
          },
          "maxRequestRetries": {
            "title": "Max request retries",
            "minimum": 12,
            "type": "integer",
            "description": "Retries of a failed request, each from a fresh connection. Rate-limit (HTTP 429) retries count too. Values below 12 are raised to 12.",
            "default": 20
          },
          "proxy": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Keep RESIDENTIAL. The country is set to the Marketplace's country when left empty; eBay shows a connection from another country fewer listings and other shipping quotes.",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "RESIDENTIAL"
              ]
            }
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}