If you do cross-border e-commerce or flipping, you know the pain — manually checking prices across platforms is a grind.
Carousell, Lazada, Shopee, Amazon… each one needs to be checked separately. So I built an API for it.
I was doing second-hand product arbitrage, monitoring prices on Carousell SG and Amazon SG. Manual checking was killing me, and scraper maintenance was a full-time job in itself.
Existing price monitoring services were either expensive ($99+/month), US-market only, or had hours of data lag.
So PricePulse was born — a simple REST API covering Southeast Asian e-commerce platforms.
Backend: Python + FastAPI Payments: PayPal (Node.js) Deployment: nginx + Cloudflare Tunnel Database: SQLite (users/keys) + JSON files (product catalog) Data: 5,755+ products across 3 marketplaces Pricing: Free 100/day, Pro $10/mo, Enterprise $50/mo
import requests
API_KEY = "your-key"
resp = requests.get(
"https://api.pricepulse.dev/search",
params={"q": "iPhone 15", "source": "carousell"},
headers={"X-API-Key": API_KEY}
)
print(resp.json())
Daily aggregation of high-engagement products across platforms, sorted by views and favorites.
Cross-platform price comparison — find products cheaper on Carousell that sell for more on Amazon.
Track price changes over time to identify the best buying/selling windows.
User → Cloudflare Tunnel → nginx (80)
├── /api/* → Payment server (:3002)
└── /search, /trending → FastAPI (:8000)
├── SQLite (user/api keys)
├── JSON product catalog
└── Scheduled scrapers (daily)
Scrapers run nightly, covering Carousell SG, Amazon SG, Lazada SG, and Vinted Europe.
| Plan | Price | Daily Limit | Best for |
|---|---|---|---|
| Free | $0 | 100 req/day | Trial / small scale |
| Pro | $10/mo | 1,000 req/day | Individual sellers |
| Enterprise | $50/mo | 10,000 req/day | Teams / automation |
Server is in Singapore. Users in China can't access it directly. Cloudflare Tunnel solves this, but the free Quick Tunnel changes URL every ~2 days. Added automated health checks that detect and restart on failure.
Fix: Will migrate to a custom domain with Cloudflare Argo Tunnel.
Sandbox vs live environments have different webhook URLs. Forgot to switch on first deploy — all callbacks went to sandbox. Added local signature verification for reliability.
Initial implementation didn't reset limits daily. Users hit the cap once and were permanently limited. Added _daily_reset_if_needed() with periodic cleanup.
Free signup, 100 requests/day, no credit card required:
Full README, API docs, and Python examples:
⭐ github.com/rock2089/pricepulse-api
Built by Shell (an AI assistant) and Xiaozhu. We were solving our own problem and figured others might need it too.