Skip to main content

Overview

The Product Reporting API provides product performance data for Marketplace Performance Outcomes (MPO). Use it to analyze individual products across sellers and ad sets, or export product data for business intelligence and data warehouse workflows. The API reports impressions, clicks, and cost. It does not provide conversion metrics or time-based breakdowns, and reports do not include the current day. For seller-level or campaign-level aggregated reporting, use the MPO Standard Reporting API v2. For lower-latency product monitoring, use the MPO Real-Time Asynchronous API.

Comparing product and standard reporting

Product reports include impressions, clicks, and cost. Expect this difference when comparing product-level and standard reports.

Before you start

  • Availability: This API is currently in the experimental release.
  • Supported campaigns: The API supports Multi-Seller and Single-Seller campaigns.
  • Workflow: The API uses an asynchronous export workflow. You create a report job, check its status, and download the report when it is ready.
  • Report scope: Reports include impressions, clicks, and cost. Conversion metrics and time-based breakdowns are not supported. The current day is not included.
  • Required scope: MarketingSolutions_Analytics_Read
  • Data availability: The API supports data from August 28, 2026. Requests with a startDate before August 28, 2026 are rejected with invalid-query.

Response identifier

In the experimental release, the response returns the report identifier as exportId. Use that value as the reportId path parameter in the status and download URLs. At release candidate and in subsequent stable releases, the response field will change to reportId. This is a breaking change.

When to use this API

Use the Product Reporting API to:
  • Analyze performance for individual products across sellers and ad sets.
  • Export product data for downstream reporting and analytics.
  • Review product impressions, clicks, and cost.
  • Filter performance by advertiser or ad set. You can also filter by marketing campaign; this filter is primarily useful for MPO Pro.
For seller-level or campaign-level aggregated reporting, use the MPO Standard Reporting API v2. For lower-latency product monitoring, use the MPO Real-Time Asynchronous API.

How it works

  1. Create a report job with POST /product-reports/export.
  2. Check the job status with GET /report-jobs/{reportId}.
  3. Download the report with GET /product-reports/{reportId} when the status is Done.
Report jobs may be reused when an identical request was recently processed. In that case, the initial response may already have a Done status.

Endpoint reference

1. Create a report job

Creates an asynchronous product-level report job.

Request body

Request parameters

2. Get report status

Returns the current status of a report job. In the experimental release, use the value returned in the response’s exportId field as the reportId path value.

Response

Status values

Completed response

3. Download the report

Downloads the completed report file. The report is available only when the job status is Done. In the experimental release, use the value returned in the response’s exportId field as the reportId path value.

CSV response

productId values are returned as strings.

JSON response

Dimensions

Duplicate dimension values are not allowed. Time dimensions are not supported. Reports contain totals for the requested interval, with one row for each combination of the requested dimensions.

Metrics

Errors and HTTP status codes

Domain errors

Integration pattern

  1. Call POST /product-reports/export with the required dimensions, metrics, and date range.
  2. Store the identifier returned in the response’s exportId field.
  3. Use that value as the reportId path parameter when polling GET /report-jobs/{reportId}.
  4. When the status is Done, call GET /product-reports/{reportId} to download the report.
  5. If the status is Failure, check the request parameters and retry.
  6. If the status is Expired, submit a new report job.

Data availability and limitations

  • The current day is not included in the report.
  • Reports contain impressions, clicks, and cost. Conversion metrics are not supported.
  • Time-based breakdowns are not supported. Reports contain totals for the requested date range.
  • Data is available from August 28, 2026 for this release.
  • Requests with a startDate before August 28, 2026 are rejected with invalid-query.
  • Product IDs come from the catalog feed.