Skip to main content
Thrad reports what it served for you and what you spent through one read-only endpoint, GET /v1/dsp/report. It works the same way whether you bid over the AI-native protocol or OpenRTB. Use it to check your numbers against ours, or to load daily delivery into your own dashboards.

Get your reporting key

Thrad issues the key. Ask your Thrad contact, or email contact@thrad.ai, and we will send you a key that starts with dk_. Send it on every request:
This is not the bearer token you gave Thrad during onboarding. That token goes the other way: Thrad sends it to you on bid requests. The dk_ key is yours to send to Thrad, and it only reads reports.
We store a fingerprint of the key, not the key itself, so we cannot look it up or send it again. Keep it somewhere safe on your servers. If you lose it, or think someone else has it, ask us for a new one. The old key stops working the moment we issue the new one, so swap it in as soon as you receive it.

Get yesterday’s numbers

Ask for a time window. start and end are UTC timestamps on the hour, and end is exclusive:
You get one row per UTC day, plus a total:
A window can cover up to 366 days, as long as it starts within the last 365. Days with no impressions are left out of data. The report always covers your own DSP: the key decides whose numbers you get.

What the numbers mean

sent_impressions counts every one of your ads that Thrad served to a publisher, whether or not anyone saw it. billable_impressions counts the ones that became viewable: at least 50% of the ad on screen for at least one continuous second. That is the moment Thrad counts an impression as billable. On OpenRTB it is also the moment we fire your burl, so this number should match the burl notifications you received. See IVT & Verification for how viewability is measured. spend is the total of your winning bids on billable impressions, in US dollars. Bids are CPM prices, so each impression adds its bid divided by 1,000. A $2.43 CPM bid on one billable impression adds 0.00243. Spend is a string so that no digits are lost to floating-point rounding. Parse it as a decimal, not a float. The gap between sent and billable is normal. It is mostly ads that rendered but were never in view long enough to count.

When the numbers settle

Today’s row keeps growing. An impression shows up as billable when its view is confirmed. One that is never viewed is counted in sent_impressions about 30 to 60 minutes after it was served, on the day it was served. So a day’s numbers are final about an hour after that day ends in UTC. Reconcile on complete days.

Rate limit

You can make one request per second. A faster request gets 429 rate_limit_exceeded with a Retry-After header. A single request can already return up to a year of daily rows, so there is rarely a reason to call more often.

Next steps

Report API Reference

Every parameter, field, and error.

Talk to us

Need a key, or a number doesn’t match yours? Email us.