Who should read this
Your integration callsPOST /reports/campaigns, POST /reports/line-items, or POST /reports/accounts — with or without a reportType — on a pre-2026.07 version of the Retail Media API. This guide maps every legacy call to its 2026.07 equivalent, with before/after request examples.
If you’re integrating against DSP Analytics for the first time, skip this page and start with the Overview.
Is this urgent?
Legacy endpoints keep working unchanged on v2026.01 and earlier. Per the versioning policy, each stable version is supported for 12 months after release, after which it’s deprecated and later sunset (the API signals this withDeprecation and Sunset response headers before the endpoint starts returning 410 Gone). You don’t need to migrate the moment you read this — but any new build, or any plan to move onto 2026.07, should target the endpoints below.
Endpoint mapping
Three separate endpoints, each with its own field quirks and a
reportType enum, become three purpose-built endpoints with one consistent request shape.
What’s different in every request
Regardless of which legacy endpoint orreportType you’re moving from, the same four changes apply:
- Scope moves into a
filtersobject. The legacy endpoints took a top-levelid/ids(oraccountIdson the accounts endpoint). The new endpoints take exactly one offilters.accountIds[],filters.campaignIds[], orfilters.lineItemIds[]— never a bare top-level ID field, and never more than one array. reportTypeis gone. There’s no preset-shape enum anymore. You always specifymetrics[]anddimensions[]explicitly — including for what used to be thesummary/ default shape.startDate,endDate,filters,metrics, anddimensionsare all required. The legacy endpoints allowed some of these to be inferred fromreportType; the new endpoints don’t infer anything.timezoneis lowercase. The legacy campaign and line-item endpoints usedtimeZone(capital Z); the account endpoint already used lowercasetimezone. All 2026.07 endpoints use lowercasetimezoneconsistently — if you’re coming from/reports/campaignsor/reports/line-items, this field name changes even though the value format doesn’t.
startDate and endDate, whether you scope by account, campaign, or line item. (The legacy /reports/accounts endpoint capped account-level requests at 31 days — that cap doesn’t carry over.)
Before / after
Campaign or line-item flexible report
filters.lineItemIds[] for filters.campaignIds[] if you were calling /reports/line-items.
Account-level report
reportType: capout
reportType: capout for the full capoutMissed* → missed* rename table.
reportType: attributedTransactions
reportType: attributedTransactions for the full adv* → advertised* rename table.