Coupons APIcoupons.com ↗
Access coupon codes, printable offers, top deals, and store directories from Coupons.com. 8 endpoints covering 2000+ retailers, grocery coupons, and category feeds.
What is the Coupons API?
The Coupons.com API exposes 8 endpoints covering coupon codes, printable grocery offers, and a directory of over 2,000 retailers. Use get_store_coupons to pull all active codes for a specific retailer by slug, get_top_coupons to retrieve today's featured deals across stores, or get_recent_coupons to browse offers by category sorted by expiration date. Response fields include promo codes, dollar values, UPC lists, expiration timestamps, and verification status.
No input parameters required.
curl -X GET 'https://api.parse.bot/scraper/9dfd8770-b4d0-4dfa-a345-cf64fc24eda1/get_all_stores' \ -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 coupons-com-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.
"""Walkthrough: coupons.com SDK — bounded, re-runnable; every call capped."""
from parse_apis.Coupons_com_API import Coupons, Category, Query, ParseError
client = Coupons()
# Check which stores have active vouchers worth polling
for activity in client.store_activities.list(limit=3):
print(activity.label, activity.slug, activity.active_vouchers_count)
# Browse recent coupons in a category sorted by soonest expiry
for coupon in client.recent_coupons.list(category=Category.ELECTRONICS, limit=3):
print(coupon.retailer_name, coupon.retailer_slug, coupon.title, coupon.end_time)
# Search for a retailer by name
result = client.store_search_results.search(query=Query.NIKE, limit=1).first()
if result:
print(result.retailer.name, result.retailer.active_vouchers_count, result.retailer_landing_page.url)
# Get coupons for a specific store
try:
for coupon in client.store_coupons.list(slug=Query.AMAZON, limit=3):
print(coupon.title, coupon.caption, coupon.code, coupon.is_verified)
except ParseError as e:
print(f"error: {e.code}")
# Browse today's top offers
offer = client.top_offers.list(limit=1).first()
if offer:
print(offer.title, offer.retailer_name, offer.caption)
print("exercised: store_activities.list / recent_coupons.list / store_search_results.search / store_coupons.list / top_offers.list")
Retrieve the full directory of stores available on coupons.com, organized alphabetically. Returns over 2000 stores with their display names and URL slugs. The slug can be passed to get_store_coupons to fetch coupons for a specific retailer.
No input parameters required.
{
"type": "object",
"fields": {
"stores": "array of store objects each with label (display name) and url (relative URL path)"
},
"sample": {
"data": {
"stores": [
{
"url": "coupon-codes/a-sight-for-sport-eyes",
"label": "A Sight For Sport Eyes"
},
{
"url": "coupon-codes/nike",
"label": "Nike"
}
]
},
"status": "success"
}
}About the Coupons API
Store Directory and Search
get_all_stores returns the full alphabetical directory of retailers on Coupons.com — over 2,000 entries — each with a label (display name) and a relative url path. The URL slug from that response feeds directly into get_store_coupons. If you need to look up a specific retailer by name, search_stores accepts a query string and returns matching results with a nested retailer object containing name, logo, idPool, and activeVouchersCount, plus a retailerLandingPage with the slug. get_stores_summary merges the full directory with active voucher counts, giving you both the slug and a live count of available coupons per store in a single call.
Coupon Codes and Deals
get_store_coupons takes a slug parameter and returns all available coupon codes and deals for that retailer. Each coupon object includes id, title, description, type, code, end_time, terms, is_exclusive, is_verified, and is_expired. The count field tells you the total number of results. get_top_coupons fetches today's curated top offers across all stores — typically 15–25 items — each with retailer_name, caption, code, end_time, expiration, and image fields. get_recent_coupons accepts an optional category slug (e.g. fashion-and-accessories, food-and-grocery) and returns coupons sorted by end_time ascending, with retailer_slug values you can pass back into get_store_coupons.
Grocery and Printable Coupons
get_coupons and get_printable_coupons both return an offers array where each element wraps coupon data under an offer key. Fields include coupon_id, brand, value (in cents), category_description, expiration_date, and UPC codes. The response also includes an image_url_prefix string — concatenate it with each offer's image_url_suffix to construct a full coupon image URL. get_printable_coupons adds an auth_print_enabled flag indicating whether the coupon can currently be printed.
The Coupons API is a managed, monitored endpoint for coupons.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when coupons.com 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 coupons.com 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 browser extension that surfaces verified coupon codes at checkout using
get_store_coupons - Aggregate expiring-soon deals across fashion and grocery categories via
get_recent_couponswith category slugs - Populate a coupon comparison app with retailer names, logos, and active voucher counts from
get_stores_summary - Display today's highest-value featured deals on a deals homepage using
get_top_coupons - Create a grocery savings tracker by pulling brand names, UPC codes, and cent-value discounts from
get_coupons - Allow users to search for a specific store and show available coupons by chaining
search_storeswithget_store_coupons - Filter and display printable coupons with print-authorization status using
get_printable_coupons
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Coupons.com have an official developer API?+
What does `get_store_coupons` return, and how do I get the right slug?+
get_store_coupons returns a coupons array for one retailer, including code, title, description, type, end_time, terms, is_verified, and is_expired on each object. The count field shows the total. You can get a valid slug either from the url field in get_all_stores, the retailerLandingPage in search_stores, or the slug field in get_stores_summary.Does the API support pagination or filtering by discount amount?+
get_store_coupons returns all available coupons for a given retailer in a single response, and get_recent_coupons returns all results for a category sorted by end_time. You can fork the API on Parse and revise it to add filtering or pagination logic.Are user account features like clipped coupons or personal savings history available?+
How current is the coupon data, and do expired coupons appear in results?+
get_store_coupons includes an is_expired field on each coupon object, so expired offers may appear alongside active ones. get_recent_coupons sorts by end_time ascending, surfacing soonest-to-expire offers first. Data freshness reflects what is currently listed on Coupons.com at query time, but no explicit cache-age or last-updated timestamp is returned in the response.