Adverty

Advertiser API Report

Overview

The Advertiser API returns your daily delivery (impressions and spend) for every campaign under your advertiser account. Results come back as a CSV file. Each call covers a date range of up to 31 days.

ItemValue
Base URLhttps://platform.adverty.com
EndpointGET /reports/general-advertiser/{apiToken}/by-range
Response formatCSV (text/csv; charset=UTF-8)
CurrencyUSD
TimezoneUTC. All dates and days are in UTC; this cannot be changed.
VersioningNone. The endpoint path is stable.

Authentication

You authenticate by putting your API token in the URL path. No headers, cookies or login are needed.

  • Your Adverty account manager issues the token. It is a UUID, for example 3f2a9c1e-5b7d-4e8a-9c21-7d4e5f6a8b90.
  • Each token has an expiry date. When it expires, requests return 401 Unauthorized; ask your account manager for a new token or an extension.
  • The token gives access to your advertiser’s reporting data. Treat it like a password and do not share it in public places.

Conventions

  • Dates: ISO format YYYY-MM-DD. Both from and to are included in the range.
  • Range limit: to can be no more than 31 days after from. To cover a longer period, make one call per month.
  • Days with no delivery: these days have no row in the CSV. They are not reported as zero.
  • Spend: USD, rounded to cents. The trailing zero can be dropped, so you may see 12.5 instead of 12.50.
  • Pagination: none. One call returns the whole range.
  • Rate limits: no fixed limit. Report data is daily, so one call per day per range is enough.
  • CORS: enabled, so you can call the endpoint from a browser.

Endpoint: advertiser report by date range

GET https://platform.adverty.com/reports/general-advertiser/{apiToken}/by-range

This endpoint returns one CSV row per day across all of your campaigns. If you request the integration_type column, you get one row per day per integration type instead.

Integration types

An integration type tells you which endpoint and ad format a campaign delivers through. Campaigns that Adverty serves directly have the type Direct. Your account manager can tell you which integration types your campaigns use.

  • One integration type: set integrationType to get a report for that endpoint and format only. Your account manager can give you one URL per integration type.
  • All integration types in one file: leave out integrationType and add column=integration_type. Each day is then split into one row per integration type.

Parameters

NameInRequiredDescription
apiTokenpathYesYour advertiser API token.
fromqueryYesFirst day of the range, YYYY-MM-DD.
toqueryYesLast day of the range, YYYY-MM-DD, up to 31 days after from.
columnqueryNoColumn to include. Repeat it for each column, e.g. column=date&column=spend. Defaults to date, impressions, spend.
integrationTypequeryNoSelects the report for one integration type (case-insensitive), e.g. Direct. Leave it out to get all integration types combined. See Integration types.

Columns

Columns always appear in the order below, whatever order you request them in. Unknown column names are ignored.

ColumnTypeDescription
datedateDay of delivery (UTC).
impressionsintegerPaid impressions delivered that day.
spenddecimal (USD)Media spend that day.
integration_typestringThe campaign’s integration type (endpoint and ad format), or Direct. Adding this column gives one row per day per integration type.

Response

200 OK with Content-Type: text/csv; charset=UTF-8. The file is named {from}-{to}.csv. The first line is the header and rows are sorted by date.

date,impressions,spend
2026-10-01,48210,385.68
2026-10-02,51377,411.02
2026-10-03,49902,399.2

With column=integration_type added. Direct rows are campaigns Adverty serves directly; other rows carry the endpoint name, shown here as ExampleEndpointName:

date,impressions,spend,integration_type
2026-10-01,30110,240.88,Direct
2026-10-01,18100,144.8,ExampleEndpointName
2026-10-02,31544,252.35,Direct
2026-10-02,19833,158.66,ExampleEndpointName

Errors

Always check the HTTP status before you parse the body as CSV.

StatusCauseBody
400 Bad RequestA date is not valid, the range is longer than 31 days, or integrationType matches none of your campaigns.JSON (below)
401 UnauthorizedThe token is wrong or has expired.HTML page, not JSON
404 Not Foundfrom or to is missing.Plain text

A 400 body looks like this:

{
  "msg": "The query parameter 'to' was malformed: from and to can be at most 31 days apart",
  "errors": []
}

If integrationType is not valid, msg lists the values you can use, for example unknown integrationType 'X', expected one of: ExampleEndpointName, Direct.

Quick start

Replace YOUR_TOKEN with the token from your account manager.

October to date, default columns:

curl -o report.csv \
  "https://platform.adverty.com/reports/general-advertiser/YOUR_TOKEN/by-range?from=2026-10-01&to=2026-10-14"

The same period, split by integration type:

curl -o report.csv \
  "https://platform.adverty.com/reports/general-advertiser/YOUR_TOKEN/by-range?from=2026-10-01&to=2026-10-14&column=date&column=impressions&column=spend&column=integration_type"

Direct campaigns only:

curl -o report.csv \
  "https://platform.adverty.com/reports/general-advertiser/YOUR_TOKEN/by-range?from=2026-10-01&to=2026-10-14&integrationType=Direct"

Python, loading the data into a table:

import io, pandas as pd, requests

url = "https://platform.adverty.com/reports/general-advertiser/YOUR_TOKEN/by-range"
r = requests.get(url, params={"from": "2026-10-01", "to": "2026-10-14"})
r.raise_for_status()
df = pd.read_csv(io.StringIO(r.text))
  • iab
  • iab
  • Tag
  • IAB Europe