---
title: "Get product's performance with flexible date filtering"
method: GET
path: "/v1/spa-reporting/product-performance"
tags: ["SponsoredProductAdsReporting V1"]
---

# Get product's performance with flexible date filtering

`GET /v1/spa-reporting/product-performance`

## Request

- Base URL: `https://api.otto.market`
- URL: `https://api.otto.market/v1/spa-reporting/product-performance`
- Auth: HTTP bearer

Retrieve performance metrics for the specified campaign and SKU. Defaults to last 7 days if no date range is provided. Both fromDate and toDate must be provided together, or neither.

## Query parameters

- `campaignId` string, required: The unique identifier of the campaign
- `sku` string, required: The SKU
- `fromDate` string, date, nullable: Start date of the range (format YYYY-MM-DD). Must be provided with toDate, or omit both for 7-day default.
- `toDate` string, date, nullable: End date of the range (format YYYY-MM-DD). Must be provided with fromDate, or omit both for 7-day default.

## Response `200`

Successful Response

- SponsoredProductAdsProductPerformanceSponsoredProductAdsReportingV1
  - `campaignId` string, required
  - `sku` string, required
  - `dateRange` DateRangeSponsoredProductAdsReportingV1, required
    - `fromDate` string, date, nullable
    - `toDate` string, date, nullable
  - `metrics` ProductMetricsSponsoredProductAdsReportingV1, required: Aggregated product KPIs. All monetary values are expressed in euro cents (EUR cents).
    - `clickThroughRate` number, required: Clicks divided by views. Ratio, not a monetary value.
    - `costPerClick` number, required: Total costs divided by total clicks. Monetary value in euro cents (EUR cents).
    - `returnOnAdSpend` number, required: Total sales divided by total costs. Ratio, not a monetary value.
    - `totalViews` integer, required: Number of ad views.
    - `totalClicks` integer, required: Number of ad clicks.
    - `totalCosts` number, required: Total advertising costs. Monetary value in euro cents (EUR cents).
    - `totalOrderedSkus` integer, required: Number of ordered SKUs attributed to the product.
    - `totalSales` number, required: Total attributed sales. Monetary value in euro cents (EUR cents).
    - `totalSalesSeller` number, required: Total attributed sales of articles with same brand for the seller. Monetary value in euro cents (EUR cents).
  - `lastCalculatedAt` string, date-time, required

## Other responses

- `400`: Validation error
- `404`: No data found for the given campaignId and SKU.
- `500`: Internal server error
- `503`: Service unavailable

## Changes

- **2026-09-01** `b1bc133112bd`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/otto/apis/otto-market-api/changes/v1/spa-reporting/product-performance/get.md)

---

[API](https://skmtc.dev/otto/apis/otto-market-api.md) - [All operations](https://skmtc.dev/otto/apis/otto-market-api/llms.txt) - [OpenAPI document](https://skmtc.dev/otto/apis/otto-market-api/revisions/cc8a74b62e87?raw)
