{
  "id": "ebay-browse",
  "displayName": "eBay Browse API (live listings, 6 marketplaces) — gated",
  "sourceId": "ebay",
  "sourceName": "eBay",
  "sourceType": "marketplace",
  "sourceUrl": "https://www.ebay.com",
  "module": "api/ebay-browse",
  "enginePriority": ["api"],
  "categories": ["pokemon", "magic_the_gathering", "yugioh", "sports_cards", "baseball_cards", "basketball_cards", "football_cards", "hockey_cards", "soccer_cards", "comics", "video_games", "sneakers", "watches", "rolex", "omega", "other_watches", "lego_sets", "funko", "coins", "banknotes", "stamps", "music", "cameras", "pens", "whisky", "action_figures", "vintage_toys", "luxury_handbags"],
  "regions": ["US", "CA", "GB", "DE", "FR", "AU"],
  "languages": ["en", "de", "fr"],
  "currency": ["USD", "CAD", "GBP", "EUR", "AUD"],
  "supportsListings": true,
  "supportsSold": false,
  "supportsAuctions": false,
  "supportsImages": true,
  "supportsCatalog": false,
  "supportsPopulation": false,
  "supportsLookup": true,
  "refreshFrequencyMinutes": 60,
  "priority": "high",
  "trustScore": 0.85,
  "attributionRequired": true,
  "termsUrl": "https://developer.ebay.com/join/api-license-agreement",
  "acquisitionMethod": "official API (OAuth2 client credentials)",
  "historicalDepth": "none",
  "requires": ["EBAY_CLIENT_ID", "EBAY_CLIENT_SECRET"],
  "accessNotes": "Official eBay Buy → Browse API v1 (developer.ebay.com/api-docs/buy/browse). Auth: OAuth2 client-credentials grant — POST https://api.ebay.com/identity/v1/oauth2/token with Basic base64(client_id:client_secret), body grant_type=client_credentials&scope=https://api.ebay.com/oauth/api_scope; the application token (expires_in ≈ 7200 s) is cached inside the connector and refreshed 60 s before expiry. Data: GET /buy/browse/v1/item_summary/search with q / category_ids / filter (buyingOptions:{FIXED_PRICE|AUCTION|BEST_OFFER}, conditions, price:[..],priceCurrency, itemLocationCountry…) / sort=newlyListed / limit ≤ 200 / offset (offset+limit ≤ 10,000 per query), one call per (query × marketplace × page); the X-EBAY-C-MARKETPLACE-ID header selects EBAY_US, EBAY_CA, EBAY_GB, EBAY_DE, EBAY_FR or EBAY_AU and prices come back in the marketplace currency (convertedFromCurrency is recorded when eBay converted). Fields kept: itemId (v1|…|0), legacyItemId, epid (eBay product id → identifiers.ebay_epid), title, price/currentBidPrice, bidCount, buyingOptions, condition/conditionId, images, seller username + feedback percentage/score (public marketplace reputation, no personal data), shippingOptions[0].shippingCost, itemLocation city/state/country, itemCreationDate, itemEndDate, categories, watchCount. Limits: Browse is a 'Buy' API — default 5,000 calls/day per application for new keysets, more after eBay's Application Growth Check; we use 1 page per query per hourly run (≤ 6 queries × 6 marketplaces) and back off on 429 through the HTTP engine. IMPORTANT: the Browse API exposes LIVE listings only — there is no sold/completed-item data; eBay's sold data lives in the Marketplace Insights API (limited release, business approval required) and in the deprecated Finding API's findCompletedItems (retired) — documented, not implemented. Credentials: create a developer account at https://developer.ebay.com, an application keyset (production), and for Buy APIs complete the 'Buy API access' application; set EBAY_CLIENT_ID (App ID) and EBAY_CLIENT_SECRET (Cert ID); EBAY_ENV=sandbox switches to api.sandbox.ebay.com. Until the keys exist the framework reports this connector DISABLED (requires) and the crawler exits with a missing_credentials anomaly. Category ids in config are the public eBay leaf categories used in the query seeds; verify/adjust them with the Taxonomy API once a key is available (invalid ids raise error 12000 → page_fetch_failed anomaly). eBay API License Agreement: attribution + no storing of data beyond the permitted caching windows for listing data — RareIndex stores asking prices as listings and links back to itemWebUrl.",
  "enabled": true,
  "schemaVersion": "1.0",
  "config": {
    "limit": 200,
    "pagesPerQuery": 1,
    "backfillPages": 10,
    "queriesPerRun": 6,
    "sort": "newlyListed",
    "defaultFilter": "buyingOptions:{FIXED_PRICE|AUCTION|BEST_OFFER}",
    "marketplaces": [
      { "id": "EBAY_US", "currency": "USD", "country": "US", "locale": "en-US" },
      { "id": "EBAY_CA", "currency": "CAD", "country": "CA", "locale": "en-CA" },
      { "id": "EBAY_GB", "currency": "GBP", "country": "GB", "locale": "en-GB" },
      { "id": "EBAY_DE", "currency": "EUR", "country": "DE", "locale": "de-DE" },
      { "id": "EBAY_FR", "currency": "EUR", "country": "FR", "locale": "fr-FR" },
      { "id": "EBAY_AU", "currency": "AUD", "country": "AU", "locale": "en-AU" }
    ],
    "queries": [
      { "q": "pokemon psa 10", "categoryIds": ["183454"], "categorySlug": "pokemon" },
      { "q": "pokemon charizard", "categoryIds": ["183454"], "categorySlug": "pokemon" },
      { "q": "magic the gathering foil", "categoryIds": ["183454"], "categorySlug": "magic_the_gathering" },
      { "q": "yu-gi-oh 1st edition", "categoryIds": ["183454"], "categorySlug": "yugioh" },
      { "q": "rookie psa", "categoryIds": ["261328"], "categorySlug": "sports_cards" },
      { "q": "cgc 9.8", "categoryIds": ["63"], "categorySlug": "comics" },
      { "q": "sealed wata", "categoryIds": ["139973"], "categorySlug": "video_games" },
      { "q": "air jordan 1 retro high og", "categoryIds": ["15709"], "categorySlug": "sneakers" },
      { "q": "rolex submariner", "categoryIds": ["31387"], "categorySlug": "rolex" },
      { "q": "omega speedmaster", "categoryIds": ["31387"], "categorySlug": "omega" },
      { "q": "lego sealed retired", "categoryIds": ["19006"], "categorySlug": "lego_sets" },
      { "q": "funko pop chase", "categoryIds": ["149372"], "categorySlug": "funko" },
      { "q": "pcgs ms", "categoryIds": ["11116"], "categorySlug": "coins" },
      { "q": "leica m3", "categoryIds": ["15230"], "categorySlug": "cameras" },
      { "q": "montblanc 149", "categoryIds": ["7275"], "categorySlug": "pens" },
      { "q": "first pressing vinyl", "categoryIds": ["176985"], "categorySlug": "music" },
      { "q": "hermes birkin", "categoryIds": ["169291"], "categorySlug": "luxury_handbags" }
    ]
  }
}
