curl --request POST \
--url https://live.copilot.fabric.inc/api-offers/coupon/search \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'x-site-context: <x-site-context>' \
--data '
{
"offset": 0,
"limit": 10,
"filters": [
{
"field": "title",
"value": "Black Friday",
"operator": "EQUAL"
}
]
}
'import requests
url = "https://live.copilot.fabric.inc/api-offers/coupon/search"
payload = {
"offset": 0,
"limit": 10,
"filters": [
{
"field": "title",
"value": "Black Friday",
"operator": "EQUAL"
}
]
}
headers = {
"x-site-context": "<x-site-context>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'x-site-context': '<x-site-context>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
offset: 0,
limit: 10,
filters: [{field: 'title', value: 'Black Friday', operator: 'EQUAL'}]
})
};
fetch('https://live.copilot.fabric.inc/api-offers/coupon/search', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://live.copilot.fabric.inc/api-offers/coupon/search",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'offset' => 0,
'limit' => 10,
'filters' => [
[
'field' => 'title',
'value' => 'Black Friday',
'operator' => 'EQUAL'
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"x-site-context: <x-site-context>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://live.copilot.fabric.inc/api-offers/coupon/search"
payload := strings.NewReader("{\n \"offset\": 0,\n \"limit\": 10,\n \"filters\": [\n {\n \"field\": \"title\",\n \"value\": \"Black Friday\",\n \"operator\": \"EQUAL\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-site-context", "<x-site-context>")
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://live.copilot.fabric.inc/api-offers/coupon/search")
.header("x-site-context", "<x-site-context>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"offset\": 0,\n \"limit\": 10,\n \"filters\": [\n {\n \"field\": \"title\",\n \"value\": \"Black Friday\",\n \"operator\": \"EQUAL\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://live.copilot.fabric.inc/api-offers/coupon/search")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-site-context"] = '<x-site-context>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"offset\": 0,\n \"limit\": 10,\n \"filters\": [\n {\n \"field\": \"title\",\n \"value\": \"Black Friday\",\n \"operator\": \"EQUAL\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"query": {
"limit": 10,
"offset": 0,
"count": 50
},
"data": [
{
"_id": "abcdefg1ee7ce20123456789",
"promoId": 100013,
"promoCodes": [
"SUMMER100",
"SUMMER20"
],
"promoCount": 0,
"state": "SCHEDULED",
"isImplicit": true,
"title": "CREATE PROMO",
"startDate": "2019-08-24T14:15:22Z",
"endDate": "2019-08-25T14:15:22Z",
"isExclusive": true,
"eligiblePriceList": [
10000056
],
"level": 1,
"stackingType": "STACKABLE",
"updatedAt": "2019-08-20T14:15:22Z"
}
]
}{
"code": "BAD_REQUEST",
"message": "Bad Request"
}{
"code": "INTERNAL_SERVER_ERROR",
"message": "Internal server error."
}Search for coupons
Use this endpoint to search for coupons based on filter conditions.
curl --request POST \
--url https://live.copilot.fabric.inc/api-offers/coupon/search \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'x-site-context: <x-site-context>' \
--data '
{
"offset": 0,
"limit": 10,
"filters": [
{
"field": "title",
"value": "Black Friday",
"operator": "EQUAL"
}
]
}
'import requests
url = "https://live.copilot.fabric.inc/api-offers/coupon/search"
payload = {
"offset": 0,
"limit": 10,
"filters": [
{
"field": "title",
"value": "Black Friday",
"operator": "EQUAL"
}
]
}
headers = {
"x-site-context": "<x-site-context>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'x-site-context': '<x-site-context>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
offset: 0,
limit: 10,
filters: [{field: 'title', value: 'Black Friday', operator: 'EQUAL'}]
})
};
fetch('https://live.copilot.fabric.inc/api-offers/coupon/search', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://live.copilot.fabric.inc/api-offers/coupon/search",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'offset' => 0,
'limit' => 10,
'filters' => [
[
'field' => 'title',
'value' => 'Black Friday',
'operator' => 'EQUAL'
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"x-site-context: <x-site-context>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://live.copilot.fabric.inc/api-offers/coupon/search"
payload := strings.NewReader("{\n \"offset\": 0,\n \"limit\": 10,\n \"filters\": [\n {\n \"field\": \"title\",\n \"value\": \"Black Friday\",\n \"operator\": \"EQUAL\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-site-context", "<x-site-context>")
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://live.copilot.fabric.inc/api-offers/coupon/search")
.header("x-site-context", "<x-site-context>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"offset\": 0,\n \"limit\": 10,\n \"filters\": [\n {\n \"field\": \"title\",\n \"value\": \"Black Friday\",\n \"operator\": \"EQUAL\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://live.copilot.fabric.inc/api-offers/coupon/search")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-site-context"] = '<x-site-context>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"offset\": 0,\n \"limit\": 10,\n \"filters\": [\n {\n \"field\": \"title\",\n \"value\": \"Black Friday\",\n \"operator\": \"EQUAL\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"query": {
"limit": 10,
"offset": 0,
"count": 50
},
"data": [
{
"_id": "abcdefg1ee7ce20123456789",
"promoId": 100013,
"promoCodes": [
"SUMMER100",
"SUMMER20"
],
"promoCount": 0,
"state": "SCHEDULED",
"isImplicit": true,
"title": "CREATE PROMO",
"startDate": "2019-08-24T14:15:22Z",
"endDate": "2019-08-25T14:15:22Z",
"isExclusive": true,
"eligiblePriceList": [
10000056
],
"level": 1,
"stackingType": "STACKABLE",
"updatedAt": "2019-08-20T14:15:22Z"
}
]
}{
"code": "BAD_REQUEST",
"message": "Bad Request"
}{
"code": "INTERNAL_SERVER_ERROR",
"message": "Internal server error."
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Headers
The x-site-context header is a JSON object that contains information about the source you wish to pull from. The mandatory account is the 24 character identifier found in Copilot. The channel (Sales channel ID), stage (environment name), and date attributes can be used to further narrow the scope of your data source.
"{\"date\": \"2023-01-01T00:00:00.000Z\", \"channel\": 12, \"account\": \"1234abcd5678efgh9ijklmno\",\"stage\":\"production\"}"
Body
A sample request to search for promotions or coupons.
The number of records to skip before returning records. For example, when offset is 20 and limit is 10, this endpoint returns records from 21 to 30.
x >= 00
The maximum number of records per page.
1 <= x <= 10010
The criteria to sort the results. Use the format {sort order}{field name}, where - refers to a descending order and + refers to an ascending order.
+updatedAt, +title, +startDate, +endDate, +level, -updatedAt, -title, -startDate, -endDate, -level Show child attributes
Show child attributes
Was this page helpful?
