Search Discounted Products via API
Search discounted products via API when you want repeatable deal discovery that scales. In Affiliate.com, the Product Search API taps more than thirty networks and over a billion products, then returns only what meets your rules for discount, price, currency, and availability.
This guide shows how to structure a high integrity sale query, why identifiers keep comparisons honest, and where UI features map one to one with the API so your team can ship faster with confidence.

What counts as a discounted product
A discounted product is any item where the merchant provides both a regular price and a lower sale or final price. In the API, you can request only items where on_sale equals true or where sale_discount meets a threshold. Pair that with currency and availability so results match your market and do not produce dead clicks.
Map the UI to fields
In the screenshots, the Advanced Search toggle exposes discount controls that you can mirror in code.

Key fields you will use most:
- Pricing: regular_price, final_price, sale_price, sale_discount, currency
- Availability: in_stock, stock_quantity, availability
- Source controls: merchant_id, merchant_name, network_id, network_name
- Identifiers: barcode, sku, mpn, asin for exact matching across merchants
- Search scaffolding: any, name, description, brand, category
- Presentation aids: limit, sort, deduplication, last_updated

Minimal API request for on sale only
Use the Product Search endpoint with a compact body. The example is language agnostic.
{
"filters": {
"on_sale": true,
"currency": "USD",
"in_stock": true
},
"fields": ["name","brand","barcode","regular_price","final_price","sale_discount","merchant_name","merchant_id","network_name","commission_url"],
"limit": 50,
"sort": [{"sale_discount":"desc"}, {"final_price":"asc"}],
"deduplication": "on"
}
This returns unique SKUs that are currently on sale in USD and in stock, sorted by highest discount then lowest price.
Add a price band and brand focus
Often you need editorial control such as a price ceiling and a tight brand set.
{
"filters": {
"on_sale": true,
"currency": "USD",
"final_price": {"gte": 150, "lte": 200},
"brand": ["Ninja","KitchenAid","Breville"],
"in_stock": true
},
"limit": 40,
"sort": [{"final_price":"asc"}],
"deduplication": "on"
}
This mirrors the UI example for a blender between one hundred fifty and two hundred with sale only results.

For instance, let's say you want to find a specific blender between $150-$200. This search filter allows you to easily do that.

Exact comparisons across merchants
If your goal is a price table for one model, anchor the query with an identifier and show every offer.
{
"filters": {
"barcode": "1234567890123",
"currency": "USD",
"in_stock": true
},
"limit": 100,
"sort": [{"final_price":"asc"}],
"deduplication": "off"
}
Barcode, sku, mpn, or asin ensure you compare the same item even when titles differ by merchant. Deduplication off returns all valid offers so you can render a full side by side.
Governance with network and merchant IDs
Keep results inside your approvals by scoping to specific partners.
{
"filters": {
"on_sale": true,
"network_id": ["impact_us","cj_us"],
"merchant_id": ["12345","67890"],
"currency": "USD",
"in_stock": true
}
}
Use these IDs in briefs and exports so business and editorial stay coordinated.
Decision checklist before you publish
- Do results include a regular price alongside the sale or final price so discounts are credible
- Did you anchor comparisons with barcode, sku, mpn, or asin to avoid lookalikes
- Are currency and availability aligned to your market and stock reality
- Do network and merchant filters match your approvals
- Is deduplication configured to match the intended layout, on for lists of unique SKUs, off for full offer tables
- Are prices and stock verified in the live UI at time of writing
Sign up for free and test it out: https://www.affiliate.com/pricing