Skip to main content
POST
/
v1
/
report
/report
curl --request POST \
  --url https://api.tagdeliver.com/v1/report \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "date_range": "seven_days",
  "fields": [
    "date",
    "publisher",
    "uid",
    "net_revenue",
    "gross_revenue"
  ],
  "filters": {
    "account_name": {
      "matches": [],
      "type": "include"
    },
    "account_owner": {
      "matches": [],
      "type": "include"
    },
    "channel": {
      "matches": [],
      "type": "include"
    },
    "config_id": {
      "matches": [],
      "type": "include"
    },
    "creative_size": {
      "matches": [],
      "type": "include"
    },
    "device": {
      "matches": [],
      "type": "include"
    },
    "environment": {
      "matches": [],
      "type": "include"
    },
    "geo": {
      "matches": [],
      "type": "include"
    },
    "line_item": {
      "matches": [],
      "type": "include"
    },
    "oid": {
      "matches": [],
      "type": "include"
    },
    "partner": {
      "matches": [],
      "type": "include"
    },
    "platform": {
      "matches": [],
      "type": "include"
    },
    "region": {
      "matches": [],
      "type": "include"
    },
    "revenue_source": {
      "matches": [],
      "type": "include"
    },
    "uid": {
      "matches": [],
      "type": "include"
    },
    "unit": {
      "matches": [],
      "type": "include"
    }
  },
  "temporary": true,
  "custom_date": null
}
'
import requests

url = "https://api.tagdeliver.com/v1/report"

payload = {
"date_range": "seven_days",
"fields": ["date", "publisher", "uid", "net_revenue", "gross_revenue"],
"filters": {
"account_name": {
"matches": [],
"type": "include"
},
"account_owner": {
"matches": [],
"type": "include"
},
"channel": {
"matches": [],
"type": "include"
},
"config_id": {
"matches": [],
"type": "include"
},
"creative_size": {
"matches": [],
"type": "include"
},
"device": {
"matches": [],
"type": "include"
},
"environment": {
"matches": [],
"type": "include"
},
"geo": {
"matches": [],
"type": "include"
},
"line_item": {
"matches": [],
"type": "include"
},
"oid": {
"matches": [],
"type": "include"
},
"partner": {
"matches": [],
"type": "include"
},
"platform": {
"matches": [],
"type": "include"
},
"region": {
"matches": [],
"type": "include"
},
"revenue_source": {
"matches": [],
"type": "include"
},
"uid": {
"matches": [],
"type": "include"
},
"unit": {
"matches": [],
"type": "include"
}
},
"temporary": True,
"custom_date": None
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

print(response.text)
const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
date_range: 'seven_days',
fields: ['date', 'publisher', 'uid', 'net_revenue', 'gross_revenue'],
filters: {
account_name: {matches: [], type: 'include'},
account_owner: {matches: [], type: 'include'},
channel: {matches: [], type: 'include'},
config_id: {matches: [], type: 'include'},
creative_size: {matches: [], type: 'include'},
device: {matches: [], type: 'include'},
environment: {matches: [], type: 'include'},
geo: {matches: [], type: 'include'},
line_item: {matches: [], type: 'include'},
oid: {matches: [], type: 'include'},
partner: {matches: [], type: 'include'},
platform: {matches: [], type: 'include'},
region: {matches: [], type: 'include'},
revenue_source: {matches: [], type: 'include'},
uid: {matches: [], type: 'include'},
unit: {matches: [], type: 'include'}
},
temporary: true,
custom_date: null
})
};

fetch('https://api.tagdeliver.com/v1/report', 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.tagdeliver.com/v1/report",
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([
'date_range' => 'seven_days',
'fields' => [
'date',
'publisher',
'uid',
'net_revenue',
'gross_revenue'
],
'filters' => [
'account_name' => [
'matches' => [

],
'type' => 'include'
],
'account_owner' => [
'matches' => [

],
'type' => 'include'
],
'channel' => [
'matches' => [

],
'type' => 'include'
],
'config_id' => [
'matches' => [

],
'type' => 'include'
],
'creative_size' => [
'matches' => [

],
'type' => 'include'
],
'device' => [
'matches' => [

],
'type' => 'include'
],
'environment' => [
'matches' => [

],
'type' => 'include'
],
'geo' => [
'matches' => [

],
'type' => 'include'
],
'line_item' => [
'matches' => [

],
'type' => 'include'
],
'oid' => [
'matches' => [

],
'type' => 'include'
],
'partner' => [
'matches' => [

],
'type' => 'include'
],
'platform' => [
'matches' => [

],
'type' => 'include'
],
'region' => [
'matches' => [

],
'type' => 'include'
],
'revenue_source' => [
'matches' => [

],
'type' => 'include'
],
'uid' => [
'matches' => [

],
'type' => 'include'
],
'unit' => [
'matches' => [

],
'type' => 'include'
]
],
'temporary' => true,
'custom_date' => null
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);

$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://api.tagdeliver.com/v1/report"

payload := strings.NewReader("{\n \"date_range\": \"seven_days\",\n \"fields\": [\n \"date\",\n \"publisher\",\n \"uid\",\n \"net_revenue\",\n \"gross_revenue\"\n ],\n \"filters\": {\n \"account_name\": {\n \"matches\": [],\n \"type\": \"include\"\n },\n \"account_owner\": {\n \"matches\": [],\n \"type\": \"include\"\n },\n \"channel\": {\n \"matches\": [],\n \"type\": \"include\"\n },\n \"config_id\": {\n \"matches\": [],\n \"type\": \"include\"\n },\n \"creative_size\": {\n \"matches\": [],\n \"type\": \"include\"\n },\n \"device\": {\n \"matches\": [],\n \"type\": \"include\"\n },\n \"environment\": {\n \"matches\": [],\n \"type\": \"include\"\n },\n \"geo\": {\n \"matches\": [],\n \"type\": \"include\"\n },\n \"line_item\": {\n \"matches\": [],\n \"type\": \"include\"\n },\n \"oid\": {\n \"matches\": [],\n \"type\": \"include\"\n },\n \"partner\": {\n \"matches\": [],\n \"type\": \"include\"\n },\n \"platform\": {\n \"matches\": [],\n \"type\": \"include\"\n },\n \"region\": {\n \"matches\": [],\n \"type\": \"include\"\n },\n \"revenue_source\": {\n \"matches\": [],\n \"type\": \"include\"\n },\n \"uid\": {\n \"matches\": [],\n \"type\": \"include\"\n },\n \"unit\": {\n \"matches\": [],\n \"type\": \"include\"\n }\n },\n \"temporary\": true,\n \"custom_date\": null\n}")

req, _ := http.NewRequest("POST", url, payload)

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://api.tagdeliver.com/v1/report")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"date_range\": \"seven_days\",\n \"fields\": [\n \"date\",\n \"publisher\",\n \"uid\",\n \"net_revenue\",\n \"gross_revenue\"\n ],\n \"filters\": {\n \"account_name\": {\n \"matches\": [],\n \"type\": \"include\"\n },\n \"account_owner\": {\n \"matches\": [],\n \"type\": \"include\"\n },\n \"channel\": {\n \"matches\": [],\n \"type\": \"include\"\n },\n \"config_id\": {\n \"matches\": [],\n \"type\": \"include\"\n },\n \"creative_size\": {\n \"matches\": [],\n \"type\": \"include\"\n },\n \"device\": {\n \"matches\": [],\n \"type\": \"include\"\n },\n \"environment\": {\n \"matches\": [],\n \"type\": \"include\"\n },\n \"geo\": {\n \"matches\": [],\n \"type\": \"include\"\n },\n \"line_item\": {\n \"matches\": [],\n \"type\": \"include\"\n },\n \"oid\": {\n \"matches\": [],\n \"type\": \"include\"\n },\n \"partner\": {\n \"matches\": [],\n \"type\": \"include\"\n },\n \"platform\": {\n \"matches\": [],\n \"type\": \"include\"\n },\n \"region\": {\n \"matches\": [],\n \"type\": \"include\"\n },\n \"revenue_source\": {\n \"matches\": [],\n \"type\": \"include\"\n },\n \"uid\": {\n \"matches\": [],\n \"type\": \"include\"\n },\n \"unit\": {\n \"matches\": [],\n \"type\": \"include\"\n }\n },\n \"temporary\": true,\n \"custom_date\": null\n}")
.asString();
require 'uri'
require 'net/http'

url = URI("https://api.tagdeliver.com/v1/report")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"date_range\": \"seven_days\",\n \"fields\": [\n \"date\",\n \"publisher\",\n \"uid\",\n \"net_revenue\",\n \"gross_revenue\"\n ],\n \"filters\": {\n \"account_name\": {\n \"matches\": [],\n \"type\": \"include\"\n },\n \"account_owner\": {\n \"matches\": [],\n \"type\": \"include\"\n },\n \"channel\": {\n \"matches\": [],\n \"type\": \"include\"\n },\n \"config_id\": {\n \"matches\": [],\n \"type\": \"include\"\n },\n \"creative_size\": {\n \"matches\": [],\n \"type\": \"include\"\n },\n \"device\": {\n \"matches\": [],\n \"type\": \"include\"\n },\n \"environment\": {\n \"matches\": [],\n \"type\": \"include\"\n },\n \"geo\": {\n \"matches\": [],\n \"type\": \"include\"\n },\n \"line_item\": {\n \"matches\": [],\n \"type\": \"include\"\n },\n \"oid\": {\n \"matches\": [],\n \"type\": \"include\"\n },\n \"partner\": {\n \"matches\": [],\n \"type\": \"include\"\n },\n \"platform\": {\n \"matches\": [],\n \"type\": \"include\"\n },\n \"region\": {\n \"matches\": [],\n \"type\": \"include\"\n },\n \"revenue_source\": {\n \"matches\": [],\n \"type\": \"include\"\n },\n \"uid\": {\n \"matches\": [],\n \"type\": \"include\"\n },\n \"unit\": {\n \"matches\": [],\n \"type\": \"include\"\n }\n },\n \"temporary\": true,\n \"custom_date\": null\n}"

response = http.request(request)
puts response.read_body
{
  "results": {
    "id": 19972,
    "title": null,
    "created_by": 564,
    "organisation_id": 3,
    "fields": [
      "date",
      "publisher",
      "uid",
      "net_revenue",
      "gross_revenue"
    ],
    "date_range": "seven_days",
    "custom_date": null,
    "filters": {
      "account_name": {
        "matches": [],
        "type": "include"
      },
      "account_owner": {
        "matches": [],
        "type": "include"
      },
      "channel": {
        "matches": [],
        "type": "include"
      },
      "config_id": {
        "matches": [],
        "type": "include"
      },
      "creative_size": {
        "matches": [],
        "type": "include"
      },
      "device": {
        "matches": [],
        "type": "include"
      },
      "environment": {
        "matches": [],
        "type": "include"
      },
      "geo": {
        "matches": [],
        "type": "include"
      },
      "line_item": {
        "matches": [],
        "type": "include"
      },
      "oid": {
        "matches": [],
        "type": "include"
      },
      "partner": {
        "matches": [],
        "type": "include"
      },
      "platform": {
        "matches": [],
        "type": "include"
      },
      "region": {
        "matches": [],
        "type": "include"
      },
      "revenue_source": {
        "matches": [],
        "type": "include"
      },
      "uid": {
        "matches": [],
        "type": "include"
      },
      "unit": {
        "matches": [],
        "type": "include"
      }
    },
    "order": null,
    "limit": null,
    "created_on": "2025-11-24 11:16:16",
    "table_state": null,
    "temporary": true
  },
  "success": true
}

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Body

application/json
date_range
enum<string>
required

Pick a dynamic or fixed date range. If custom then custom_date is also required.

Available options:
custom,
yesterday,
seven_days,
thirty_days,
three_months,
six_months,
last_week,
last_month,
last_quarter,
last_year,
week_to_date,
month_to_date,
quarter_to_date,
year_to_date,
all_time
fields
enum<string>[]
required

Pick two or more fields to build the report, note that some fields are incompatible with others.

Available options:
account_name,
account_owner,
ad_impressions,
ad_requests,
ad_responses,
ad_unit_loads,
campaign_advertiser,
campaign,
channel,
clicks,
config_id,
config_name,
cost,
creative_size,
ctr,
date,
device,
ecpm,
environment,
fill,
geo,
gross_revenue,
imp_fill,
line_item,
month,
net_revenue,
organisation,
partner,
platform,
publisher,
q1_impressions,
q1_percent,
q2_impressions,
q2_percent,
q3_impressions,
q3_percent,
q4_impressions,
q4_percent,
region,
revenue_source,
rpm,
uid,
unit_fill,
unit,
viewability,
viewable_impressions
temporary
boolean
required

If true, report wont show up in the list of reports in platform, if false, title is required

filters
object

Filter data on various fields

title
string

Required if temporary=false

custom_date
object | null

Used when date_range is set to custom to provide the start and end date

Response

201 - application/json
results
object
success
boolean