Built to help users avoid overpaying online by combining AI + real-time price intelligence across multiple platforms.
An AI-powered price intelligence tool that helps users avoid overpaying across e-commerce platforms.
Features • Quick Start • Architecture • Contributing • License
E-commerce pricing is fragmented across platforms, making it difficult for users to make informed purchasing decisions.
BuySmart introduces a unified, AI-driven approach to price intelligence.
- 🔍 Auto-detection — Instantly scrapes product name, price, and image from supported sites
- 🤖 AI Analysis — Sends product data to an LLM (via OpenRouter) for structured reviews
- 🌐 Price Comparison — Uses SearXNG to search the web for competing prices and reviews
- 📝 Manual Search — Works on any website via a manual product name input
- 🐳 One-Command Setup — Full Docker Compose stack for zero-hassle deployment
- 🔓 100% Open Source — Self-host everything, no proprietary APIs required (except your OpenRouter key)
Watch BuySmart in action:
Getting started? Follow our Quick Start guide below!
Online shoppers often overpay because:
- Prices vary across platforms
- Manual comparison is time-consuming
- Deals are hard to evaluate
BuySmart solves this by:
- automating price comparison
- using AI to evaluate fairness
- helping users make smarter decisions instantly
- 🛒 Online shoppers — avoid overpaying instantly
- 💻 Developers — build price comparison tools on top of BuySmart
- 🏪 E-commerce analysts — track pricing trends
BuySmart aims to become an open infrastructure layer for intelligent shopping — where users no longer need to manually compare prices or analyze deals.
The long-term goal is to:
- integrate with more platforms globally
- provide real-time price intelligence
- enable developers to build on top of BuySmart APIs
| Site | Auto-detected |
|---|---|
| Amazon | ✅ |
| eBay | ✅ |
| AliExpress | ✅ |
| Walmart | ✅ |
| Jumia | ✅ |
| Any other site | 🔍 Manual search |
Chrome Extension (React + TypeScript)
│
│ HTTP POST /api/v1/product-analysis
▼
FastAPI Backend (Python)
│
├──► SearXNG (self-hosted)
│ → Searches for prices, reviews, alternatives
│
├──► Tavily API (optional)
│ → Targeted price search with rich snippets
│
├──► Deepcrawl API (optional)
│ → Bypasses anti-bot protections, extracts structured data
│
└──► OpenRouter API
→ LLM generates structured markdown analysis
BuySmart uses a three-layer approach to maximize price discovery:
- Tavily Search (Layer 1) - Searches for product prices and returns snippets that mention prices
- Deepcrawl (Layer 2) - Extracts clean markdown/HTML from pages that block direct access
- Direct HTTP (Layer 3) - Falls back to simple HTTP requests for sites without protection
For best results, configure both TAVILY_API_KEY and DEEPCRAWL_API_KEY in your .env file.
- Docker & Docker Compose
- Node.js 18+ (to build the Chrome Extension)
- An OpenRouter API key (free tier available)
- Google Chrome
git clone https://github.com/kingztech2019/buysmart-extension.git
cd buysmart-extensioncp .env.example .envEdit .env and add your API keys:
OPENROUTER_API_KEY=sk-or-your-key-here
OPENROUTER_MODEL=mistralai/mistral-7b-instruct # free tier
# Optional but highly recommended for better price extraction
TAVILY_API_KEY=tvly-your-key-here # Get at https://app.tavily.com
DEEPCRAWL_API_KEY=dc-your-key-here # Get at https://deepcrawl.dev
SEARXNG_SECRET_KEY=change-this-to-a-random-stringdocker compose up -dThis starts:
- SearXNG at
http://localhost:8080 - BuySmart API at
http://localhost:8000 - API Docs at
http://localhost:8000/docs
npm install
npm run buildThe built extension will be in the dist/ folder.
- Open Chrome and go to
chrome://extensions/ - Enable Developer mode (top right toggle)
- Click "Load unpacked"
- Select the
dist/folder
Navigate to any product page on Amazon, eBay, AliExpress, Walmart, or Jumia and click the BuySmart extension icon. The sidebar will slide in automatically!
| Variable | Required | Default | Description |
|---|---|---|---|
OPENROUTER_API_KEY |
✅ | — | Your OpenRouter API key |
OPENROUTER_MODEL |
❌ | mistralai/mistral-7b-instruct |
LLM model to use |
TAVILY_API_KEY |
❌ | — | Tavily API for price search (highly recommended) |
DEEPCRAWL_API_KEY |
❌ | — | Deepcrawl API for bypassing anti-bot (highly recommended) |
SEARXNG_SECRET_KEY |
❌ | buysmart-change-this-secret-key |
SearXNG secret (change in production!) |
| Model | Cost | Quality |
|---|---|---|
mistralai/mistral-7b-instruct |
🆓 Free | Good |
google/gemma-7b-it |
🆓 Free | Good |
anthropic/claude-haiku |
💰 Paid | Excellent |
google/gemini-flash-1.5 |
💰 Paid | Excellent |
anthropic/claude-3.5-sonnet |
💰 Paid | Best |
cd backend
pip install -r requirements.txt
cp .env.example .env # configure your env
uvicorn main:app --reload --port 8000You'll also need SearXNG running. Use Docker for just SearXNG:
docker compose up searxng -d
npm run devNote: The Chrome Extension must be built (
npm run build) and loaded as an unpacked extension to test Chrome-specific APIs.
| Method | Endpoint | Description |
|---|---|---|
GET |
/ |
API info |
GET |
/health |
Health check |
POST |
/api/v1/product-analysis |
Analyze a product |
GET |
/api/v1/search?q=query |
Proxy SearXNG search |
GET |
/docs |
Interactive API docs |
curl -X POST http://localhost:8000/api/v1/product-analysis \
-H "Content-Type: application/json" \
-d '{"product_name": "Sony WH-1000XM5", "price": "$279"}'buysmart-extension/
├── backend/ # Python FastAPI backend
│ ├── main.py # App entry point
│ ├── config.py # Settings (env vars)
│ ├── models/
│ │ └── schemas.py # Pydantic models
│ ├── routes/
│ │ ├── analysis.py # POST /api/v1/product-analysis
│ │ └── search.py # GET /api/v1/search
│ ├── services/
│ │ ├── searxng.py # SearXNG integration
│ │ └── openrouter.py # OpenRouter LLM
│ ├── Dockerfile
│ ├── requirements.txt
│ └── .env.example
│
├── searxng/
│ └── settings.yml # SearXNG configuration
│
├── src/ # Frontend (React + TypeScript)
│ ├── App.tsx
│ ├── index.css # Design system
│ └── components/
│ ├── partials/ # Shared components
│ ├── supported/ # Product analysis UI
│ └── unsupported/ # Manual search UI
│
├── public/ # Extension static files
│ ├── manifest.json
│ ├── background.js # Service worker
│ └── content.js # Page scraper
│
├── docker-compose.yml # Full stack orchestration
├── .env.example # Environment template
└── README.md
We welcome contributions from the community! Whether you're fixing bugs, adding features, or improving documentation, your help is appreciated.
- 📖 Contributing Guide - How to contribute
- 🏗️ Architecture - System design and technical details
- 🗺️ Roadmap - Planned features and priorities
- 🚀 Setup Guide - Detailed development setup
- 📝 Changelog - Version history
- 🆕 Add scrapers for more e-commerce sites (Target, Best Buy, Alibaba, etc.)
- 🌍 Multi-language support - Help translate the extension
- 📊 Price history tracking - Store and display price trends
- 🔔 Price drop alerts - Notify users of price changes
- 🎨 Theme customization - Dark mode, custom colors
- 📱 Mobile support - Firefox Mobile, Safari iOS
- 🐛 Bug fixes - Help squash bugs
- 📚 Documentation - Improve guides and tutorials
- Fork the repository
- Follow the Setup Guide
- Create a feature branch:
git checkout -b feature/amazing-feature - Make your changes
- Test thoroughly
- Push and open a Pull Request
See CONTRIBUTING.md for detailed guidelines.
This project is licensed under the MIT License — see the LICENSE file for details.
- ✅ Commercial use allowed
- ✅ Modification allowed
- ✅ Distribution allowed
- ✅ Private use allowed
⚠️ Liability and warranty not provided
- SearXNG — The amazing open-source meta search engine
- OpenRouter — Unified LLM API gateway
- Tavily — AI-powered search API
- Deepcrawl — Free and open-source web scraping
- FastAPI — High-performance Python web framework
- The open-source community ❤️
- 🐛 Bug Reports: Open an issue
- 💡 Feature Requests: Request a feature
- 🏪 New Site Support: Request site support
- 💬 Discussions: GitHub Discussions
- 🔒 Security: See SECURITY.md
If you find BuySmart useful, please consider giving it a star! It helps others discover the project.
Made with ❤️ by the BuySmart community