Three lines

Uber

Developers

Get Started with Sync Reporting

The Sync Reporting API provides real-time access to advertising performance data. Unlike asynchronous reporting, sync reporting returns results immediately in the API response, making it ideal for interactive dashboards, real-time analytics, and on-demand reporting needs.

Required scope

Sync reporting requires its own OAuth scope, ads.sync.reporting. The ads.reporting scope grants access to the asynchronous reporting endpoints only, so a token issued without ads.sync.reporting cannot call the sync endpoint. Request both scopes if your integration uses both reporting modes.

Because adding a scope requires users to reauthorize your application, include ads.sync.reporting in your access request up front if you expect to use sync reporting. See Authentication for the full scope list and authorization flow.

Submit Report Request

Endpoint: POST /v1/ads/{account_id}/reporting/sync

curl -X POST "https://api.uber.com/v1/ads/{account_id}/reporting/sync" \
  -H "Authorization: Bearer {ACCESS_TOKEN}" \
  -H "Content-Type: application/json" \
  -d '{
    "report_type": "AD_PERFORMANCE",
    "time_range": {
      "start_time": "2025-09-24T00:00:00Z",
      "end_time": "2025-09-24T23:59:59Z"
    },
    "columns": ["campaign_id", "impressions", "clicks", "ad_spend"],
    "time_unit": "DAILY"
  }'

Response:

{
  "schema": {
    "columns": [
      { "name": "day_of", "type": "COLUMN_TYPE_TIMESTAMP" },
      { "name": "campaign_id", "type": "COLUMN_TYPE_STRING" },
      { "name": "impressions", "type": "COLUMN_TYPE_INT64" },
      { "name": "clicks", "type": "COLUMN_TYPE_INT64" },
      { "name": "ad_spend", "type": "COLUMN_TYPE_DOUBLE" }
    ]
  },
  "data": {
    "rows": [
      { "values": ["2025-11-04T00:00:00Z", "{campaign_uuid}", "8428", "506", "159.35"] },
      { "values": ["2025-11-03T00:00:00Z", "{campaign_uuid}", "6677", "457", "111.92"] }
    ]
  }
}

Cardinality Limits

The API enforces a maximum number of rows that can be returned in a single request to ensure performance and stability.

  • If limit exceeded: Request is rejected with an error

To work within cardinality limits:

  • Use filters to narrow down results
  • Request shorter time ranges
  • Query data in smaller batches

Uber

Developers
© 2026 Uber Technologies Inc.