Search Offers
- cardholder_idEntityIdrequiredExampleDescription
- bodyobject
- apply_filterApplyFilterDescription
- categoryTripleOfferCategoryDescription
- exclude_offer_idsEntityId[]Description
- include_offer_idsEntityId[]Description
- modeOfferModeDescription
- typeOfferTypeDescription
- activation_requiredActivationRequiredDescription
- crowding_parametersCrowdingParametersDescription
- categoryinteger
- merchantinteger
- modeinteger
- page_offsetintegerDescriptionDefault0
- page_sizeintegerDescriptionDefault25
- proximity_targetGeoTargetDescription
- country_codeCountryCodeExampleDescription
- latitudeLatitudeExample
- longitudeLongitudeExample
- postal_codePostalCodeExampleDescription
- radiusRadiusDescriptionDefault35000
- text_querystringExampleDescription
- object
- offersCardholderOfferPreview[]required
- CardholderOfferCore
- activation_requiredOfferActivationIsRequiredrequiredDescription
- external_idOfferExternalIdrequiredDescription
- ExternalId
- categoryTripleOfferCategoryrequiredDescription
- currency_codeCurrencyCoderequiredExampleDescriptionDefaultUSD
- effective_dateOfferEffectiveDaterequiredExampleDescription
- expiration_dateOfferExpirationDateExampleDescription
- headlineOfferHeadlinerequiredDescription
- idEntityIdrequiredExampleDescription
- is_activatedOfferIsActivatedrequiredDescription
- activated_atOfferActivatedAtExampleDescription
- activation_expires_atOfferActivationExpiresAtExampleDescription
- merchant_logo_urlMerchantLogoUrlDescription
- merchant_nameMerchantAssumedNamerequiredDescription
- merchant_websiteMerchantWebsite
- minimum_spendOfferMinimumSpendDescription
- offer_modeOfferModerequiredDescription
- offer_preferenceOfferPreferencerequired
- reward_rateOfferRewardRateDescription
- reward_typeOfferRewardTyperequiredDescription
- reward_valueOfferRewardValueDescription
- typeOfferTyperequiredDescription
- object
- nearest_locationCardholderOfferLocationDescription
- addressStrictAddressrequiredDescription
- Address
- citystringExampleDescription
- completeCompleteAddressExampleDescription
- country_codeCountryCodeExampleDescription
- country_subdivision_codestringExampleDescription
- latitudeLatitudeExample
- longitudeLongitudeExample
- postal_codePostalCodeExampleDescription
- street_addressstringExampleDescription
- distancenumberDescription
- emailstringDescription
- idEntityIdrequiredExampleDescription
- is_in_radiusbooleanrequiredDescription
- location_namestringExampleDescription
- phone_numberstringDescription
- urlstring<url>
- totalOfferSearchResultsTotalrequiredDescription
- object
- status_codeintegerrequiredDescription
- contentobjectrequiredDescription
- detailsErrorResponseDetailsDescription
- error_messagestringrequiredDescriptionDefaultThe request is malformed.
- exceptionstring<TripleBadRequestError>requiredDescription
- object
- status_codeintegerrequiredDescription
- contentobjectrequiredDescription
- detailsErrorResponseDetailsDescription
- error_messagestringrequiredDescriptionDefaultClient authentication failed.
- exceptionstring<TripleNotAuthenticatedError>requiredDescription
- object
- status_codeintegerrequiredDescription
- contentobjectrequiredDescription
- detailsErrorResponseDetailsDescription
- error_messagestringrequiredDescriptionDefaultThe url path or path parameter is invalid.
- exceptionstring<TripleInvalidPathError>requiredDescription
- object
- status_codeintegerrequiredDescription
- contentobjectrequiredDescription
- detailsErrorResponseDetailsDescription
- error_messagestringrequiredDescriptionDefaultThe request was well-formed but violated entity integrity constraints.
- exceptionstring<TripleIntegrityError>requiredDescription
- object
- status_codeintegerrequiredDescription
- contentobjectrequiredDescription
- detailsErrorResponseDetailsDescription
- error_messagestringrequiredDescriptionDefaultThe request defined an unsupported media type.
- exceptionstring<TripleUnsupportedMediaType>requiredDescription
- object
- status_codeintegerrequiredDescription
- contentobjectrequiredDescription
- detailsErrorResponseDetailsDescription
- error_messagestringrequiredDescriptionDefaultThe request was well-formed but could not be processed.
- exceptionstring<TripleUnprocessableEntity>requiredDescription
- object
- status_codeintegerrequiredDescription
- contentobjectrequiredDescription
- detailsErrorResponseDetailsDescription
- error_messagestringrequiredDescriptionDefaultTriple was unable to process the request due to an internal error.
- exceptionstring<TripleInternalServerError>requiredDescription
- object
- status_codeintegerrequiredDescription
- contentobjectrequiredDescription
- detailsErrorResponseDetailsDescription
- error_messagestringrequiredDescriptionDefaultThe request failed because it requires a feature that is not yet implemented.
- exceptionstring<TripleNotImplementedError>requiredDescription
- object
- status_codeintegerrequiredDescription
- contentobjectrequiredDescription
- detailsErrorResponseDetailsDescription
- error_messagestringrequiredDescriptionDefaultThe request failed due to a triple service interruption.
- exceptionstring<TripleServiceUnavailable>requiredDescription
curl --request POST \
--url https://api.sandbox.tripleup.dev/partner/card-accounts/{cardholder_id}/offers.search \
--header 'accept: application/json' \
--header 'content-type: application/json' \
--data '{
"page_size": 25,
"proximity_target": {
"radius": 35000
}
}'var myHeaders = new Headers();
myHeaders.append("accept", "application/json");
myHeaders.append("content-type", "application/json");
var raw = JSON.stringify({
"page_size": 25,
"proximity_target": {
"radius": 35000
}
});
var requestOptions = {
method: 'POST',
headers: myHeaders,
body: raw,
redirect: 'follow'
};
fetch("https://api.sandbox.tripleup.dev/partner/card-accounts/{cardholder_id}/offers.search", requestOptions)
.then(response => response.text())
.then(result => console.log(result))
.catch(error => console.log('error', error));require "uri"
require "json"
require "net/http"
url = URI("https://api.sandbox.tripleup.dev/partner/card-accounts/{cardholder_id}/offers.search")
https = Net::HTTP.new(url.host, url.port)
https.use_ssl = true
request = Net::HTTP::Post.new(url)
request["accept"] = "application/json"
request["content-type"] = "application/json"
request.body = JSON.dump({
"page_size": 25,
"proximity_target": {
"radius": 35000
}
})
response = https.request(request)
puts response.read_body
import requests
import json
url = "https://api.sandbox.tripleup.dev/partner/card-accounts/{cardholder_id}/offers.search"
payload = json.dumps({
"page_size": 25,
"proximity_target": {
"radius": 35000
}
})
headers = {
'accept': 'application/json',
'content-type': 'application/json'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
// Offers
{
"offers": {},
"total": 0
}// TripleBadRequestError
{
"status_code": 0,
"content": {
"details": [
""
],
"error_message": "",
"exception": ""
}
}// TripleNotAuthenticatedError
{
"status_code": 0,
"content": {
"details": [
""
],
"error_message": "",
"exception": ""
}
}// TripleInvalidPathError
{
"status_code": 0,
"content": {
"details": [
""
],
"error_message": "",
"exception": ""
}
}// TripleIntegrityError
{
"status_code": 0,
"content": {
"details": [
""
],
"error_message": "",
"exception": ""
}
}// TripleUnsupportedMediaType
{
"status_code": 0,
"content": {
"details": [
""
],
"error_message": "",
"exception": ""
}
}// TripleUnprocessableEntity
{
"status_code": 0,
"content": {
"details": [
""
],
"error_message": "",
"exception": ""
}
}// TripleInternalServerError
{
"status_code": 0,
"content": {
"details": [
""
],
"error_message": "",
"exception": ""
}
}// TripleNotImplementedError
{
"status_code": 0,
"content": {
"details": [
""
],
"error_message": "",
"exception": ""
}
}// TripleServiceUnavailable
{
"status_code": 0,
"content": {
"details": [
""
],
"error_message": "",
"exception": ""
}
}Search for offers, optionally by category.
Providing a latitude and longitude for is highly encouraged. Doing so allows Triple to deliver the most relevant Offers and Merchant Locations.
The default behavior of this endpoint is the null query, which fetches triple offers recommendations based on a Customer's geo-location, transaction history, and offer interactions.
However, a Customer can also search directly for offers with ad hoc text queries and/or by faceting on offer category. This action replaces the null query with search terms and/or one or more offer category facets. For example, a Customer may search for 'italian food' in plain text and select the 'FOOD' offer category facet.
Search results are paginated, using the page_size and page_offset parameters. For example, page_size=10 and page_offset=30 corresponds to the 4th page of 10 offers.
Note that Offer Display Rules are enforced against all search results.