Skip to main content
GET /api/v2/buyer/reporting/metrics Returns delivery metrics rolled up across the advertiser → campaign → media buy → package tree. Choose a hierarchical summary or flat timeseries view, scope with advertiserId and campaignId, and set the window with days or an explicit startDate/endDate. This endpoint is day-grain only — for hourly counts use Get event summary.

Request

curl "https://api.interchange.io/api/v2/buyer/reporting/metrics?days=14&advertiserId=42&demo=false" \
  -H "Authorization: Bearer $SCOPE3_API_KEY"

Parameters

ParamTypeRequiredNotes
advertiserIdstringNoFilter to one advertiser (seat ID)
campaignIdstringNoFilter to one campaign. Must belong to advertiserId if both are passed
startDatestringNoYYYY-MM-DD. Overrides the days window when set
endDatestringNoYYYY-MM-DD. Defaults to today
daysintegerNo090, default 7. Use 0 for the full campaign timeframe
viewenumNosummary (default) or timeseries
downloadbooleanNoDefault false. When true, returns a signed CSV URL instead of JSON
demobooleanNoDefault false. When true, returns auto-generated demo data instead of real data

Response

{
  "advertisers": [
    {
      "advertiserId": "42",
      "advertiserName": "Northwind Outdoors",
      "metrics": { "impressions": 12345, "spend": 678.9, "clicks": 210, "views": 9800, "completedViews": 4200, "conversions": 18, "leads": 3, "videoCompletions": 4200, "ecpm": 55.0, "cpc": 3.23, "ctr": 0.017, "completionRate": 0.43 },
      "campaigns": [
        {
          "campaignId": "cmp_001",
          "campaignName": "Spring Trail Series",
          "metrics": { "impressions": 12345, "spend": 678.9, "clicks": 210, "views": 9800, "completedViews": 4200, "conversions": 18, "leads": 3, "videoCompletions": 4200, "ecpm": 55.0, "cpc": 3.23, "ctr": 0.017, "completionRate": 0.43 },
          "mediaBuys": []
        }
      ]
    }
  ],
  "totals": { "impressions": 12345, "spend": 678.9, "clicks": 210, "views": 9800, "completedViews": 4200, "conversions": 18, "leads": 3, "videoCompletions": 4200, "ecpm": 55.0, "cpc": 3.23, "ctr": 0.017, "completionRate": 0.43 },
  "periodStart": "2026-05-24",
  "periodEnd": "2026-06-06"
}
When download=true, the response is instead { downloadUrl, expiresAt, fileName, rowCount } with a signed URL that expires in 7 days. Treat that URL as a bearer credential.

Errors

  • 400 VALIDATION_ERROR — malformed startDate/endDate, days outside 090, or a campaignId that does not belong to the given advertiserId.
See Errors for the full error contract.

Reporting tasks

All reporting operations

Reporting overview guide

Hierarchy, metrics, CSV export, delivery flow

Get event summary

Hourly event counts by type