Amazon APIamazon.sg ↗
Access discounted product listings and full product details with customer reviews from Amazon.sg. Filter by discount percentage, paginate results, and look up by ASIN.
What is the Amazon API?
This API covers Amazon.sg through 2 endpoints, returning product listings filtered by discount percentage and full product detail pages keyed by ASIN. The search_discounted_products endpoint surfaces price, original price, discount percentage, rating, and review count across paginated results, while get_product_details returns the complete product record including both standard and critical customer reviews for a given ASIN.
curl -X GET 'https://api.parse.bot/scraper/26e09b98-d0ca-435a-a2d5-0a3045fa7554/search_discounted_products?page=1&min_discount=50' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace amazon-sg-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Amazon.sg discount product discovery — find deals and inspect reviews."""
from parse_apis.amazon_singapore_api import AmazonSG, ProductNotFound
client = AmazonSG()
# Search for discounted products with at least 50% off
for product in client.productsummaries.search(min_discount=50, limit=5):
print(product.title, product.price, product.discount_text)
# Drill into the first result for full details and reviews
summary = client.productsummaries.search(min_discount=10, limit=1).first()
if summary:
detail = summary.details()
print(detail.title, detail.price)
for review in detail.reviews:
print(review.author, review.rating_text, review.date)
# Fetch a product directly by ASIN
try:
product = client.products.get(asin="B0DCGFKHRF")
print(product.title, product.price)
for critical in product.critical_reviews:
print(critical.author, critical.rating, critical.body)
except ProductNotFound as exc:
print(f"Product not found: {exc.asin}")
print("exercised: productsummaries.search / summary.details / products.get / reviews + critical_reviews")
Search for products on Amazon.sg filtered by minimum discount percentage. Returns a paginated list of products with ASIN, title, price, original price, discount information, rating, and review count. Pagination is page-based; results per page are determined by Amazon (typically ~20 items). Not all products will have discount data populated — some may show null for price/discount fields depending on how Amazon renders the listing.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination. |
| min_discount | integer | Minimum discount percentage to filter by. Accepts values from 10 to 90. |
{
"type": "object",
"fields": {
"page": "integer, current page number",
"products": "array of product objects with asin, title, price, original_price, discount_text, discount_percentage, rating, review_count, and url",
"min_discount": "integer, applied minimum discount filter"
},
"sample": {
"data": {
"page": 1,
"products": [
{
"url": "https://www.amazon.sg/dp/B00JULYMO0",
"asin": "B00JULYMO0",
"price": "S$17.13",
"title": "Hanes Men's Beefy Short Sleeve Pocket Tee Value Pack (2-Pack)",
"rating": "4.5 out of 5 stars",
"review_count": "14.4K",
"discount_text": "8% off",
"original_price": "S$18.55",
"discount_percentage": 8
}
],
"min_discount": 50
},
"status": "success"
}
}About the Amazon API
Endpoints and Data Returned
search_discounted_products accepts an optional min_discount integer and a page number. Each product object in the response includes asin, title, price, original_price, discount_text, discount_percentage, rating, review_count, and a url. Setting min_discount to 30, for example, restricts results to items where Amazon.sg is showing at least a 30% reduction from the listed original price. Pagination is handled through the page parameter, and the response echoes back the applied min_discount value so you can confirm the filter was applied.
Product Detail and Reviews
get_product_details takes a single required parameter — asin — and returns the full product record for that item on Amazon.sg. Alongside title, price, and original_price, the endpoint provides two review arrays: reviews (all fetched reviews) and critical_reviews (those with a rating of 3 or below). Each review object includes author, rating, rating_text, title, body, and date. This split makes it straightforward to analyze negative sentiment without filtering client-side.
Coverage Scope
Both endpoints are scoped to Amazon.sg — the Singapore storefront. Prices are returned in Singapore dollars (e.g. S$111.43). Product availability, pricing, and discount depth reflect what is listed on amazon.sg at the time of the request. Fields like price and original_price can be null if the listing does not currently show those values.
The Amazon API is a managed, monitored endpoint for amazon.sg — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when amazon.sg changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official amazon.sg API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a deal-alert tool that tracks products on Amazon.sg exceeding a target discount percentage using
min_discount. - Aggregate Amazon.sg pricing data by ASIN to monitor price changes over time for specific products.
- Pull
critical_reviewsfor a product to summarize recurring complaints before a purchasing decision. - Compare
pricevsoriginal_priceacross categories to identify which product segments show the deepest discounts. - Enrich an internal product database with
ratingandreview_countpulled viaget_product_details. - Feed discounted product listings into a price-comparison site covering the Singapore e-commerce market.
- Analyze review
dateandratingfields across multiple ASINs to track sentiment shifts over time.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Amazon have an official developer API?+
What does `search_discounted_products` return and how does the `min_discount` filter work?+
min_discount parameter filters results so only products at or above that discount threshold are returned. The applied filter value is echoed back in the response field min_discount for verification.Are seller information, shipping details, or product images returned by these endpoints?+
Does `get_product_details` return all customer reviews for a product, or a subset?+
reviews array (all returned reviews) and critical_reviews (those with a rating of 3 or below). It does not guarantee every review ever posted — Amazon.sg may have hundreds of reviews for popular products, and the endpoint returns what is available in a single response. Pagination of reviews is not currently supported. You can fork this API on Parse and revise it to add review pagination.