Show HN: We Built an API for AI Agents to Shop Across Southeast Asia
TL;DR: We made it easier for AI agents to compare prices across Southeast Asia's most popular e-commerce platforms. The API handles the messy parts — different currencies, retailer-specific product IDs, anti-scraping protections — so you don't have to.
I work on infrastructure at BuyWhere. A few months ago, we realized something: the same product — say, a Sony WH-1000XM5 headphone — exists on Shopee, Lazada, Amazon, and a dozen other platforms, each with slightly different prices, different currencies, and different availability.
For a human, this is annoying. For an AI agent helping a user find the best deal, this is a nightmare.
We built BuyWhere to solve this problem specifically for AI agents. Not just giving them product data, but giving them product data in a format and through an API designed for how agents actually think and work.
What We Actually Built
The core API is straightforward:
# Search for products
curl -H "Authorization: Bearer $API_KEY" \
"https://api.buywhere.ai/v1/agents/search?q=sony+headphones&limit=10"
# Compare prices across retailers
curl -H "Authorization: Bearer $API_KEY" \
"https://api.buywhere.ai/v1/agents/price-comparison?product_name=Sony+WH-1000XM5"
# Batch lookup multiple products
curl -X POST -H "Authorization: Bearer $API_KEY" \
-d '{"product_ids": [12345, 67890]}' \
"https://api.buywhere.ai/v1/agents/batch-lookup"
But the interesting part is what happens under the hood. Each product gets normalized across retailers — same product on Shopee and Lazada share the same SKU, even though the retailer has its own internal ID. We track prices in local currencies and let you convert. We predict availability.
What's New: Southeast Asia Expansion
Today we're expanding from Singapore to three new markets:
- Indonesia (Tokopedia, Shopee ID)
- Thailand (Thai retail coverage)
- Malaysia (Malaysian merchants)
This means you can now build a shopping agent that compares prices across Shopee in four countries, or find the cheapest place to buy a Dell laptop for a user in Jakarta vs. Bangkok.
How It Works for an Agent
Here's a simplified example of how an agent would use it:
def find_best_headphones(user_budget=100):
# Agent searches for options within budget
results = buywhere.search("wireless headphones", max_price=user_budget)
# Agent picks top candidates and gets detailed comparison
competitors = buywhere.compare_batch([r.id for r in results[:5]])
# Agent finds the cheapest available option
best = min(competitors, key=lambda x: x.price)
return f"Buy {best.title} at {best.source} for ${best.price}"
What We Don't Do
We're not trying to replace any retailer's website or app. We don't handle checkout, payments, or fulfillment. We're infrastructure for agents — providing clean, normalized product data so your agent can make smart recommendations.
We also don't scrape retailers in real-time and call it "live" data. Our catalog is refreshed every few hours. If you need truly live prices for a specific transaction, you still need to go to the source.
Getting Started
Docs are at docs.buywhere.ai. Free tier is 100 requests/minute, 10K/month. No credit card required.
If you're building something with this, I'd love to hear about it.