Document updated 30.07.2026
ExplorAds platform provides several options for downloading reports via API and sending S2S (postback) events.
This document covers the EA RSOC environment reports API. Other environments have their own report endpoints with the same authentication mechanism — see, for example, the Gamob API documentation. One Organization token authorizes all report endpoints available to your account.
ExplorAds API provides the reports in JSON format.
https://expldata.com/api/get-reportPOSTContent-Type: application/json
Authorization: <YOUR_API_TOKEN>
{
"startDate": "string (YYYYMMDD)",
"endDate": "string (YYYYMMDD)",
"reportType": "string (report name)"
}| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
startDate |
string | Yes | Start date in YYYYMMDD format (PST timezone). If not provided, defaults to today from 00:00 | "20250303" |
endDate |
string | Yes | End date in YYYYMMDD format (PST timezone). If not provided, defaults to today | "20250304" |
reportType |
string | No | Report type identifier (defaults to “conversions”) | "conversions" |
{
"startDate": "20250301",
"endDate": "20250301",
"reportType": "conversions"
}{
"startDate": "20250303",
"endDate": "20250310",
"reportType": "daily"
}The response is returned as base64-encoded gzip-compressed JSON.
Content-Type: application/json
Content-Encoding: gzip
Access-Control-Allow-Origin: *
Warning! Keep in mind that the order of members (attributes) in each of the data objects is not guaranteed.
{
"data": [
{
"date": "string (YYYYMMDD)",
"hour": "integer (0-23)",
"device_type": "string",
"country": "string",
"utm_source": "string",
"utm_medium": "string",
"utm_term": "string",
"utm_content": "string",
"utm_ad": "string",
"utm_campaign": "string",
"utm_partner": "string",
"utm_placement": "string",
"utm_adset": "string",
"utm_extra": "string",
"ad_name": "string",
"lang": "string",
"origin": "string",
"pub": "string",
"rac": "string",
"search_query": "string",
"tm": "string",
"landing_query": "string",
"tspid": "string",
"sum_estimated_earnings": "float",
"count_conv": "integer",
"adsense_clicks": "integer"
}
],
"report_info": {
"start_date": "integer (timestamp)",
"end_date": "integer (timestamp)",
"report_type": "string",
"total_records": "integer",
"total_earnings": "float",
"total_clickouts": "integer",
"earnings_<tspid>": "float",
"clickouts_<tspid>": "integer"
}
}| Field | Type | Description |
|---|---|---|
data |
array | Array of conversion records |
data[].date |
string | Date in YYYYMMDD format |
data[].hour |
integer | Hour of day (0-23) |
data[].device_type |
string | Device type (mobile, desktop, tablet) |
data[].country |
string | Country code |
data[].utm_source |
string | UTM source parameter |
data[].utm_medium |
string | UTM medium parameter |
data[].utm_term |
string | UTM term parameter |
data[].utm_content |
string | UTM content parameter |
data[].utm_ad |
string | UTM ad parameter |
data[].utm_campaign |
string | UTM campaign parameter |
data[].utm_partner |
string | UTM partner parameter |
data[].utm_placement |
string | UTM placement parameter |
data[].utm_adset |
string | UTM adset parameter |
data[].utm_extra |
string | UTM extra parameter |
data[].ad_name |
string | Advertisement name |
data[].lang |
string | Language code |
data[].origin |
string | Origin domain |
data[].pub |
string | Publisher identifier |
data[].rac |
string | RAC parameter |
data[].search_query |
string | Search query |
data[].tm |
string | TM parameter |
data[].landing_query |
string | Landing page query |
data[].tspid |
string | Traffic Source Partner ID |
data[].sum_estimated_earnings |
float | Total estimated earnings |
data[].count_conv |
integer | Number of conversions |
data[].adsense_clicks |
integer | Number of clicks reported by AdSense |
report_info.start_date |
integer | Report start timestamp |
report_info.end_date |
integer | Report end timestamp |
report_info.report_type |
string | Report type used |
report_info.total_records |
integer | Total number of records returned |
report_info.total_earnings |
float | Total earnings across all TSPIDs |
report_info.total_clickouts |
integer | Total clickouts across all TSPIDs |
report_info.earnings_<tspid> |
float | Earnings for specific TSPID |
report_info.clickouts_<tspid> |
integer | Clickouts for specific TSPID |
{
"error": "string",
"timestamp": "string (ISO 8601)"
}{
"error": "Unauthorized",
"timestamp": "string (ISO 8601)"
}| Type | Description | Internal Mapping | Data Granularity | Date Range Support |
|---|---|---|---|---|
conversions |
Conversion report data | rs1 |
Hourly | Single day only |
daily |
Daily aggregated report | daily |
Daily | Multiple days |
conversions (Hourly Reports)conversions-mk2 Databasesum_estimated_earnings, count_convdaily (Daily Reports)conversions-mk2 Databasesum_estimated_earnings, count_convconversions)remap_params for field mappingdaily)remap_params_for_daily_report for field mappingThe API uses token-based authentication via the Authorization header with token.
A single token can support multiple tspid of the same Organization. But we can also generate different tokens for different tspid in case you need to isolate your traffic reports.
POST and enter the API URLraw and set the content type to JSON*Windows + Postman users may, in rare cases, get an error when sending a request. In this case, use the options below.*
curl -X POST "https://expldata.com/api/get-report" ^
-H "Authorization: **Your token should be here** " ^
-H "Content-Type: application/json" ^
-d "{ \"startDate\": \"20250303\", \"endDate\": \"20250303\", \"reportType\": \"conversions\" }"curl -Method POST "https://expldata.com/api/get-report" `
-Headers @{Authorization="**Your token should be here**"; "Content-Type"="application/json"} `
-Body '{
"startDate": "20250303",
"endDate": "20250303",
"reportType": "conversions"
}'curl -X POST "https://expldata.com/api/get-report" \
-H "Authorization: **Your token should be here** " \
-H "Content-Type: application/json" \
-d '{
"startDate": "20250303",
"endDate": "20250303",
"reportType": "conversions"
}'import requests
import json
import base64
import gzip
url = "https://expldata.com/api/get-report"
headers = {
"Authorization": " **Your token should be here** ",
"Content-Type": "application/json"
}
data = {
"startDate": "20250303",
"endDate": "20250303",
"reportType": "conversions"
}
response = requests.post(url, json=data, headers=headers)
if response.status_code == 200:
# Get the base64-encoded response body
response_data = response.json()
# Decode base64 and decompress gzip
compressed_data = base64.b64decode(response_data)
json_data = gzip.decompress(compressed_data)
result = json.loads(json_data)
print("Report:", result)
else:
print(f"Error: {response.status_code}, {response.text}"){
"data": [
{
"date": "20250303",
"hour": 0,
"device_type": "mobile",
"country": "US",
"utm_source": "facebook",
"utm_medium": "cpc",
"utm_term": "health_symptoms",
"utm_content": "banner_1",
"utm_ad": "ad_123",
"utm_campaign": "health_campaign_2025",
"utm_partner": "partner_1",
"utm_placement": "feed",
"utm_adset": "adset_1",
"utm_extra": "",
"ad_name": "Health Symptoms Guide",
"lang": "en_US",
"origin": "https://www.explorads.com",
"pub": "fb",
"rac": "Learn More About Health Symptoms",
"search_query": "Health Symptoms Guide",
"tm": "ea",
"landing_query": "health guide",
"tspid": "tsp12",
"sum_estimated_earnings": 0.15,
"count_conv": 3,
"adsense_clicks": 5
}
],
"report_info": {
"start_date": 1709424000,
"end_date": 1709510399,
"report_type": "conversions",
"total_records": 1,
"total_earnings": 0.15,
"total_clickouts": 3,
"earnings_tsp_12345": 0.15,
"clickouts_tsp_12345": 3
}
}