Verified catalogue of mobiles and laptops sold in India, collected from real retail listings (FastAPI backend, React frontend, Postgres/pgvector). - REST API under /api/elec (read-only catalogue; admin endpoints need login) - MCP server (FastMCP) at /mcp/ with list_categories, search_products, get_product and price_history tools - Real ratings and reviews read from product pages and search results - Production Dockerfile (requirements-api.txt, no PyTorch) and .env.production.example; remote database only via an explicit ELEC_ALLOW_REMOTE_DB host/name allowlist - docs/API.md: endpoint and MCP reference with live examples Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
78 lines
2.4 KiB
YAML
78 lines
2.4 KiB
YAML
# Retail platforms.
|
|
#
|
|
# kind marketplace | national_chain | tn_regional
|
|
# region national | TN (TN = a Tamil Nadu retail chain)
|
|
# policy serp_only -> NEVER fetched directly; everything comes from web
|
|
# search results (titles, snippets, image results)
|
|
# probe -> fetched only if the site probe grades it A or B
|
|
# (robots.txt allows, HTTP 200, no CAPTCHA); otherwise
|
|
# it falls back to search results like serp_only
|
|
# product_url regex a URL must match to count as a single product page.
|
|
# Group 1, when present, is the site's own product id.
|
|
# pincode_param optional query parameter the site accepts for a delivery
|
|
# pincode. Only sites that actually honour it get
|
|
# pincode_applied=true on their prices.
|
|
#
|
|
# Brand official sites are generated from brands.yaml (kind brand_official).
|
|
sites:
|
|
- domain: amazon.in
|
|
name: Amazon.in
|
|
kind: marketplace
|
|
region: national
|
|
policy: serp_only
|
|
product_url: '/(?:dp|gp/product)/([A-Z0-9]{10})'
|
|
- domain: flipkart.com
|
|
name: Flipkart
|
|
kind: marketplace
|
|
region: national
|
|
policy: serp_only
|
|
product_url: '/p/(itm[0-9a-z]+)'
|
|
- domain: croma.com
|
|
name: Croma
|
|
kind: national_chain
|
|
region: national
|
|
policy: probe
|
|
product_url: '/p/(\d{5,})'
|
|
- domain: reliancedigital.in
|
|
name: Reliance Digital
|
|
kind: national_chain
|
|
region: national
|
|
policy: probe
|
|
product_url: '(?:/p/|/product/[^?#]*?-)(\d{6,})'
|
|
- domain: vijaysales.com
|
|
name: Vijay Sales
|
|
kind: national_chain
|
|
region: national
|
|
policy: probe
|
|
product_url: '/p/(?:P?)(\d{3,})/'
|
|
- domain: tatacliq.com
|
|
name: Tata CLiQ
|
|
kind: marketplace
|
|
region: national
|
|
policy: probe
|
|
product_url: '/p-(mp\d+)'
|
|
- domain: poorvika.com
|
|
name: Poorvika
|
|
kind: tn_regional
|
|
region: TN
|
|
policy: probe
|
|
product_url: '/([a-z0-9-]{8,})/p/?$'
|
|
- domain: sangeethamobiles.com
|
|
name: Sangeetha Mobiles
|
|
kind: tn_regional
|
|
region: TN
|
|
policy: probe
|
|
product_url: '(?i)/product-?details/(?:[^/?#]+/)?(\d+)'
|
|
- domain: vasanthandco.in
|
|
name: Vasanth & Co
|
|
kind: tn_regional
|
|
region: TN
|
|
policy: probe
|
|
product_url: '/(?:product|products)/([a-z0-9-]{8,})'
|
|
- domain: viveks.com
|
|
name: Viveks
|
|
kind: tn_regional
|
|
region: TN
|
|
policy: probe
|
|
product_url: '/([a-z0-9-]{8,})\.html$'
|