Three lines

Uber

Developers

Get Started with Reporting

The Uber Ads API uses an asynchronous reporting system. Report generation is a two-step process: submit a request to receive a report_id, then poll the status endpoint until the report is ready for download.

Step 1: Submit Report Request

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

curl -X POST "https://api.uber.com/v1/ads/{account_id}/reporting/report" \
  -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",
    "file_format": "CSV"
  }'

Response:

{
  "report_id": "8a2e38b2-59fb-5242-a0ec-e913a42150b5"
}

Time Range Configuration

When configuring time ranges, follow these guidelines for proper aggregation:

Weekly Reports

  • Start Date: Must be a Monday
  • End Date: Must be the next Monday
  • Example: "start_time": "2025-07-21T00:00:00Z", "end_time": "2025-07-28T00:00:00Z"

Monthly Reports

  • Start Date: Must be the first day of a month
  • End Date: Must be the first day of the next month
  • Example: "start_time": "2025-07-01T00:00:00Z", "end_time": "2025-08-01T00:00:00Z"

Daily and Summary Reports

  • Start Date: Any valid date
  • End Date: Any valid date after start date
  • Example: "start_time": "2025-07-15T00:00:00Z", "end_time": "2025-07-20T00:00:00Z"

Filter Operators

Supported operators: EQUAL, NOT_EQUAL, IN

Step 2: Poll Report Status

Once you have submitted a report request, generation typically takes a few minutes but can vary based on report complexity and data volume. Use the report_id returned from your initial request to check the generation status by calling the GET report endpoint. The download URL expires 5 minutes after the report status becomes COMPLETED.

Endpoint: GET /v1/ads/{account_id}/reporting/{report_id}

curl -X GET "https://api.uber.com/v1/ads/{account_id}/reporting/8a2e38b2-59fb-5242-a0ec-e913a42150b5" \
  -H "Authorization: Bearer {ACCESS_TOKEN}"

Possible status values: COMPLETED, FAILED, PROCESSING

Response when completed:

{
  "status": "COMPLETED",
  "result": {
    "success_result": {
      "report_url": "https://example.com/report.csv",
      "file_size": "526",
      "url_expires_at": "2025-09-30T08:44:36Z",
      "report_schema": ["campaign_id", "impressions", "clicks", "ad_spend"]
    }
  },
  "started_at": "2025-09-24T17:53:11Z",
  "finished_at": "2025-09-24T17:53:12Z"
}

Uber

Developers
© 2025 Uber Technologies Inc.