SSP Supply reporting
For supply partners connected to the DigiBid ADX. Returns impressions and publisher spend for the authenticated publisher account.
REST API · Version 1.0
Retrieve daily impression and spend data for reconciliation. One endpoint supports both SSP supply partners and DSP demand partners, with every response automatically scoped and reconciliation-adjusted by the identity associated with the API key.
The DigiBid Partner Reporting API provides daily delivery totals for customers integrating with DigiBid as an SSP or DSP. The authenticated credential determines the partner type and customer account; callers cannot query another customer's data by supplying an ID.
For supply partners connected to the DigiBid ADX. Returns impressions and publisher spend for the authenticated publisher account.
For demand partners buying traffic through DigiBid. Returns campaign impressions and demand spend for the authenticated DSP account.
from and to are inclusive. The maximum date range is 31 days.data[].spend changes from a quoted decimal string to a JSON number on the existing endpoint. Update typed decoders before this release is deployed. No dual-format response is provided.Requires an X-API-Key header.
No authentication. Returns 200 OK with an empty body and confirms only that the API process is reachable.
Load the credential supplied by DigiBid into DIGIBID_API_KEY using your environment's secret-safe mechanism. The same request format is used for SSP and DSP credentials.
curlprintf 'header = "X-API-Key: %s"\n' "$DIGIBID_API_KEY" | \
curl --config - --fail-with-body \
--request GET \
--header 'Accept: application/json' \
'https://api.digibid.com/partner/v1/report?from=2026-08-01&to=2026-08-04'
The API key is supplied to curl through standard input instead of being expanded into the process argument list.
200 OK. When no matching data exists, the request is still successful and data is an empty array.Pass the API key in the X-API-Key HTTP request header. DigiBid validates the key, checks that it is active and unexpired, and resolves it to one customer identity. A server-managed reconcile_ratio may also be attached to the token; clients cannot set or override it.
| Header | Status | Description |
|---|---|---|
X-API-Key | Required | Partner credential issued by DigiBid. It determines the account and whether the response uses SSP or DSP reporting semantics. |
Accept | Recommended | Use application/json. |
Do not send customer_id, publisher_id, dsp_id, or partner_type. These values are derived from the credential and cannot be overridden by request parameters.
| Parameter | Type | Status | Description |
|---|---|---|---|
from | date | Required | Inclusive start date in YYYY-MM-DD format, interpreted in UTC. |
to | date | Required | Inclusive end date in YYYY-MM-DD format, interpreted in UTC. Must not precede from. |
The response schema is identical for both partner types. The credential changes the account scope and business meaning of the metrics.
| Partner type | Account scope | Impressions | Spend |
|---|---|---|---|
| SSP | Authenticated publisher account | Reconciliation-adjusted SSP ad impressions | Reconciliation-adjusted publisher spend |
| DSP | Authenticated DSP account | Reconciliation-adjusted DSP campaign impressions | Reconciliation-adjusted campaign spend |
1 + reconcile_ratio from the API token. For example, -0.05 returns 95% of raw impressions and spend. When a non-zero ratio is applied, impressions are rounded to the nearest integer (half away from zero); spend is rounded to six decimal places and returned as a JSON number. A missing ratio is treated as zero. Ratio changes take effect immediately and apply to historical dates queried afterward. For deterministic reconciliation, round both sides to six decimal places before comparing spend.200 OK · SSP example{
"data": [
{
"date": "2026-08-01",
"currency": "USD",
"impressions": 54504,
"spend": 114.992499
}
],
"meta": {
"from": "2026-08-01",
"to": "2026-08-04",
"timezone": "UTC",
"partner_type": "ssp"
}
}
| Field | Type | Description |
|---|---|---|
data | array | Daily reporting rows. Empty when no matching data exists. |
data[].date | string | UTC reporting date in YYYY-MM-DD format. |
data[].currency | string | ISO 4217 currency code, such as USD. |
data[].impressions | integer | Reconciliation-adjusted impression count for the authenticated account, rounded to the nearest integer. |
data[].spend | number | Reconciliation-adjusted spend in major currency units, rounded to six decimals and encoded as a JSON number. |
meta.from | string | Requested inclusive start date. |
meta.to | string | Requested inclusive end date. |
meta.timezone | string | Always UTC. |
meta.partner_type | string | ssp or dsp, as resolved from the API key. |
If one date contains multiple currencies, the API returns one row per currency and never combines different currencies into one total.
curlprintf 'header = "X-API-Key: %s"\n' "$DIGIBID_API_KEY" | \
curl --config - --fail-with-body --get \
'https://api.digibid.com/partner/v1/report' \
--header 'Accept: application/json' \
--data-urlencode 'from=2026-08-01' \
--data-urlencode 'to=2026-08-04'
200 OK{
"data": [],
"meta": {
"from": "2026-07-01",
"to": "2026-07-01",
"timezone": "UTC",
"partner_type": "dsp"
}
}
Error responses use a consistent JSON envelope:
Error response{
"error": {
"code": "invalid_date_range",
"message": "..."
}
}
| HTTP status | Error code | Meaning | Recommended action |
|---|---|---|---|
200 | — | Successful request; data may be empty | Process the response normally. |
400 | invalid_date_rangedate_range_too_large | Missing, malformed, reversed, or oversized date range | Correct the request before retrying. |
401 | unauthorized | Missing, invalid, inactive, or expired API key | Check the credential. Do not retry indefinitely. |
429 | rate_limited | Rate or concurrency limit exceeded | Wait for Retry-After, then retry with exponential backoff and jitter. |
503 | backend_unavailable | Authentication or reporting data is temporarily unavailable | Retry with exponential backoff. Contact DigiBid if the failure persists. |
Clients should primarily branch on the HTTP status. Additional machine-readable error codes may be introduced while preserving the response envelope.
X-Request-Id. For support, provide this ID, the UTC request time, and the requested date range—but never the API key.The service applies request-rate and concurrency controls to protect reporting availability. Limits are associated with the authenticated partner credential; contact your DigiBid account manager for the limits assigned to your integration.
429 Too Many Requests as a transient response.Retry-After response header before sending another request.spend as a double/float64, reconcile each currency independently, and round both values to six decimal places before comparing them.X-Request-Id with job metadata for troubleshooting.No. Customer scope and partner type are derived exclusively from the API key.
No matching finalized events were found for the credential and date range. This is represented by 200 OK with an empty data array.
spend is a JSON number. Decode it as a double or Go float64; trailing zeros are not part of the API contract. Round both sides to six decimal places for reconciliation.
Yes. Delayed events can update recent UTC dates. Refresh at least the current and previous day.
Send the X-Request-Id, UTC request time, requested date range, HTTP status, and error code. Never send your API key.