Offers
Retrieve all active promotions and discounts available across all providers. Offers are also surfaced in the cart response as availableOffers.
Get All Offers
Include a Bearer token in the Authorization header. See Authentication.
Parameters
No query or path parameters required.
Response
Returns an array of offer objects. Each object describes one promotion including its qualifying conditions and the benefit awarded.
| Field | Type | Description |
|---|---|---|
| id | string | Offer identifier (e.g., discp60, flat150, buy2get3) |
| provider | object | Provider this offer belongs to |
| provider.id | string | Provider ID |
| type | string | Offer type: "discount" | "buyXgetY" | "slab" | "delivery". See Offer Types. |
| images | string[] | Offer banner image URLs |
| locationIds | string[] | Provider location IDs where this offer is valid |
| itemIds | string[] | Item IDs this offer applies to |
| categoryIds | string[] | Category IDs this offer applies to |
| timeStart | string | ISO 8601 datetime — offer validity start |
| timeEnd | string | ISO 8601 datetime — offer validity end |
| qualifiers[] | array | Conditions required to activate the offer. See qualifiers[]. |
| benifits[] | array | What the customer receives when the offer is activated. See benifits[]. |
qualifiers[]
Each element describes a condition the cart must satisfy for the offer to apply.
| Field | Type | Description |
|---|---|---|
| minValue | string | null | Minimum cart value required. Example: "159" = cart must be ₹159 or above |
| itemCount | number | null | Minimum item count required. For buyXgetY this is the "buy X" quantity. For slab this is the lower bound of the tier. |
| itemCountUpper | number | null | Upper item count bound for slab tiers. Example: itemCount: 6, itemCountUpper: 9 means "buy 6 to 9 items". null for non-slab offers. |
| itemIds | string[] | Specific item IDs that must be in the cart to qualify |
benifits[]
Each element describes what the customer receives when the offer qualifiers are met.
| Field | Type | Description |
|---|---|---|
| value | string | null | Discount value. A negative number represents a discount. Example: "-60" with valueType: "percent" = 60% off; "-150" with valueType: "amount" = ₹150 off |
| valueType | string | null | "percent" or "amount". null for buyXgetY offers. |
| valueCap | string | null | Maximum cap on the discount. Example: "-120" = maximum ₹120 off regardless of percentage |
| itemCount | number | null | Number of free items awarded (buyXgetY). Example: 1 = get 1 item free |
| itemIds | string[] | IDs of the free items awarded (buyXgetY) |
| itemValue | string | null | Price of the free item. "0" = completely free |
Offer Types
| Type | Description | Example |
|---|---|---|
| discount | Percentage or flat amount off the cart value. Optionally capped. | 60% off on orders above ₹159 (max ₹120 off) |
| buyXgetY | Buy a set number of qualifying items and receive additional items free. | Buy 2 items, get 1 free |
| slab | Tiered discount based on item quantity. Different slabs can offer different discount percentages. | 10% off when cart has 6–9 items; 15% off for 10–14 items |
| delivery | Discount applied to delivery charges rather than the item subtotal. | 100% off delivery (max ₹75) on orders above ₹299 |
Examples
discount — Percentage off with cap
60% off on orders above ₹159. Maximum discount capped at ₹120.
{
"id": "discp60",
"provider": { "id": "pramaan_provider_1" },
"type": "discount",
"images": [],
"locationIds": ["SSL1"],
"itemIds": [],
"categoryIds": [],
"timeStart": "2026-03-22T07:49:44.308Z",
"timeEnd": "2026-03-24T07:49:44.308Z",
"qualifiers": [
{ "minValue": "159", "itemCount": null, "itemCountUpper": null, "itemIds": [] }
],
"benifits": [
{ "value": "-60", "valueType": "percent", "valueCap": "-120", "itemCount": null, "itemIds": [], "itemValue": null }
]
}
discount — Flat amount off
₹150 flat off on orders above ₹499.
{
"id": "flat150",
"provider": { "id": "pramaan_provider_1" },
"type": "discount",
"images": [],
"locationIds": ["SSL1"],
"itemIds": [],
"categoryIds": [],
"timeStart": "2026-03-22T07:49:44.308Z",
"timeEnd": "2026-03-24T07:49:44.308Z",
"qualifiers": [
{ "minValue": "499", "itemCount": null, "itemCountUpper": null, "itemIds": [] }
],
"benifits": [
{ "value": "-150", "valueType": "amount", "valueCap": null, "itemCount": null, "itemIds": [], "itemValue": null }
]
}
buyXgetY — Buy 2 get 1 free
Add 2 qualifying items and receive 1 free. The qualifier itemCount: 2 is the "buy X" quantity; the benefit itemCount: 1 is the "get Y free" quantity.
{
"id": "buy2get3",
"provider": { "id": "pramaan_provider_1" },
"type": "buyXgetY",
"images": [],
"locationIds": ["SSL1"],
"itemIds": ["id_ancc5_0_0", "id_1bai73_1_0"],
"categoryIds": [],
"timeStart": "2026-03-22T07:49:44.308Z",
"timeEnd": "2026-03-24T07:49:44.308Z",
"qualifiers": [
{ "minValue": null, "itemCount": 2, "itemCountUpper": null, "itemIds": ["id_ancc5_0_0", "id_1bai73_1_0"] }
],
"benifits": [
{ "value": null, "valueType": null, "valueCap": null, "itemCount": 1, "itemIds": ["id_ancc5_0_0"], "itemValue": "0" }
]
}
slab — Tiered quantity discount
10% off when the cart contains 6 to 9 qualifying items. A second slab entry (not shown) may cover 10–14 items at a different rate.
{
"id": "slab10pct",
"provider": { "id": "pramaan_provider_1" },
"type": "slab",
"images": [],
"locationIds": ["SSL1"],
"itemIds": [],
"categoryIds": ["CM11"],
"timeStart": "2026-03-22T07:49:44.308Z",
"timeEnd": "2026-03-24T07:49:44.308Z",
"qualifiers": [
{ "minValue": null, "itemCount": 6, "itemCountUpper": 9, "itemIds": [] }
],
"benifits": [
{ "value": "-10", "valueType": "percent", "valueCap": null, "itemCount": null, "itemIds": [], "itemValue": null }
]
}
delivery — Free delivery
100% off delivery charges (capped at ₹75) on orders above ₹299.
{
"id": "freedel299",
"provider": { "id": "pramaan_provider_1" },
"type": "delivery",
"images": [],
"locationIds": ["SSL1"],
"itemIds": [],
"categoryIds": [],
"timeStart": "2026-03-22T07:49:44.308Z",
"timeEnd": "2026-03-24T07:49:44.308Z",
"qualifiers": [
{ "minValue": "299", "itemCount": null, "itemCountUpper": null, "itemIds": [] }
],
"benifits": [
{ "value": "-100", "valueType": "percent", "valueCap": "-75", "itemCount": null, "itemIds": [], "itemValue": null }
]
}
Usage Notes
- Offers are provider-scoped. Always filter by
provider.idwhen displaying offers for a specific restaurant. - Check
timeStartandtimeEndon the client to avoid showing expired offers before the next API call. - For
slaboffers, a provider may return multiple objects with the sameidbut differentitemCount/itemCountUpperranges — each represents one tier. - Offers are also returned inside the cart response as
availableOffersso you can show applicable promotions in context. - The field name
benifits(notbenefits) matches the API response exactly — use this spelling in your client code.