Get Product Report
curl --request GET \
--url https://api.topsort.com/public/v1/reporting-service/campaigns/{campaign_id}/products/{product_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.topsort.com/public/v1/reporting-service/campaigns/{campaign_id}/products/{product_id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.topsort.com/public/v1/reporting-service/campaigns/{campaign_id}/products/{product_id}', 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://api.topsort.com/public/v1/reporting-service/campaigns/{campaign_id}/products/{product_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.topsort.com/public/v1/reporting-service/campaigns/{campaign_id}/products/{product_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.topsort.com/public/v1/reporting-service/campaigns/{campaign_id}/products/{product_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.topsort.com/public/v1/reporting-service/campaigns/{campaign_id}/products/{product_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"impressions": {
"total": 123,
"charged": 123,
"adSpent": 123,
"adSpentDecimal": "<string>"
},
"clicks": {
"total": 123,
"charged": 123,
"adSpent": 123,
"adSpentDecimal": "<string>"
},
"purchases": {
"amount": 123,
"count": 123,
"quantity": 123,
"countByProduct": {}
}
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Reporting API
Get Product Report
Endpoint to get a product’s total behavioral summary report between given dates.
GET
/
public
/
v1
/
reporting-service
/
campaigns
/
{campaign_id}
/
products
/
{product_id}
Get Product Report
curl --request GET \
--url https://api.topsort.com/public/v1/reporting-service/campaigns/{campaign_id}/products/{product_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.topsort.com/public/v1/reporting-service/campaigns/{campaign_id}/products/{product_id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.topsort.com/public/v1/reporting-service/campaigns/{campaign_id}/products/{product_id}', 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://api.topsort.com/public/v1/reporting-service/campaigns/{campaign_id}/products/{product_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.topsort.com/public/v1/reporting-service/campaigns/{campaign_id}/products/{product_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.topsort.com/public/v1/reporting-service/campaigns/{campaign_id}/products/{product_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.topsort.com/public/v1/reporting-service/campaigns/{campaign_id}/products/{product_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"impressions": {
"total": 123,
"charged": 123,
"adSpent": 123,
"adSpentDecimal": "<string>"
},
"clicks": {
"total": 123,
"charged": 123,
"adSpent": 123,
"adSpentDecimal": "<string>"
},
"purchases": {
"amount": 123,
"count": 123,
"quantity": 123,
"countByProduct": {}
}
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Authorizations
A valid API key generated in Topsort's UI. Use the TSE API key if calling auctions or events API, otherwise use the TSC API key.
Path Parameters
The ID of the campaign.
The ID of the product.
Query Parameters
The start date for which reports will be generated.
The end date for which reports will be generated.
Response
Successful Response
Clicks, impressions and purchases attributed to this report item so far.
How many impressions are attributed to this report item.
Show child attributes
Show child attributes
How many clicks are attributed to this report item.
Show child attributes
Show child attributes
How many purchases are attributed to this report item.
Show child attributes
Show child attributes
Was this page helpful?