{
  "openapi": "3.0.1",
  "info": {
    "title": "eBay Scraper & API - Search Listings, Prices & Sellers",
    "description": "eBay scraper and eBay search API: active listings from 18 eBay sites (US, UK, DE, AU ...) by keyword or eBay URL, with price, condition, auction / Buy It Now and shipping filters. One result = one listing: price, shipping, bids, sold count, seller, URL. $0.60 per 1,000, no start fee.",
    "version": "1.0",
    "x-build-id": "RvphF0btb2egsF6i9"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/rel8ble~ebay-search-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-rel8ble-ebay-search-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/rel8ble~ebay-search-scraper/runs": {
      "post": {
        "operationId": "runs-sync-rel8ble-ebay-search-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/rel8ble~ebay-search-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-rel8ble-ebay-search-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": {
          "queries": {
            "title": "Search phrases",
            "type": "array",
            "description": "What to search for, one search per line, exactly as you would type it into the eBay search box: \"wireless earbuds\", \"iphone 13 128gb unlocked\", \"lego 75192\", \"vintage seiko watch\". Each line is a separate search; results are merged, duplicates within a search are removed. Typical: 1-50 lines. Leave empty when you give startUrls instead.",
            "items": {
              "type": "string"
            }
          },
          "startUrls": {
            "title": "eBay search URLs",
            "type": "array",
            "description": "Optional. eBay search results URLs copied from the browser, one per line, e.g. \"https://www.ebay.com/sch/i.html?_nkw=pixel+8&LH_Sold=1&LH_Complete=1&_udlo=200\". Any eBay country site works. The filters inside the URL are used as they are (the filter fields below are NOT applied to URLs); only page size and page number are added. Category URLs like \".../sch/Cell-Phones-Smartphones/9355/i.html?_nkw=...\" work too.",
            "items": {
              "type": "string"
            }
          },
          "site": {
            "title": "eBay site (country)",
            "enum": [
              "ebay.com",
              "ebay.co.uk",
              "ebay.de",
              "ebay.com.au",
              "ebay.ca",
              "ebay.fr",
              "ebay.it",
              "ebay.es",
              "ebay.nl",
              "ebay.be",
              "ebay.at",
              "ebay.ch",
              "ebay.ie",
              "ebay.pl",
              "ebay.com.sg",
              "ebay.com.my",
              "ebay.ph",
              "ebay.com.hk"
            ],
            "type": "string",
            "description": "Which eBay country site to search. Default \"ebay.com\" (United States, prices in USD). \"ebay.co.uk\" = UK in GBP, \"ebay.de\" = Germany in EUR, \"ebay.com.au\" = Australia in AUD, \"ebay.ca\" = Canada in CAD, and so on. Titles, conditions and shipping texts come in the site's language. Applies to every line in queries, not to startUrls (those carry their own site).",
            "default": "ebay.com"
          },
          "listingType": {
            "title": "Listing type",
            "enum": [
              "active",
              "sold",
              "completed"
            ],
            "type": "string",
            "description": "Default \"active\": listings for sale right now - this is what the actor is built and tested for. \"sold\" = eBay's Sold Items filter (LH_Sold=1&LH_Complete=1, what buyers actually paid, with the sold date); \"completed\" = every ended listing (LH_Complete=1). WARNING: since 2025 eBay shows sold / completed results only to signed-in visitors in most regions and answers everyone else with a sign-in page; the actor retries with a warmed-up residential session, but if eBay keeps asking for a login the search is reported as failed (no charge). Use \"sold\" only if you have confirmed it works for your site; otherwise stay on \"active\".",
            "default": "active"
          },
          "categoryId": {
            "title": "Category id",
            "type": "string",
            "description": "Optional. Numeric eBay category id to search inside, e.g. \"9355\" (cell phones and smartphones), \"15032\" (cell phone accessories), \"11450\" (clothing, shoes and accessories), \"267\" (books), \"293\" (consumer electronics), \"220\" (toys and hobbies). Find it in the eBay URL after \"/sch/<name>/\" or as _sacat. Empty = all categories. With queries empty, the whole category is scraped (best match order)."
          },
          "priceMin": {
            "title": "Minimum price",
            "type": "string",
            "description": "Optional. Lowest item price, in the site's currency (USD on ebay.com, GBP on ebay.co.uk, EUR on ebay.de ...), e.g. \"25\" or \"19.99\". Shipping is not included in the filter."
          },
          "priceMax": {
            "title": "Maximum price",
            "type": "string",
            "description": "Optional. Highest item price, in the site's currency, e.g. \"200\". Combine with priceMin for a band. Splitting a big search into several price bands is also the way past eBay's ~10,000-results-per-search limit."
          },
          "conditions": {
            "title": "Condition",
            "type": "array",
            "description": "Optional. Keep only these item conditions (any of them): \"new\", \"open-box\", \"refurbished\" (certified and seller refurbished), \"used\" (pre-owned), \"for-parts\" (for parts or not working). Empty = any condition. Sent to eBay as LH_ItemCondition, so the filtering is done by eBay itself.",
            "items": {
              "type": "string",
              "enum": [
                "new",
                "open-box",
                "refurbished",
                "used",
                "for-parts"
              ],
              "enumTitles": [
                "New",
                "Open box",
                "Refurbished (certified or seller)",
                "Used / pre-owned",
                "For parts or not working"
              ]
            }
          },
          "buyingFormat": {
            "title": "Buying format",
            "enum": [
              "all",
              "buy-it-now",
              "auction",
              "best-offer"
            ],
            "type": "string",
            "description": "Optional. \"all\" (default), \"buy-it-now\" (fixed price only, LH_BIN=1), \"auction\" (auctions only, with bid counts and time left, LH_Auction=1), or \"best-offer\" (listings that accept offers, LH_BO=1).",
            "default": "all"
          },
          "freeShippingOnly": {
            "title": "Free shipping only",
            "type": "boolean",
            "description": "Optional. true = only listings with free shipping to the site's country (LH_FS=1). Default false.",
            "default": false
          },
          "itemLocation": {
            "title": "Item location",
            "enum": [
              "any",
              "domestic",
              "worldwide"
            ],
            "type": "string",
            "description": "Optional. \"any\" (default: what eBay shows by default for the site), \"domestic\" (items located in the site's own country only, LH_PrefLoc=1), \"worldwide\" (LH_PrefLoc=2).",
            "default": "any"
          },
          "sort": {
            "title": "Sort order",
            "enum": [
              "best-match",
              "newly-listed",
              "ending-soonest",
              "price-asc",
              "price-desc",
              "ended-recently"
            ],
            "type": "string",
            "description": "Optional. Order eBay returns results in, which matters when you cap maxItemsPerSearch: \"best-match\" (default), \"newly-listed\" (newest first - good for monitoring new listings), \"ending-soonest\" (auctions), \"price-asc\" / \"price-desc\" (price + shipping, lowest / highest first), \"ended-recently\" (sold and completed searches: most recently ended first).",
            "default": "best-match"
          },
          "searchInDescription": {
            "title": "Search in title and description",
            "type": "boolean",
            "description": "Optional. true = match the search phrase in item descriptions as well as titles (LH_TitleDesc=1). Finds more, less precise. Default false (titles only).",
            "default": false
          },
          "includeSponsored": {
            "title": "Include sponsored listings",
            "type": "boolean",
            "description": "Optional. eBay mixes promoted (\"Sponsored\") listings into results. Default true keeps them, marked with isSponsored: true. false = skip them (they are not charged when skipped).",
            "default": true
          },
          "includeFewerWordMatches": {
            "title": "Include \"results matching fewer words\"",
            "type": "boolean",
            "description": "Optional. When a search has few exact matches, eBay appends looser results that match only some of the words. Default false stops at the exact matches. true = keep those looser results too.",
            "default": false
          },
          "maxItemsPerSearch": {
            "title": "Max listings per search",
            "minimum": 0,
            "type": "integer",
            "description": "Optional. Maximum listings saved per search phrase or URL, integer >= 0. Default 240 (= one eBay page, one request). 0 = every result eBay will serve (up to about 10,000 per search, 240 per request). Together with maxItems this sets the cost: you pay per listing saved ($0.0015 each), so 1,000 listings = $0.60.",
            "default": 240
          },
          "maxItems": {
            "title": "Max listings in total",
            "minimum": 0,
            "type": "integer",
            "description": "Optional. Maximum listings saved by the whole run across all searches, integer >= 0. Default 1,000; 0 = no total cap (each search still stops at maxItemsPerSearch). A hard stop on spend: 1,000 listings = $0.60.",
            "default": 1000
          },
          "maxConcurrency": {
            "title": "Max concurrency",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "Optional, advanced. Number of parallel requests, integer 1-10. Default 3. Requests are also spaced at least 0.4 s apart whatever this is set to. Lower it if the run log shows challenge pages. Leave unset.",
            "default": 3
          },
          "maxRequestRetries": {
            "title": "Max retries per request",
            "minimum": 0,
            "maximum": 20,
            "type": "integer",
            "description": "Optional, advanced. How many times a blocked or failed page is retried on a new session, integer 0-20. Default 6. Leave unset.",
            "default": 6
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Apify Proxy settings object. Default {\"useApifyProxy\": true, \"apifyProxyGroups\": [\"RESIDENTIAL\"]} and leave it there: eBay answers datacenter IPs (including Apify's shared datacenter proxies) with an HTTP 403 error page; only residential IPs are served. The run first uses exits in the eBay site's own country (so prices come in the site currency) and switches to residential exits anywhere if eBay rejects that pool - eBay then shows prices in the visitor's local currency, which the currency and priceText fields record. Residential bandwidth is billed by Apify on top of the per-result price: a 240-listing page is about 0.5 MB, so 1,000 listings cost roughly 2 MB (a few cents).",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}