Endpoint Playground
Returns a page of Popeyes Rewards' bonus-points promotion catalog -- flat or multiplied points bonuses tied to a qualifying purchase (e.g. "Get Double Bonus Points on Your Cart, minimum $20"), distinct from /popeyes/offers (priced menu deals) and /popeyes/quests (multi-step challenges). This is public CMS content, not a signed-in member's own applied-promotions state. points_multiplier and bonus_points are mutually exclusive in practice -- a promotion is either an "Nx points" campaign or a flat bonus. start_date/end_date bound the promotion's published active window when Popeyes sets one; both empty means no published window restriction, not that the promotion is permanently active.
14 Oct 2026: 20 promotions; 2 fields had a value in every checked item and 5 varied between items.
Sample value profiles: start_date: 2021-08-02; bonus_points: 68 to 600, median 150; name: “2x Nuggets: 4Pc Kids Meal” and 19 other values.
curl 'https://api.crawlora.net/api/v1/popeyes/promotions' \
-H "x-api-key: $CRAWLORA_API_KEY"| Parameter | Type | Required | Prefilled value | Description |
|---|---|---|---|---|
| limit | integer | No | Maximum promotions to return, 1-100 (default 20) | |
| offset | integer | No | Number of promotions to skip, for paging (default 0) | |
| market | string | No | Restaurant market: US (default) or CA |
{
"code": 200,
"msg": "OK",
"data": {
"promotions": [
{
"id": "11d41e3c-75b5-458c-8166-7cdfb20a635a",
"name": "Get Double Bonus Points on Your Cart, minimum $20",
"message": "Get Double Bonus Points on Your Cart, minimum $20",
"points_multiplier": 2
},
{
"id": "03631db2-806c-4d7e-8192-45007f234cf2",
"name": "2x Nuggets: 4Pc Kids Meal",
"message": "Earn double the points on every Nuggets purchase",
"bonus_points": 91,
"start_date": "2021-08-02T04:00:00.000Z",
"end_date": "2021-08-16T04:00:00.000Z"
}
],
"count": 2,
"has_more": true,
"source_url": "https://czqk28jt.apicdn.sanity.io/v1/graphql/prod_plk_us/default",
"fetched_at": "2026-09-04T00:00:00Z"
}
}The sample response, schema and code snippets below work without an account. Sending a live request needs an API key.