Multi-distributor electronic component sourcing platform that aggregates pricing, stock, MOQ, and datasheet data from DigiKey, Mouser, Element14, and TME through a single Flask web interface — with Excel export and live deployment.
component-search-engine.onrender.com
Engineers and procurement teams typically search 4–5 distributor websites manually to compare component pricing and stock. This platform queries all four major distributors simultaneously via their APIs, normalises the response data, and presents a unified comparison view — with Excel export for procurement workflows.
User enters part number(s)
↓
Flask backend — parallel API calls
↓
DigiKey API ─┐
Mouser API ─┤→ normalise response schema
Element14 API─┤ (price, stock, MOQ, datasheet)
TME API ─┘
↓
Pandas — merge and rank by price
↓
Frontend — display comparison table
↓
Excel export (openpyxl) — download results
- 4 distributor APIs — DigiKey, Mouser, Element14, TME queried in parallel
- Unified response schema — each distributor returns different JSON structures; normalisation layer maps them to common fields
- Price comparison — results ranked by unit price for quick lowest-cost identification
- Stock availability — live inventory levels from each distributor
- MOQ display — minimum order quantities shown per distributor
- Datasheet links — direct manufacturer datasheet access where available
- Search modes — general search and exact part number match
- Excel export — one-click download of results for procurement teams
- Freemium access model — free search allowance with session-based control and password-protected premium access
- Responsive UI — Bootstrap 5, works on desktop and mobile
- Flask over Django — lightweight API aggregator doesn't need ORM or admin panel; Flask keeps deployment simple
- Environment variables for API keys — all 4 distributor credentials loaded via
.env, never hardcoded - Pandas for normalisation — each distributor response mapped to a DataFrame with standard columns before merging; handles missing fields gracefully
- Render for deployment — free tier sufficient for demo traffic; simple
gunicornsetup - Session-based access control — server-side session tracks free search count without requiring user accounts
| Component | Tool |
|---|---|
| Language | Python 3.9+ |
| Web framework | Flask |
| Frontend | HTML5, CSS3, Bootstrap 5, JavaScript |
| Data processing | Pandas, openpyxl |
| APIs | DigiKey, Mouser, Element14, TME |
| Deployment | Render (GitHub auto-deploy) |
| Config | python-dotenv |
git clone https://github.com/aathi1/component-search-engine
cd component-search-engine
pip install -r requirements.txtCreate .env:
DIGIKEY_CLIENT_ID=your_key
DIGIKEY_CLIENT_SECRET=your_secret
MOUSER_API_KEY=your_key
ELEMENT14_API_KEY=your_key
TME_API_TOKEN=your_token
TME_API_SECRET=your_secret
Run locally:
python app.py| Distributor | Data Retrieved |
|---|---|
| DigiKey | Price, stock, MOQ, datasheet, manufacturer |
| Mouser | Price, stock, MOQ, datasheet |
| Element14 | Price, stock, MOQ, datasheet |
| TME | Price, stock, MOQ, datasheet |
Component information is provided by distributors via their APIs and may change without notice. This platform is independent and not affiliated with DigiKey, Mouser, Element14, or TME. All purchases are completed directly through distributor websites.