> ## Documentation Index
> Fetch the complete documentation index at: https://docs.thrad.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Delivery & Spend

> Pull your daily impressions and spend from Thrad to reconcile with your own numbers.

Thrad reports what it served for you and what you spent through one read-only endpoint, [`GET /v1/dsp/report`](https://docs.thrad.ai/dsp/api-reference/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](mailto:contact@thrad.ai)**, and we will send you a key that starts with `dk_`. Send it on every request:

```
Authorization: Bearer dk_...
```

> [!WARNING]
>
> 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:

```bash theme={null}
curl -G https://api.thrad.ai/v1/dsp/report \
  -H "Authorization: Bearer $THRAD_DSP_KEY" \
  --data-urlencode 'start=2026-09-01T00:00:00Z' \
  --data-urlencode 'end=2026-09-02T00:00:00Z'
```

You get one row per UTC day, plus a total:

```json theme={null}
{
  "dsp": "medianet",
  "start": "2026-09-01T00:00:00+00:00",
  "end": "2026-09-02T00:00:00+00:00",
  "currency": "USD",
  "data": [
    {
      "date": "2026-09-01",
      "sent_impressions": 103508,
      "billable_impressions": 66427,
      "spend": "161.46358"
    }
  ],
  "total": {
    "sent_impressions": 103508,
    "billable_impressions": 66427,
    "spend": "161.46358"
  }
}
```

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](https://docs.thrad.ai/dsp/guides/ivt.md) 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

> [card] [Report API Reference](https://docs.thrad.ai/dsp/api-reference/report.md)
>
> Every parameter, field, and error.

> [card] [Talk to us](mailto:contact@thrad.ai)
>
> Need a key, or a number doesn't match yours? Email us.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.