[
  {
    "id": "ebay",
    "name": "eBay (Browse API)",
    "domain": "ebay.com",
    "country": "US",
    "supportedCountries": ["US", "CA", "GB", "DE", "FR", "AU", "IT", "ES"],
    "languages": ["en", "de", "fr"],
    "sourceType": "marketplace",
    "categories": ["pokemon", "magic_the_gathering", "yugioh", "sports_cards", "comics", "video_games", "sneakers", "watches", "lego_sets", "funko", "coins", "music", "cameras", "pens", "luxury_handbags"],
    "api": { "available": true, "docsUrl": "https://developer.ebay.com/api-docs/buy/browse/overview.html", "auth": "oauth", "notes": "Buy → Browse API v1: OAuth2 client-credentials (scope https://api.ebay.com/oauth/api_scope), GET /buy/browse/v1/item_summary/search (q, category_ids, filter, sort, limit ≤ 200, offset+limit ≤ 10,000), X-EBAY-C-MARKETPLACE-ID header for EBAY_US/CA/GB/DE/FR/AU. Live listings only — sold/completed items are in the limited-release Marketplace Insights API (business approval), not in Browse. Default Buy API quota 5,000 calls/day per app (more after Application Growth Check). Credentials: developer.ebay.com keyset (App ID = EBAY_CLIENT_ID, Cert ID = EBAY_CLIENT_SECRET) + Buy API access application." },
    "urls": { "search": "https://api.ebay.com/buy/browse/v1/item_summary/search", "product": "https://www.ebay.com/itm/{legacyItemId}", "sold": null, "sitemap": null, "robots": "https://www.ebay.com/robots.txt" },
    "data": { "liveListings": true, "soldResults": false, "auctionResults": false, "historical": "none", "images": true, "seller": true, "saleDate": false, "realizedPrice": false, "fees": false, "grading": true, "certNumber": false, "itemId": true, "gtin": true, "population": false, "catalog": false },
    "access": { "pagination": "offset", "jsRendering": false, "antiBot": "none", "cloudflare": false, "robots": "API only; www.ebay.com HTML is not crawled", "rateLimit": "5,000 calls/day default (Buy APIs); 429 on excess", "preferredEngine": "api" },
    "currency": ["USD", "CAD", "GBP", "EUR", "AUD"],
    "freshness": "realtime",
    "priority": "wave1",
    "difficulty": "medium",
    "reliability": 0.85,
    "legal": "eBay API License Agreement: attribution, listing data caching limits, no scraping of ebay.com HTML. Connector uses the official API exclusively.",
    "status": "gated",
    "connectors": ["ebay-browse"],
    "statusReason": "Connector fully implemented against the official OpenAPI contract; needs EBAY_CLIENT_ID + EBAY_CLIENT_SECRET (developer.ebay.com). Fixtures synthesised from the contract until a key exists.",
    "verified": true,
    "verifiedAt": "2026-09-08",
    "notes": "developer.ebay.com documentation returns HTTP 403 to non-browser clients (and to Firecrawl); the contract was read from the published buy_browse_v1_oas3.json (v1.20.4) mirror."
  },
  {
    "id": "etsy",
    "name": "Etsy (Open API v3)",
    "domain": "etsy.com",
    "country": "US",
    "supportedCountries": ["US", "GB", "CA", "DE", "FR", "AU"],
    "languages": ["en"],
    "sourceType": "marketplace",
    "categories": ["vintage_toys", "cameras", "pens", "clocks", "design_furniture", "antiques", "porcelain", "glass_crystal", "silver", "jewelry", "other_watches", "movie_posters", "music", "books", "postcards", "advertising"],
    "api": { "available": true, "docsUrl": "https://developers.etsy.com/documentation/reference#operation/findAllListingsActive", "auth": "api_key", "notes": "x-api-key header (app keystring). findAllListingsActive: keywords, taxonomy_id, min/max_price, sort_on, limit ≤ 100, offset; /listings/batch?includes=Images,Shop for images/shop; /seller-taxonomy/nodes for ids. Money {amount, divisor, currency_code}. Default quota 10 qps / 10,000 per day. No sold prices. Register at etsy.com/developers/register (commercial access needs Etsy approval)." },
    "urls": { "search": "https://openapi.etsy.com/v3/application/listings/active", "product": "https://www.etsy.com/listing/{listing_id}", "sold": null, "sitemap": null, "robots": "https://www.etsy.com/robots.txt" },
    "data": { "liveListings": true, "soldResults": false, "auctionResults": false, "historical": "none", "images": true, "seller": true, "saleDate": false, "realizedPrice": false, "fees": false, "grading": false, "certNumber": false, "itemId": true, "gtin": false, "population": false, "catalog": false },
    "access": { "pagination": "offset", "jsRendering": false, "antiBot": "none", "cloudflare": false, "robots": "API only", "rateLimit": "10 requests/s, 10,000/day per app", "preferredEngine": "api" },
    "currency": ["USD", "GBP", "EUR", "CAD", "AUD"],
    "freshness": "realtime",
    "priority": "wave1",
    "difficulty": "easy",
    "reliability": 0.7,
    "legal": "Etsy API Terms of Use (etsy.com/legal/api): attribution, data use limited to the app's purpose; commercial apps reviewed by Etsy.",
    "status": "gated",
    "connectors": ["etsy"],
    "statusReason": "Connector implemented against the official OpenAPI schema (etsy.com/openapi/generated/oas/3.0.0.json); needs ETSY_API_KEY. Fixture synthesised from the schema (the reference carries no example response).",
    "verified": true,
    "verifiedAt": "2026-09-08",
    "notes": "Taxonomy ids are resolved at run time by node-name path and cached in the cursor."
  },
  {
    "id": "trademe",
    "name": "Trade Me (API v1)",
    "domain": "trademe.co.nz",
    "country": "NZ",
    "supportedCountries": ["NZ"],
    "languages": ["en"],
    "sourceType": "marketplace",
    "categories": ["coins", "banknotes", "stamps", "clocks", "silver", "jewelry", "militaria", "movie_memorabilia", "pins", "postcards", "antiques", "design_furniture", "vintage_toys", "model_cars", "lego_sets", "trading_cards", "music", "books", "comics", "cameras", "other_watches"],
    "api": { "available": true, "docsUrl": "https://developer.trademe.co.nz/api-reference/search-methods/general-search", "auth": "oauth", "notes": "OAuth 1.0a; public search methods accept application-only PLAINTEXT signing with the consumer key/secret. GET /v1/Search/General.json?category=&rows=&page=&sort_order=; response TotalCount/Page/PageSize/List[] (ListingId, Title, StartPrice, BuyNowPrice, MaxBidAmount, BidCount, StartDate/EndDate as /Date(ms)/, PictureHref, Region, Suburb…). Hourly call quota, HTTP 429. Production apps reviewed by Trade Me staff. Category tree public at /v1/Categories.json (no auth)." },
    "urls": { "search": "https://api.trademe.co.nz/v1/Search/General.json", "product": "https://www.trademe.co.nz/a/listing/{ListingId}", "sold": null, "sitemap": null, "robots": "https://www.trademe.co.nz/robots.txt" },
    "data": { "liveListings": true, "soldResults": false, "auctionResults": false, "historical": "none", "images": true, "seller": false, "saleDate": false, "realizedPrice": false, "fees": false, "grading": false, "certNumber": false, "itemId": true, "gtin": false, "population": false, "catalog": false },
    "access": { "pagination": "page_number", "jsRendering": false, "antiBot": "none", "cloudflare": false, "robots": "API only", "rateLimit": "per-hour quota per application (1,000/h per authenticated user)", "preferredEngine": "api" },
    "currency": ["NZD"],
    "freshness": "realtime",
    "priority": "wave2",
    "difficulty": "medium",
    "reliability": 0.7,
    "legal": "Trade Me API Terms (developer.trademe.co.nz/api-terms): attribution, no raw resale of data.",
    "status": "gated",
    "connectors": ["trademe"],
    "statusReason": "Connector implemented; needs TRADEME_CONSUMER_KEY + TRADEME_CONSUMER_SECRET (developer.trademe.co.nz). Category numbers verified live from the public /v1/Categories.json; fixture synthesised from the documented response fields.",
    "verified": true,
    "verifiedAt": "2026-09-08",
    "notes": null
  },
  {
    "id": "whatnot",
    "name": "Whatnot",
    "domain": "whatnot.com",
    "country": "US",
    "supportedCountries": ["US", "CA", "GB", "DE", "FR"],
    "languages": ["en"],
    "sourceType": "marketplace",
    "categories": ["pokemon", "sports_cards", "funko", "sneakers", "comics"],
    "api": { "available": false, "docsUrl": null, "auth": "none", "notes": "No public/developer API. Live-stream auctions are app/web-app only; listing and sold data sit behind an authenticated GraphQL used by the SPA. Only unofficial third-party scrapers (Apify actors) exist." },
    "urls": { "search": null, "product": "https://www.whatnot.com/listing/{id}", "sold": null, "sitemap": null, "robots": "https://www.whatnot.com/robots.txt" },
    "data": { "liveListings": true, "soldResults": true, "auctionResults": true, "historical": "months", "images": true, "seller": true, "saleDate": true, "realizedPrice": true, "fees": false, "grading": true, "certNumber": false, "itemId": true, "gtin": false, "population": false, "catalog": false },
    "access": { "pagination": "infinite_scroll", "jsRendering": true, "antiBot": "blocking", "cloudflare": true, "robots": "robots.txt itself returns 403 behind a Cloudflare managed challenge (not readable)", "rateLimit": null, "preferredEngine": "none" },
    "currency": ["USD"],
    "freshness": "realtime",
    "priority": "wave2",
    "difficulty": "very_hard",
    "reliability": 0.5,
    "legal": "Whatnot Terms of Service prohibit automated access; data requires a logged-in session.",
    "status": "blocked",
    "connectors": [],
    "statusReason": "Cloudflare managed challenge on every path (including robots.txt) for plain clients; no public API; sold data only inside the authenticated app. Not crawled (SPEC §36).",
    "verified": true,
    "verifiedAt": "2026-09-08",
    "notes": "Revisit only if Whatnot publishes a developer API."
  },
  {
    "id": "mercari-us",
    "name": "Mercari (US)",
    "domain": "mercari.com",
    "country": "US",
    "supportedCountries": ["US"],
    "languages": ["en"],
    "sourceType": "marketplace",
    "categories": ["pokemon", "sports_cards", "video_games", "sneakers", "funko", "vintage_toys", "luxury_handbags"],
    "api": { "available": false, "docsUrl": null, "auth": "login", "notes": "No developer API. Search results are loaded by an XHR (https://www.mercari.com/v1/api/search) that requires session-bound headers/cookies minted by the SPA (cookieless GET → 401); pages are behind a Cloudflare managed challenge for non-browser clients." },
    "urls": { "search": "https://www.mercari.com/search/?keyword=", "product": "https://www.mercari.com/us/item/{id}/", "sold": null, "sitemap": null, "robots": "https://www.mercari.com/robots.txt" },
    "data": { "liveListings": true, "soldResults": true, "auctionResults": false, "historical": "months", "images": true, "seller": true, "saleDate": false, "realizedPrice": true, "fees": false, "grading": true, "certNumber": false, "itemId": true, "gtin": false, "population": false, "catalog": false },
    "access": { "pagination": "cursor", "jsRendering": true, "antiBot": "blocking", "cloudflare": true, "robots": "Googlebot-specific rules; generic crawlers not addressed. /search/ returns a Cloudflare 'Just a moment' challenge to RareIndexBot.", "rateLimit": null, "preferredEngine": "none" },
    "currency": ["USD"],
    "freshness": "realtime",
    "priority": "wave2",
    "difficulty": "very_hard",
    "reliability": 0.5,
    "legal": "Mercari Terms of Service prohibit scraping/automated access.",
    "status": "blocked",
    "connectors": [],
    "statusReason": "Cloudflare challenge + session-bound search API (401 without SPA-minted auth); no __NEXT_DATA__ reachable. Not circumvented.",
    "verified": true,
    "verifiedAt": "2026-09-08",
    "notes": null
  },
  {
    "id": "whisky-auction",
    "name": "Whisky.Auction",
    "domain": "whisky.auction",
    "country": "GB",
    "supportedCountries": ["GB"],
    "languages": ["en"],
    "sourceType": "auction_house",
    "categories": ["whisky", "rum", "cognac", "wine"],
    "api": { "available": false, "docsUrl": null, "auth": "none", "notes": "No API; server-rendered HTML with data-attributes on lot cards." },
    "urls": { "search": "https://whisky.auction/auctions/search?src=", "product": "https://whisky.auction/auctions/lot/{lotId}/{slug}", "sold": "https://whisky.auction/auctions/auction/{auctionId}?pageIndex=0&pageSize=90&sort=Price&dir=desc", "sitemap": "https://whisky.auction/sitemap.xml", "robots": "https://whisky.auction/robots.txt" },
    "data": { "liveListings": false, "soldResults": true, "auctionResults": true, "historical": "years", "images": true, "seller": false, "saleDate": true, "realizedPrice": true, "fees": true, "grading": false, "certNumber": false, "itemId": true, "gtin": false, "population": false, "catalog": false },
    "access": { "pagination": "page_number", "jsRendering": false, "antiBot": "none", "cloudflare": false, "robots": "User-agent: * → Disallow /smartpaynotification only; sitemap per auction", "rateLimit": "none published; 2.5 s politeness", "preferredEngine": "api" },
    "currency": ["GBP"],
    "freshness": "daily",
    "priority": "wave1",
    "difficulty": "easy",
    "reliability": 0.9,
    "legal": "T&Cs cover bidding/selling only; no automated-access clause. Winning bid = hammer (buyer commission separate).",
    "status": "implemented",
    "connectors": ["whisky-auction"],
    "statusReason": null,
    "verified": true,
    "verifiedAt": "2026-09-08",
    "notes": "~190 past auctions since 2016 (ids 10–202), 800–4,000 lots each; category filter accepts comma lists; lots sorted by price desc, unsold lots carry winning bid -1."
  },
  {
    "id": "unicorn-auctions",
    "name": "Unicorn Auctions",
    "domain": "unicornauctions.com",
    "country": "US",
    "supportedCountries": ["US"],
    "languages": ["en"],
    "sourceType": "auction_house",
    "categories": ["whisky", "wine", "rum", "cognac"],
    "api": { "available": false, "docsUrl": null, "auth": "none", "notes": "Next.js SPA; auction/lot data loaded client-side from /api/* (robots Disallow: /api/). __NEXT_DATA__ of /auctions/ended contains no lot data." },
    "urls": { "search": "https://unicornauctions.com/search", "product": "https://unicornauctions.com/lot/{id}", "sold": "https://unicornauctions.com/auctions/ended", "sitemap": "https://unicornauctions.com/sitemap.xml", "robots": "https://www.unicornauctions.com/robots.txt" },
    "data": { "liveListings": true, "soldResults": true, "auctionResults": true, "historical": "years", "images": true, "seller": false, "saleDate": true, "realizedPrice": true, "fees": false, "grading": false, "certNumber": false, "itemId": true, "gtin": false, "population": false, "catalog": false },
    "access": { "pagination": "infinite_scroll", "jsRendering": true, "antiBot": "low", "cloudflare": false, "robots": "Allow: / ; Disallow: /api/, /lot-preview, /exchange", "rateLimit": null, "preferredEngine": "none" },
    "currency": ["USD"],
    "freshness": "daily",
    "priority": "wave2",
    "difficulty": "hard",
    "reliability": 0.85,
    "legal": "Terms of Use: 'Use any robot, spider, or other automatic device, process, or means to access the Service for any purpose, including monitoring or copying any of the material' is prohibited.",
    "status": "blocked",
    "connectors": [],
    "statusReason": "Terms of Use expressly forbid automated access/copying, and the only data path is the robots-disallowed /api/. Not crawled.",
    "verified": true,
    "verifiedAt": "2026-09-08",
    "notes": null
  },
  {
    "id": "acker",
    "name": "Acker Merrall & Condit (Acker Wines)",
    "domain": "ackerwines.com",
    "country": "US",
    "supportedCountries": ["US", "HK", "SG"],
    "languages": ["en"],
    "sourceType": "auction_house",
    "categories": ["wine", "whisky", "cognac"],
    "api": { "available": false, "docsUrl": null, "auth": "login", "notes": "WordPress/WooCommerce (retail) + auction platform. Cloudflare WAF returns 403 'Attention Required' to all direct clients (bot and browser UA). Reachable through Firecrawl, but /wine-spirits-auction-results/ (auction archives) says 'This content is for registered users only' and 'Auction archives is currently not available'." },
    "urls": { "search": null, "product": "https://www.ackerwines.com/product/{id}", "sold": "https://www.ackerwines.com/wine-spirits-auction-results/", "sitemap": null, "robots": "https://www.ackerwines.com/robots.txt" },
    "data": { "liveListings": true, "soldResults": true, "auctionResults": true, "historical": "decades", "images": true, "seller": false, "saleDate": true, "realizedPrice": true, "fees": true, "grading": false, "certNumber": false, "itemId": true, "gtin": false, "population": false, "catalog": false },
    "access": { "pagination": "unknown", "jsRendering": true, "antiBot": "blocking", "cloudflare": true, "robots": "Allows auction/product pages; disallows /api/, account, cart, faceted query forms", "rateLimit": null, "preferredEngine": "firecrawl" },
    "currency": ["USD", "HKD", "SGD"],
    "freshness": "weekly",
    "priority": "wave2",
    "difficulty": "very_hard",
    "reliability": 0.9,
    "legal": "Auction results archive is a members-only area (login wall) — never bypassed. Upcoming-auction catalogues (PDF/XLSX on rackcdn) are public but carry estimates, not results.",
    "status": "blocked",
    "connectors": [],
    "statusReason": "Direct HTTP blocked by Cloudflare WAF (403 for every UA); prices-realised archive behind login (verified via Firecrawl 2026-09-08). Only pre-sale catalogues are public — no realised prices.",
    "verified": true,
    "verifiedAt": "2026-09-08",
    "notes": "Firecrawl probes used: 3 credits (auctions page, map, results page)."
  },
  {
    "id": "zachys",
    "name": "Zachys Wine Auctions",
    "domain": "bid.zachys.com",
    "country": "US",
    "supportedCountries": ["US", "HK"],
    "languages": ["en"],
    "sourceType": "auction_house",
    "categories": ["wine", "whisky"],
    "api": { "available": false, "docsUrl": null, "auth": "none", "notes": "Auction platform at bid.zachys.com (catalog/lot pages) returns CloudFront 403 'Request blocked' to the honest bot UA; robots.txt sets Crawl-delay: 120 and disallows /search and /api/*. The retail shop www.zachys.com is a Shopify store with a public /products.json (retail wine listings, USD) — a lead for the Shopify group (g3), not auction results." },
    "urls": { "search": null, "product": "https://bid.zachys.com/lot-details/index/catalog/{catalogId}/lot/{lotId}/", "sold": "https://bid.zachys.com/auctions?page=1&status=5", "sitemap": "https://bid.zachys.com/sitemap/cache/single-index.xml", "robots": "https://bid.zachys.com/robots.txt" },
    "data": { "liveListings": true, "soldResults": true, "auctionResults": true, "historical": "years", "images": true, "seller": false, "saleDate": true, "realizedPrice": true, "fees": true, "grading": false, "certNumber": false, "itemId": true, "gtin": false, "population": false, "catalog": false },
    "access": { "pagination": "page_number", "jsRendering": false, "antiBot": "blocking", "cloudflare": false, "robots": "Crawl-delay: 120; Disallow /search, /api/*, register/login paths", "rateLimit": "Crawl-delay 120 s", "preferredEngine": "none" },
    "currency": ["USD", "HKD"],
    "freshness": "weekly",
    "priority": "wave2",
    "difficulty": "hard",
    "reliability": 0.9,
    "legal": "Not evaluated beyond robots (blocked before content).",
    "status": "blocked",
    "connectors": [],
    "statusReason": "bid.zachys.com answers HTTP 403 (CloudFront 'Request blocked') to plain requests for auction lists and catalogues; not circumvented. Retail Shopify storefront (www.zachys.com/products.json) noted for the Shopify connector group.",
    "verified": true,
    "verifiedAt": "2026-09-08",
    "notes": "Lead for g3: https://www.zachys.com/products.json?limit=250 works (retail listings, not sales)."
  },
  {
    "id": "spirits-auctioneer",
    "name": "Spirits Auctioneer",
    "domain": "spiritsauctioneer.com",
    "country": "GB",
    "supportedCountries": ["GB"],
    "languages": ["en"],
    "sourceType": "auction_house",
    "categories": ["whisky"],
    "api": { "available": false, "docsUrl": null, "auth": "none", "notes": null },
    "urls": { "search": null, "product": null, "sold": null, "sitemap": null, "robots": null },
    "data": { "liveListings": false, "soldResults": false, "auctionResults": false, "historical": "none", "images": false, "seller": false, "saleDate": false, "realizedPrice": false, "fees": false, "grading": false, "certNumber": false, "itemId": false, "gtin": false, "population": false, "catalog": false },
    "access": { "pagination": "none", "jsRendering": false, "antiBot": "none", "cloudflare": false, "robots": null, "rateLimit": null, "preferredEngine": "none" },
    "currency": ["GBP"],
    "freshness": "unknown",
    "priority": "later",
    "difficulty": "trivial",
    "reliability": 0.1,
    "legal": null,
    "status": "rejected",
    "connectors": [],
    "statusReason": "Domain serves a 114-byte empty page (parked/no content) on 2026-09-08 — no auction data.",
    "verified": true,
    "verifiedAt": "2026-09-08",
    "notes": null
  },
  {
    "id": "wine-searcher",
    "name": "Wine-Searcher",
    "domain": "wine-searcher.com",
    "country": "NZ",
    "supportedCountries": ["US", "GB", "FR", "DE", "HK"],
    "languages": ["en"],
    "sourceType": "pricing_guide",
    "categories": ["wine", "whisky"],
    "api": { "available": true, "docsUrl": "https://www.wine-searcher.com/trade/api", "auth": "partner", "notes": "Paid commercial API (Wine-Searcher Pro / API licence); the public site aggregates merchant offers (listings), not realised sales." },
    "urls": { "search": "https://www.wine-searcher.com/find/", "product": null, "sold": null, "sitemap": null, "robots": "https://www.wine-searcher.com/robots.txt" },
    "data": { "liveListings": true, "soldResults": false, "auctionResults": false, "historical": "years", "images": false, "seller": true, "saleDate": false, "realizedPrice": false, "fees": false, "grading": false, "certNumber": false, "itemId": true, "gtin": false, "population": false, "catalog": true },
    "access": { "pagination": "page_number", "jsRendering": true, "antiBot": "high", "cloudflare": false, "robots": "Disallows price/bottle-size/currency/sort facets (*Xprice_set, *Xbottle_size, *Xcurrencycode, *Xsort_order), /json-*, /site-search*, /portal/", "rateLimit": null, "preferredEngine": "none" },
    "currency": ["USD", "GBP", "EUR"],
    "freshness": "daily",
    "priority": "later",
    "difficulty": "very_hard",
    "reliability": 0.8,
    "legal": "Terms of use prohibit scraping; data licensed commercially.",
    "status": "rejected",
    "connectors": [],
    "statusReason": "Paid API / licensed data; site terms forbid scraping and robots disallows the price facets we would need. Merchant asking prices only — no sales.",
    "verified": true,
    "verifiedAt": "2026-09-08",
    "notes": null
  },
  {
    "id": "liv-ex",
    "name": "Liv-ex",
    "domain": "liv-ex.com",
    "country": "GB",
    "supportedCountries": ["GB"],
    "languages": ["en"],
    "sourceType": "analytics_provider",
    "categories": ["wine"],
    "api": { "available": true, "docsUrl": "https://www.liv-ex.com/data-solutions/", "auth": "partner", "notes": "Members-only trading exchange; indices and transaction data are a paid data product." },
    "urls": { "search": null, "product": null, "sold": null, "sitemap": null, "robots": "https://www.liv-ex.com/robots.txt" },
    "data": { "liveListings": false, "soldResults": true, "auctionResults": false, "historical": "decades", "images": false, "seller": false, "saleDate": true, "realizedPrice": true, "fees": false, "grading": false, "certNumber": false, "itemId": true, "gtin": false, "population": false, "catalog": true },
    "access": { "pagination": "none", "jsRendering": true, "antiBot": "medium", "cloudflare": false, "robots": null, "rateLimit": null, "preferredEngine": "none" },
    "currency": ["GBP"],
    "freshness": "daily",
    "priority": "later",
    "difficulty": "very_hard",
    "reliability": 0.95,
    "legal": "Paid membership/data licence; no public data.",
    "status": "rejected",
    "connectors": [],
    "statusReason": "Paid, members-only data (per brief). Only headline index values are public.",
    "verified": false,
    "verifiedAt": null,
    "notes": null
  },
  {
    "id": "collectiblend",
    "name": "Collectiblend (camera price guide)",
    "domain": "collectiblend.com",
    "country": "US",
    "supportedCountries": ["US"],
    "languages": ["en"],
    "sourceType": "pricing_guide",
    "categories": ["cameras"],
    "api": { "available": false, "docsUrl": null, "auth": "none", "notes": "Cloudflare managed challenge ('Just a moment…') on every path, including robots.txt, for both the bot UA and a plain browser UA." },
    "urls": { "search": "https://collectiblend.com/Cameras/", "product": null, "sold": null, "sitemap": null, "robots": "https://collectiblend.com/robots.txt" },
    "data": { "liveListings": false, "soldResults": false, "auctionResults": false, "historical": "years", "images": true, "seller": false, "saleDate": false, "realizedPrice": false, "fees": false, "grading": false, "certNumber": false, "itemId": true, "gtin": false, "population": false, "catalog": true },
    "access": { "pagination": "page_number", "jsRendering": true, "antiBot": "blocking", "cloudflare": true, "robots": "unreadable (403 challenge)", "rateLimit": null, "preferredEngine": "none" },
    "currency": ["USD"],
    "freshness": "weekly",
    "priority": "wave3",
    "difficulty": "very_hard",
    "reliability": 0.7,
    "legal": "robots.txt cannot be read, so path permissions cannot be verified → not crawled.",
    "status": "blocked",
    "connectors": [],
    "statusReason": "Cloudflare managed JS challenge on all paths incl. robots.txt; policy unverifiable, no public structured data. Not circumvented.",
    "verified": true,
    "verifiedAt": "2026-09-08",
    "notes": null
  },
  {
    "id": "adorama-used",
    "name": "Adorama Used",
    "domain": "adorama.com",
    "country": "US",
    "supportedCountries": ["US"],
    "languages": ["en"],
    "sourceType": "dealer",
    "categories": ["cameras", "audio_equipment"],
    "api": { "available": false, "docsUrl": null, "auth": "none", "notes": "/used and /l/Used/Cameras answer HTTP 403 (771-byte block page) to both the honest bot UA and a plain browser UA — Akamai-style bot management." },
    "urls": { "search": "https://www.adorama.com/l/Used/Cameras", "product": null, "sold": null, "sitemap": null, "robots": "https://www.adorama.com/robots.txt" },
    "data": { "liveListings": true, "soldResults": false, "auctionResults": false, "historical": "none", "images": true, "seller": false, "saleDate": false, "realizedPrice": false, "fees": false, "grading": true, "certNumber": false, "itemId": true, "gtin": true, "population": false, "catalog": false },
    "access": { "pagination": "page_number", "jsRendering": true, "antiBot": "blocking", "cloudflare": false, "robots": "Allows /l/ listing pages; disallows catalog.tpl actions, /catalog/, account/tracking paths", "rateLimit": null, "preferredEngine": "none" },
    "currency": ["USD"],
    "freshness": "daily",
    "priority": "wave3",
    "difficulty": "very_hard",
    "reliability": 0.7,
    "legal": "Adorama Terms of Use prohibit automated data collection.",
    "status": "blocked",
    "connectors": [],
    "statusReason": "Bot management returns 403 to every non-browser session; terms prohibit scraping. Existing MPB/B&H Used connectors already cover used-camera dealer listings.",
    "verified": true,
    "verifiedAt": "2026-09-08",
    "notes": null
  },
  {
    "id": "leica-store",
    "name": "Leica Store (official retail)",
    "domain": "leica-camera.com",
    "country": "DE",
    "supportedCountries": ["DE", "US", "GB"],
    "languages": ["en", "de"],
    "sourceType": "manufacturer",
    "categories": ["cameras"],
    "api": { "available": false, "docsUrl": null, "auth": "none", "notes": null },
    "urls": { "search": null, "product": null, "sold": null, "sitemap": null, "robots": null },
    "data": { "liveListings": true, "soldResults": false, "auctionResults": false, "historical": "none", "images": true, "seller": false, "saleDate": false, "realizedPrice": false, "fees": false, "grading": false, "certNumber": false, "itemId": true, "gtin": true, "population": false, "catalog": true },
    "access": { "pagination": "unknown", "jsRendering": true, "antiBot": "none", "cloudflare": false, "robots": null, "rateLimit": null, "preferredEngine": "none" },
    "currency": ["EUR", "USD"],
    "freshness": "weekly",
    "priority": "later",
    "difficulty": "medium",
    "reliability": 0.6,
    "legal": null,
    "status": "rejected",
    "connectors": [],
    "statusReason": "Official retail store of new-production cameras (MSRP), not a secondary market; MSRP catalogue would belong to a manufacturer-catalog group. Not probed.",
    "verified": false,
    "verifiedAt": null,
    "notes": null
  },
  {
    "id": "1stdibs",
    "name": "1stDibs",
    "domain": "1stdibs.com",
    "country": "US",
    "supportedCountries": ["US", "GB", "FR", "IT", "DE"],
    "languages": ["en"],
    "sourceType": "marketplace",
    "categories": ["design_furniture", "antiques", "jewelry", "other_watches", "luxury_handbags", "art", "porcelain", "glass_crystal", "silver", "clocks"],
    "api": { "available": false, "docsUrl": null, "auth": "none", "notes": "No public API (internal GraphQL at /soa/graphql reserved to the site). Browse pages embed the server-rendered Relay store (serverVars_data JSON) with 60 items/page and prices in 10 currencies." },
    "urls": { "search": null, "product": "https://www.1stdibs.com/{vertical}/{path}/id-{serviceId}/", "sold": null, "sitemap": "https://www.1stdibs.com/sitemap.xml", "robots": "https://www.1stdibs.com/robots.txt" },
    "data": { "liveListings": true, "soldResults": false, "auctionResults": false, "historical": "none", "images": true, "seller": true, "saleDate": false, "realizedPrice": false, "fees": false, "grading": false, "certNumber": false, "itemId": true, "gtin": false, "population": false, "catalog": false },
    "access": { "pagination": "page_number", "jsRendering": false, "antiBot": "low", "cloudflare": false, "robots": "Disallows /search/ and /soa/ (except the exact /soa/graphql path); browse paths allowed", "rateLimit": "site caps browse at 50 pages; 5 s politeness", "preferredEngine": "api" },
    "currency": ["USD"],
    "freshness": "daily",
    "priority": "wave1",
    "difficulty": "medium",
    "reliability": 0.8,
    "legal": "User Agreement (checked 2026-09-08) contains no clause on automated access to public pages. F5/Shape client-detection script present but no challenge served.",
    "status": "implemented",
    "connectors": ["1stdibs"],
    "statusReason": null,
    "verified": true,
    "verifiedAt": "2026-09-08",
    "notes": "~3 MB per page; dealer asking prices only. Sold items appear only as isSold flags on live pages (no sold-price archive)."
  },
  {
    "id": "chairish",
    "name": "Chairish",
    "domain": "chairish.com",
    "country": "US",
    "supportedCountries": ["US"],
    "languages": ["en"],
    "sourceType": "marketplace",
    "categories": ["design_furniture", "antiques", "art", "jewelry", "other_watches", "luxury_handbags", "porcelain", "glass_crystal", "silver", "clocks"],
    "api": { "available": false, "docsUrl": null, "auth": "none", "notes": "No public API; browse pages embed schema.org Product JSON-LD arrays (48 per page)." },
    "urls": { "search": null, "product": "https://www.chairish.com/product/{id}/{slug}", "sold": null, "sitemap": null, "robots": "https://www.chairish.com/robots.txt" },
    "data": { "liveListings": true, "soldResults": false, "auctionResults": false, "historical": "none", "images": true, "seller": true, "saleDate": false, "realizedPrice": false, "fees": false, "grading": false, "certNumber": false, "itemId": true, "gtin": false, "population": false, "catalog": false },
    "access": { "pagination": "page_number", "jsRendering": false, "antiBot": "none", "cloudflare": false, "robots": "Disallows /search, /saved-search, /product/list|grid|data|id and account paths; /collection/ and /style/ allowed", "rateLimit": "none published; 3 s politeness", "preferredEngine": "api" },
    "currency": ["USD"],
    "freshness": "daily",
    "priority": "wave1",
    "difficulty": "easy",
    "reliability": 0.75,
    "legal": "Terms of Service live in a JS-only help centre (not machine-readable); public browse pages only, seller business location kept, no personal data.",
    "status": "implemented",
    "connectors": ["chairish"],
    "statusReason": null,
    "verified": true,
    "verifiedAt": "2026-09-08",
    "notes": null
  },
  {
    "id": "pamono",
    "name": "Pamono",
    "domain": "pamono.com",
    "country": "DE",
    "supportedCountries": ["DE", "US", "GB", "FR", "IT", "AU", "CA"],
    "languages": ["en", "de", "fr", "it"],
    "sourceType": "marketplace",
    "categories": ["design_furniture", "antiques", "jewelry", "other_watches", "porcelain", "glass_crystal", "silver", "clocks"],
    "api": { "available": false, "docsUrl": null, "auth": "none", "notes": "Magento storefront; category grids server-rendered with itemprop=price content attributes; per-country stores (pamono.com USD, .eu EUR, .co.uk GBP)." },
    "urls": { "search": "https://www.pamono.com/catalogsearch/result/?q=", "product": "https://www.pamono.com/{slug}", "sold": null, "sitemap": null, "robots": "https://www.pamono.com/robots.txt" },
    "data": { "liveListings": true, "soldResults": false, "auctionResults": false, "historical": "none", "images": true, "seller": false, "saleDate": false, "realizedPrice": false, "fees": false, "grading": false, "certNumber": false, "itemId": true, "gtin": false, "population": false, "catalog": false },
    "access": { "pagination": "page_number", "jsRendering": false, "antiBot": "none", "cloudflare": false, "robots": "Disallows /catalog/, /customer/, /checkout/, /wishlist/, /terms/ etc.; category pages allowed; Crawl-Delay 5–7 s for named bots", "rateLimit": "4 s politeness", "preferredEngine": "api" },
    "currency": ["USD"],
    "freshness": "daily",
    "priority": "wave2",
    "difficulty": "easy",
    "reliability": 0.7,
    "legal": "/terms/ is disallowed for crawlers and therefore not reviewed automatically; only public category grids are read.",
    "status": "implemented",
    "connectors": ["pamono"],
    "statusReason": null,
    "verified": true,
    "verifiedAt": "2026-09-08",
    "notes": null
  },
  {
    "id": "incollect",
    "name": "Incollect",
    "domain": "incollect.com",
    "country": "US",
    "supportedCountries": ["US"],
    "languages": ["en"],
    "sourceType": "marketplace",
    "categories": ["design_furniture", "antiques", "art"],
    "api": { "available": false, "docsUrl": null, "auth": "none", "notes": "Drupal/Angular listing grids (/listing/furniture/lighting?page=N, 'data-num-found'); every card shows 'Request Price' — no public asking prices." },
    "urls": { "search": null, "product": "https://www.incollect.com/listings/{category}/{slug}-{id}", "sold": null, "sitemap": null, "robots": "https://www.incollect.com/robots.txt" },
    "data": { "liveListings": true, "soldResults": false, "auctionResults": false, "historical": "none", "images": true, "seller": true, "saleDate": false, "realizedPrice": false, "fees": false, "grading": false, "certNumber": false, "itemId": true, "gtin": false, "population": false, "catalog": false },
    "access": { "pagination": "page_number", "jsRendering": true, "antiBot": "none", "cloudflare": false, "robots": "Crawl-delay: 10; Drupal system paths disallowed", "rateLimit": "Crawl-delay 10 s", "preferredEngine": "api" },
    "currency": ["USD"],
    "freshness": "daily",
    "priority": "later",
    "difficulty": "medium",
    "reliability": 0.5,
    "legal": null,
    "status": "rejected",
    "connectors": [],
    "statusReason": "No public prices (price on request only) → no market data to ingest; dealer/designer names only.",
    "verified": true,
    "verifiedAt": "2026-09-08",
    "notes": null
  },
  {
    "id": "peyton-street-pens",
    "name": "Peyton Street Pens",
    "domain": "peytonstreetpens.com",
    "country": "US",
    "supportedCountries": ["US"],
    "languages": ["en"],
    "sourceType": "dealer",
    "categories": ["pens", "lighters"],
    "api": { "available": false, "docsUrl": null, "auth": "none", "notes": "BigCommerce (no public products JSON); category grids server-rendered; product pages carry JSON-LD Product." },
    "urls": { "search": null, "product": "https://www.peytonstreetpens.com/{slug}.html", "sold": null, "sitemap": "https://www.peytonstreetpens.com/xmlsitemap.php", "robots": "https://www.peytonstreetpens.com/robots.txt" },
    "data": { "liveListings": true, "soldResults": false, "auctionResults": false, "historical": "none", "images": true, "seller": false, "saleDate": false, "realizedPrice": false, "fees": false, "grading": true, "certNumber": false, "itemId": true, "gtin": false, "population": false, "catalog": false },
    "access": { "pagination": "page_number", "jsRendering": false, "antiBot": "none", "cloudflare": false, "robots": "Disallows search.php, cart/account/checkout, _bc_fsnf facets; named AI bots disallowed entirely", "rateLimit": "3 s politeness", "preferredEngine": "api" },
    "currency": ["USD"],
    "freshness": "daily",
    "priority": "wave2",
    "difficulty": "easy",
    "reliability": 0.75,
    "legal": "Store policies contain grading definitions, no automated-access clause.",
    "status": "implemented",
    "connectors": ["peyton-street-pens"],
    "statusReason": null,
    "verified": true,
    "verifiedAt": "2026-09-08",
    "notes": "Not Shopify (BigCommerce) — implemented here rather than deferred to the Shopify group."
  },
  {
    "id": "fountain-pen-hospital",
    "name": "Fountain Pen Hospital",
    "domain": "fountainpenhospital.com",
    "country": "US",
    "supportedCountries": ["US"],
    "languages": ["en"],
    "sourceType": "dealer",
    "categories": ["pens"],
    "api": { "available": true, "docsUrl": null, "auth": "none", "notes": "Shopify storefront: https://fountainpenhospital.com/products.json?limit=250 and /collections/<handle>/products.json work (verified 2026-09-08)." },
    "urls": { "search": null, "product": "https://fountainpenhospital.com/products/{handle}", "sold": null, "sitemap": "https://fountainpenhospital.com/sitemap.xml", "robots": "https://fountainpenhospital.com/robots.txt" },
    "data": { "liveListings": true, "soldResults": false, "auctionResults": false, "historical": "none", "images": true, "seller": false, "saleDate": false, "realizedPrice": false, "fees": false, "grading": false, "certNumber": false, "itemId": true, "gtin": true, "population": false, "catalog": false },
    "access": { "pagination": "page_number", "jsRendering": false, "antiBot": "none", "cloudflare": false, "robots": "Shopify default robots (products/collections crawlable)", "rateLimit": null, "preferredEngine": "shopify" },
    "currency": ["USD"],
    "freshness": "daily",
    "priority": "wave2",
    "difficulty": "trivial",
    "reliability": 0.75,
    "legal": null,
    "status": "planned",
    "connectors": [],
    "statusReason": "Shopify shop → handed to the Shopify connector group (ShopifyStoreConnector, config-only). Mostly new luxury pens (Montblanc, Pelikan, Sailor, Namiki LEs) — collectible limited editions.",
    "verified": true,
    "verifiedAt": "2026-09-08",
    "notes": "Lead for g3."
  },
  {
    "id": "chatterley-luxuries",
    "name": "Chatterley Luxuries",
    "domain": "chatterleyluxuries.com",
    "country": "US",
    "supportedCountries": ["US"],
    "languages": ["en"],
    "sourceType": "dealer",
    "categories": ["pens", "lighters"],
    "api": { "available": true, "docsUrl": "https://developer.woocommerce.com/docs/apis/store-api/", "auth": "none", "notes": "WooCommerce Store API /wp-json/wc/store/v1/products (public). Bot UA receives a query-stripping 301 to http; browser UA gets 200 JSON on https → domains.d userAgent=browser." },
    "urls": { "search": "https://chatterleyluxuries.com/wp-json/wc/store/v1/products?search=", "product": "https://chatterleyluxuries.com/product/{slug}/", "sold": null, "sitemap": "https://chatterleyluxuries.com/sitemap_index.xml", "robots": "https://chatterleyluxuries.com/robots.txt" },
    "data": { "liveListings": true, "soldResults": false, "auctionResults": false, "historical": "none", "images": true, "seller": false, "saleDate": false, "realizedPrice": false, "fees": false, "grading": false, "certNumber": false, "itemId": true, "gtin": false, "population": false, "catalog": false },
    "access": { "pagination": "page_number", "jsRendering": false, "antiBot": "low", "cloudflare": false, "robots": "Crawl-delay: 10; disallows wp-admin and WooCommerce upload/log folders only", "rateLimit": "Crawl-delay 10 s", "preferredEngine": "woocommerce" },
    "currency": ["USD"],
    "freshness": "daily",
    "priority": "wave2",
    "difficulty": "trivial",
    "reliability": 0.75,
    "legal": "Only a privacy policy is published (no automated-access clause).",
    "status": "implemented",
    "connectors": ["chatterley-luxuries"],
    "statusReason": null,
    "verified": true,
    "verifiedAt": "2026-09-08",
    "notes": "6,900-item 'sold-out editions' archive (historical asking prices) deliberately skipped."
  },
  {
    "id": "artsy",
    "name": "Artsy",
    "domain": "artsy.net",
    "country": "US",
    "supportedCountries": ["US", "GB"],
    "languages": ["en"],
    "sourceType": "marketplace",
    "categories": ["art", "contemporary_art", "photography"],
    "api": { "available": true, "docsUrl": "https://developers.artsy.net", "auth": "api_key", "notes": "Public API v2 (api.artsy.net, client_id/client_secret → xapp token, 7-day validity) exposes artists/artworks/shows/genes — but the Artsy API terms restrict it to NON-COMMERCIAL use and public-domain artworks; prices and sale results are not in the public API (partner-only). The website (artsy.net/collect) sits behind a Cloudflare managed challenge for non-browser clients; robots disallows /search." },
    "urls": { "search": "https://www.artsy.net/collect", "product": "https://www.artsy.net/artwork/{slug}", "sold": "https://www.artsy.net/price-database", "sitemap": "https://www.artsy.net/sitemap-artworks.xml", "robots": "https://www.artsy.net/robots.txt" },
    "data": { "liveListings": true, "soldResults": true, "auctionResults": true, "historical": "decades", "images": true, "seller": true, "saleDate": true, "realizedPrice": true, "fees": false, "grading": false, "certNumber": false, "itemId": true, "gtin": false, "population": false, "catalog": true },
    "access": { "pagination": "cursor", "jsRendering": true, "antiBot": "blocking", "cloudflare": true, "robots": "Disallows /search, /users/auth and tracking query variants; sitemaps for artworks/auctions published", "rateLimit": null, "preferredEngine": "none" },
    "currency": ["USD"],
    "freshness": "daily",
    "priority": "later",
    "difficulty": "very_hard",
    "reliability": 0.8,
    "legal": "Artsy Public API terms: non-commercial/educational use only, public-domain artworks only; price database requires an account. RareIndex is commercial → cannot use the API; site scraping blocked and against ToS.",
    "status": "rejected",
    "connectors": [],
    "statusReason": "API licensed for non-commercial use only (no prices anyway); website Cloudflare-challenged and price database login-gated. Saatchi Art connector already covers online art listings.",
    "verified": true,
    "verifiedAt": "2026-09-08",
    "notes": null
  },
  {
    "id": "artnet",
    "name": "Artnet Price Database",
    "domain": "artnet.com",
    "country": "US",
    "supportedCountries": ["US", "DE"],
    "languages": ["en", "de"],
    "sourceType": "pricing_guide",
    "categories": ["art", "contemporary_art", "photography"],
    "api": { "available": false, "docsUrl": null, "auth": "partner", "notes": "Paid subscription (Price Database Fine Art & Design); no public results." },
    "urls": { "search": null, "product": null, "sold": "https://www.artnet.com/price-database/", "sitemap": null, "robots": "https://www.artnet.com/robots.txt" },
    "data": { "liveListings": false, "soldResults": true, "auctionResults": true, "historical": "decades", "images": true, "seller": false, "saleDate": true, "realizedPrice": true, "fees": true, "grading": false, "certNumber": false, "itemId": true, "gtin": false, "population": false, "catalog": true },
    "access": { "pagination": "none", "jsRendering": true, "antiBot": "high", "cloudflare": false, "robots": null, "rateLimit": null, "preferredEngine": "none" },
    "currency": ["USD"],
    "freshness": "daily",
    "priority": "later",
    "difficulty": "very_hard",
    "reliability": 0.95,
    "legal": "Paid licence; terms prohibit scraping.",
    "status": "rejected",
    "connectors": [],
    "statusReason": "Paid, subscription-only price database (per brief).",
    "verified": false,
    "verifiedAt": null,
    "notes": null
  },
  {
    "id": "mutualart",
    "name": "MutualArt",
    "domain": "mutualart.com",
    "country": "US",
    "supportedCountries": ["US"],
    "languages": ["en"],
    "sourceType": "pricing_guide",
    "categories": ["art", "contemporary_art"],
    "api": { "available": false, "docsUrl": null, "auth": "partner", "notes": "Auction results behind a paid membership." },
    "urls": { "search": null, "product": null, "sold": null, "sitemap": null, "robots": "https://www.mutualart.com/robots.txt" },
    "data": { "liveListings": false, "soldResults": true, "auctionResults": true, "historical": "decades", "images": true, "seller": false, "saleDate": true, "realizedPrice": true, "fees": false, "grading": false, "certNumber": false, "itemId": true, "gtin": false, "population": false, "catalog": true },
    "access": { "pagination": "none", "jsRendering": true, "antiBot": "high", "cloudflare": false, "robots": null, "rateLimit": null, "preferredEngine": "none" },
    "currency": ["USD"],
    "freshness": "daily",
    "priority": "later",
    "difficulty": "very_hard",
    "reliability": 0.9,
    "legal": "Paid membership; terms prohibit scraping.",
    "status": "rejected",
    "connectors": [],
    "statusReason": "Paid membership data (per brief).",
    "verified": false,
    "verifiedAt": null,
    "notes": null
  },
  {
    "id": "fragrantica",
    "name": "Fragrantica",
    "domain": "fragrantica.com",
    "country": "US",
    "supportedCountries": ["US"],
    "languages": ["en"],
    "sourceType": "catalog",
    "categories": ["perfume"],
    "api": { "available": false, "docsUrl": null, "auth": "none", "notes": "Perfume encyclopedia (no prices). Every page, including the catalogue, is behind a Cloudflare managed challenge for non-browser clients; the 31 KB robots.txt lists hundreds of disallowed bots." },
    "urls": { "search": null, "product": "https://www.fragrantica.com/perfume/{brand}/{name}-{id}.html", "sold": null, "sitemap": null, "robots": "https://www.fragrantica.com/robots.txt" },
    "data": { "liveListings": false, "soldResults": false, "auctionResults": false, "historical": "none", "images": true, "seller": false, "saleDate": false, "realizedPrice": false, "fees": false, "grading": false, "certNumber": false, "itemId": true, "gtin": false, "population": false, "catalog": true },
    "access": { "pagination": "page_number", "jsRendering": true, "antiBot": "blocking", "cloudflare": true, "robots": "extensive bot blocklist", "rateLimit": null, "preferredEngine": "none" },
    "currency": ["USD"],
    "freshness": "weekly",
    "priority": "later",
    "difficulty": "very_hard",
    "reliability": 0.7,
    "legal": "Terms of use prohibit scraping/data mining.",
    "status": "blocked",
    "connectors": [],
    "statusReason": "Cloudflare challenge + terms forbid automated access; catalogue only (no market prices).",
    "verified": true,
    "verifiedAt": "2026-09-08",
    "notes": null
  },
  {
    "id": "parfumo",
    "name": "Parfumo",
    "domain": "parfumo.com",
    "country": "DE",
    "supportedCountries": ["DE", "US"],
    "languages": ["en", "de"],
    "sourceType": "community",
    "categories": ["perfume"],
    "api": { "available": false, "docsUrl": null, "auth": "none", "notes": "Community perfume database (brands/perfumes, ratings); no prices. robots disallows /api/, /s_perfumes*.php search, /s_souk.php (the classifieds/souk where members trade)." },
    "urls": { "search": null, "product": "https://www.parfumo.com/Perfumes/{brand}/{name}", "sold": null, "sitemap": null, "robots": "https://www.parfumo.com/robots.txt" },
    "data": { "liveListings": false, "soldResults": false, "auctionResults": false, "historical": "none", "images": true, "seller": false, "saleDate": false, "realizedPrice": false, "fees": false, "grading": false, "certNumber": false, "itemId": true, "gtin": false, "population": false, "catalog": true },
    "access": { "pagination": "page_number", "jsRendering": false, "antiBot": "low", "cloudflare": false, "robots": "Disallows /api/, /action/, search scripts, /s_souk.php (member marketplace)", "rateLimit": null, "preferredEngine": "api" },
    "currency": ["EUR"],
    "freshness": "weekly",
    "priority": "later",
    "difficulty": "medium",
    "reliability": 0.6,
    "legal": "Member-to-member marketplace (souk) is robots-disallowed; catalogue pages public.",
    "status": "rejected",
    "connectors": [],
    "statusReason": "Catalogue only — no market prices; the only trading surface (souk) is disallowed by robots. Low value for a pricing platform.",
    "verified": true,
    "verifiedAt": "2026-09-08",
    "notes": null
  }
]
