Instore Offers Short Endpoint
Description
This endpoint gets the list of offers for a logged-in member
curl \
-X GET https://receipts.bitlabs.ai/?cmd=mp-mr-api-offers-short \
-H "Authorization: Bearer <token>"
Response Parameters
Param Name | Value(s) |
---|---|
status | 200 (success), 400 (failure) |
data | array[] of offers. |
Offer Fields
Name | Type | Description |
---|---|---|
addedToList | boolean | if the offer is added to the users list |
anyReceiptEligible | boolean | if the offer is an any receipt these are given special treatment as they will accept any receipt |
bannerImageUrl | string | there are several sizes for images from rectangular to square this is the rectangular ones typically used for a banner |
baseAmount | integer | this is the cashback amount in an integer format |
buyingOptions | buyingOptions Object | See additional documentation below for buyingOptions |
categoryIDs | integer[] | These are the categories that the offer is included within |
eligibleMediums | this is an enum[] and will contain either INSTORE or ONLINE | Out of the gate we will only offer support for the INSTORE variant |
imageUrl | string | Image url for the offer will often coincide with the square image url |
isIncentivized | boolean | Delineates between a high value offer or not. We have house offers that are loss leaders and this is what sets them apart. Typically we add a star to the offer to highlight it’s importance as a higher paid offer. |
line1 | string | This was poorly named but you can think of this as the offer title |
line3 | string | Equally poorly named this is the actual cashback value to the user formatted as "line3": "$4", |
line4 | string | This is the string formatted cashback value in the client currency "line4": "400 SB", |
line6 | string | This is the string formatted cashback value in the client currency with “Cash Back” appended "line6": "$4 Cash Back", |
notManyLeft | boolean | Determines if there aren’t a lot of these offers left. On our O&O we show small “not many left” banner |
offerID | integer | This is the offer id |
purchaseQuantity | integer | This is the minimum required quantity a user will be required to buy to get the offer. Be forewarned a lot of this logic was moved into the buying options which defines if there are multiple goals like “buy 1” or “buy 2” |
restrictedToMerchants | boolean | boolean value delineating if this offer is restricted to instore merchants or if it is available at all merchants. False means it's open to all merchants. If it's true, then the list of merchants will be available in the restrictToMerchants field. |
restrictToMerchantsCount | integer | the amount of merchants this offer is restricted to |
shortDescription | string | This is the description of the offer. Expect this to be a few words at most |
squareImageUrl | string | a url pointing to the square image |
Buying Options Fields
Name | Type | Description |
---|---|---|
awardFormatted | string | The string formatted reward value in the clients currency "awardFormatted": "150 SB", |
cashbackAmount | double | The reward amount in dollars "cashbackAmount": 1.5, |
cashbackFormatted | string | The string formatted reward amount in dollars formatted like so: cashbackFormatted": "$1.50", |
goalDescription | string | This is the description of the goal so there might be a buy1 or a buy 2 and this is the description for it "goalDescription": "Buy 1 pack of SweeTARTS Gummies Fruity Splitz", |
payoutAmount | double | The reward amount in the clients currency "payoutAmount": 400, |
requiredQuantity | integer | This is the required amount of the product that the user is expected to purchase to meet this goal. |
requiredSpendFormatted | Expect to mostly see required quantity. This is a separate kind of goal that requires the user to spend a certain amount on an offer rather than purchase a certain number | |
useGoalDescription | boolean | Typically the goal will look something like the following: Buy any 1 eligible product were we pull in the required quantity. If this is enabled we display the description from the goal instead. In practice this is mostly not used. |
useRequiredSpend | boolean | determines if required spend is used. This is almost never enabled. |
Example Response:
{
"bonus": null,
"data": \[
{
"addedToList": true,
"anyReceiptEligible": false,
"bannerImageUrl": "<https://ucontent.prdg.io/pimages/96/96773959-73c5-4c8c-8cdc-f5178860c012.jpg">,
"baseAmount": 400,
"buyingOptions": \[
{
"awardFormatted": "150 SB",
"cashbackAmount": 1.5,
"cashbackFormatted": "$1.50",
"goalDescription": "Buy 1 pack of SweeTARTS Gummies Fruity Splitz",
"payoutAmount": 150,
"requiredQuantity": 1,
"requiredSpendFormatted": null,
"useGoalDescription": false,
"useRequiredSpend": false
},
{
"awardFormatted": "400 SB",
"cashbackAmount": 4,
"cashbackFormatted": "$4",
"goalDescription": "Buy 2 packs of SweeTARTS Gummies Fruity Splitz",
"payoutAmount": 400,
"requiredQuantity": 2,
"requiredSpendFormatted": null,
"useGoalDescription": false,
"useRequiredSpend": false
}
\],
"categoryIDs": \[
13,
18,
40,
44,
45,
8
\],
"eligibleMediums": \[
"INSTORE"
\],
"eligibleUpcs": ["072799060701"]
"imageUrl": "<https://ucontent.prdg.io/pimages/b8/b829991d-14c1-406a-bacb-5925ca873518.jpg">,
"isIncentivized": true,
"line1": "SweeTARTS® Gummies Fruity Splitz",
"line3": "$4",
"line4": "400 SB",
"line6": "$4 Cash Back",
"notManyLeft": false,
"offerID": 7045645,
"purchaseQuantity": 1,
"lastUpdated": "2024-10-01T14:11:29-07:00[America/Los_Angeles]",
"restrictedToMerchants": true,
"restrictToMerchantsCount": 23,
"shortDescription": "Double the Fun with SweeTARTS® Gummies Fruity Splitz!",
"squareImageUrl": "<https://ucontent.prdg.io/pimages/b8/b829991d-14c1-406a-bacb-5925ca873518.jpg">
}
\],
"status": 200
}
Sample Pictures Displaying The Offer List:
Updated 3 months ago