curl --request GET \
--url https://api.topsort.com/public/v1/reporting-service/interactions \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.topsort.com/public/v1/reporting-service/interactions"
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/interactions', 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/interactions",
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/interactions"
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/interactions")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.topsort.com/public/v1/reporting-service/interactions")
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{
"hasMore": true,
"interactions": [
{
"vendorId": "<string>",
"timestamp": "2023-11-07T05:31:56Z",
"impressions": 123,
"clicks": 123,
"chargedClicks": 123,
"adSpentClicks": 123,
"chargedImpressions": 123,
"adSpentImpressions": 123,
"totalPurchaseAmount": 123,
"totalPurchaseQuantity": 123,
"totalPurchaseCount": 123,
"adSpentExclusiveCampaign": 123,
"chargedAttributedPurchases": 123,
"adSpentAttributedPurchases": 123,
"campaignId": "<string>",
"productId": "<string>"
}
],
"nextPage": "SSBzb2xlbW5seSBzd2VhciB0aGF0IEkgYW0gdXAgdG8gbm8gZ29vZAo="
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Get Marketplace Interactions Report
Get interactions report for a marketplace grouped by entity type.
This endpoint returns detailed interaction data (impressions, clicks, purchases, etc.) aggregated by the specified entity type (vendor, campaign, or product) and time granularity (daily or hourly). Results can optionally be filtered to a single vendor or campaign. The response is paginated to handle large datasets.
curl --request GET \
--url https://api.topsort.com/public/v1/reporting-service/interactions \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.topsort.com/public/v1/reporting-service/interactions"
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/interactions', 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/interactions",
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/interactions"
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/interactions")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.topsort.com/public/v1/reporting-service/interactions")
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{
"hasMore": true,
"interactions": [
{
"vendorId": "<string>",
"timestamp": "2023-11-07T05:31:56Z",
"impressions": 123,
"clicks": 123,
"chargedClicks": 123,
"adSpentClicks": 123,
"chargedImpressions": 123,
"adSpentImpressions": 123,
"totalPurchaseAmount": 123,
"totalPurchaseQuantity": 123,
"totalPurchaseCount": 123,
"adSpentExclusiveCampaign": 123,
"chargedAttributedPurchases": 123,
"adSpentAttributedPurchases": 123,
"campaignId": "<string>",
"productId": "<string>"
}
],
"nextPage": "SSBzb2xlbW5seSBzd2VhciB0aGF0IEkgYW0gdXAgdG8gbm8gZ29vZAo="
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Authorizations
Query Parameters
The start date for which reports will be generated, specified in RFC 3339.
The end date for which reports will be generated, specified in RFC 3339.
Response
Successful Response
Unified response model for both daily and hourly interactions reports.
Contains a list of interaction entries, each representing detailed metrics for a specific entity (vendor, campaign, or product) at a given timestamp. The response is paginated to handle large datasets.
Was this page helpful?