Fresh Express APIfreshexpress.com ↗
Access current Fresh Express coupons, sweepstakes, and promotional offers via one API endpoint. Returns titles, descriptions, dates, and discount values.
What is the Fresh Express API?
The Fresh Express API provides access to all current promotions and offers from freshexpress.com through a single endpoint, list_promotions, returning up to 6 response fields per promotion object including title, description, type, dates, and discount value. It covers national promotional campaigns as well as social media sweepstakes and giveaways, returning the full current set in one call with no pagination required.
No input parameters required.
curl -X GET 'https://api.parse.bot/scraper/65dbb541-be29-4a59-9097-8a4ff01df348/list_promotions' \ -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 freshexpress-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: Fresh Express Promotions SDK — bounded, re-runnable; every call capped."""
from parse_apis.freshexpress_com_api import FreshExpress, PromotionType, PromotionsFetchError
client = FreshExpress()
# List all current promotions and offers, capped at 3
for promo in client.promotions.list(limit=3):
print(promo.title, promo.type, promo.discount_value, promo.entry_end)
# Filter sweepstakes using the enum
first = client.promotions.list(limit=1).first()
if first:
is_sweepstakes = first.type == PromotionType.SWEEPSTAKES
try:
print(first.title, "sweepstakes" if is_sweepstakes else "national", first.discount_value)
except PromotionsFetchError as e:
print("fetch error:", e)
print("exercised: promotions.list")
Retrieves all current Fresh Express promotions and offers, including national promotional campaigns and social media sweepstakes/giveaways. Each promotion includes title, description, dates, and discount value when available. Results are auto-iterated as a single page.
No input parameters required.
{
"type": "object",
"fields": {
"total": "integer count of promotions returned",
"promotions": "array of promotion objects with title, description, type, dates, and discount value"
},
"sample": {
"data": {
"total": 3,
"promotions": [
{
"id": 11632,
"link": "https://www.freshexpress.com/promotions/social-promotions-giveawayrules",
"slug": "social-promotions-giveawayrules",
"type": "national",
"title": "COOKING WITH ANTONI",
"entry_end": null,
"description": "Fresh Express is partnering with Emmy-winning TV personality Antoni Porowski for the Cooking with Antoni Sweepstakes! Enter now for a chance to win a virtual cooking session with Antoni himself, plus fresh prizes.",
"entry_start": null,
"date_modified": "2026-06-15T09:08:33",
"date_published": "2023-01-05T13:13:11",
"discount_value": null,
"featured_media_id": 20660
},
{
"id": 6567,
"link": "https://www.freshexpress.com/social-promotions/giveaway",
"slug": "giveaway",
"type": "sweepstakes",
"title": "ENTER NOW. IT'S FREE!",
"entry_end": "Tuesday, December 17, 2024",
"description": "",
"entry_start": "Wednesday, December 4, 2024",
"date_modified": "2024-12-13T14:03:44",
"date_published": "2021-11-01T11:18:53",
"discount_value": "$5.99",
"featured_media_id": 6568
}
]
},
"status": "success"
}
}About the Fresh Express API
What the API Returns
The list_promotions endpoint returns every active promotion currently listed on Fresh Express, structured as an array of promotion objects under the promotions key. Each object includes a title, a description, a type field that distinguishes between categories such as national campaigns and social media sweepstakes or giveaways, start and end dates, and a discount_value when the promotion carries a specific dollar or percentage amount. The response also includes a total integer so you can confirm how many promotions were returned without counting the array manually.
Endpoint Behavior
list_promotions takes no input parameters. Results are auto-iterated, meaning the full current set of promotions is returned in a single response — there is no pagination, no cursor, and no filtering by type or date range at the request level. This keeps integration straightforward for use cases that need a complete snapshot of what is currently active.
Coverage Notes
The API reflects the promotional content available publicly on freshexpress.com at the time of the request. Promotions that require account login or are distributed exclusively through third-party loyalty programs are not included. The discount_value field is populated only when Fresh Express specifies a concrete discount amount on the promotion; sweepstakes and awareness campaigns typically return null for that field.
The Fresh Express API is a managed, monitored endpoint for freshexpress.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when freshexpress.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 freshexpress.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?+
- Display current Fresh Express coupons and their discount values in a grocery savings app
- Monitor promotion type changes to detect when new sweepstakes go live versus standard coupons
- Track promotion start and end dates to alert users before a deal expires
- Aggregate Fresh Express offers alongside other produce brand promotions for a coupon comparison tool
- Feed current Fresh Express deals into a meal-planning app to surface savings on salad products
- Log promotion history by polling periodically and storing snapshots for trend analysis
| 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 Fresh Express have an official developer API?+
What does the `type` field in a promotion object tell me?+
type field distinguishes between promotion categories returned by list_promotions — for example, it differentiates national promotional campaigns from social media sweepstakes and giveaways. This lets you filter or display promotions differently based on their nature without parsing the description text.Are promotions filterable by date or type within the API call?+
list_promotions takes no input parameters, so there is no server-side filtering by date range, type, or discount value. You receive the full active set and apply any filtering client-side using the dates, type, and discount_value fields in the response.