> ## Documentation Index
> Fetch the complete documentation index at: https://developers.criteo.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Offsite Report

## Introduction

Four separated endpoints support requests to create campaign and line item reports and retrieve the report data and status. You can find those endpoints in our stable version [Demand Side Analytics](/retail-media/v2025.07/docs/demand-side-analytics-get-started).

<Info>
  The endpoints and functionalities covered in this **page refers to features available exclusively in Preview** for now, which doesn't mean that they are the only ones available for this domain/scope.

  For more complete information about our API capabilities, check the Stable version in [Welcome to Criteo Retail Media API](/retail-media/docs/welcome-to-criteo)
</Info>

We added a "create an offsite report request", in the preview version that is described below.

***

## Endpoints

<table>
  <thead>
    <tr>
      <th>
        <p>
          Verb
        </p>
      </th>

      <th>
        <p>
          Endpoint
        </p>
      </th>

      <th>
        <p>
          Description
        </p>
      </th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>
        <p>
          <b>
            POST
          </b>
        </p>
      </td>

      <td>
        <p>
          <code>
            /reports/offsite
          </code>
        </p>
      </td>

      <td>
        <p>
          Create an offsite report request
        </p>
      </td>
    </tr>
  </tbody>
</table>

<Info>
  **Reporting Asynchronous Workflow**

  * First, create a request for the campaign or line item report with the desired attributes,
  * This generates a `reportId` representing the report.
  * Next, use the `reportId` to poll the **report status endpoint** until one is successfully computed (available in stable - see above)
  * Finally, download the report using the **report output endpoint** (available in stable - see above)
  * Report outputs are cached for at least 1 hour before expiration. Exact expiration is indicated by the `expiresAt` field in the /status response.
</Info>

***

## Report Request Attributes

<table>
  <thead>
    <tr>
      <th>
        <p>
          Attribute
        </p>
      </th>

      <th>
        <p>
          Data Type
        </p>
      </th>

      <th>
        <p>
          Description
        </p>
      </th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>
        <p>
          <code>
            id
          </code>

          /

          <code>
            ids
          </code>

          <span>\*</span>
        </p>
      </td>

      <td>
        <p>
          string /
        </p>

        <p>
          list\\
        </p>
      </td>

      <td>
        <p>
          Campaign or Line Item ID(s) of the desired report
        </p>

        <p>
          Examples:
        </p>

        <p>
          <code>
            id: "12345"
          </code>
        </p>

        <p>
          <code>
            ids: \["12345", "67890"]
          </code>
        </p>

        <p>
          Accepted values: single or list of string/int64 (max 50 ids per call)
        </p>

        <p>
          Writeable? N / Nullable? N
        </p>
      </td>
    </tr>

    <tr>
      <td>
        <p>
          <code>
            reportType
          </code>
        </p>
      </td>

      <td>
        <p>
          enum
        </p>
      </td>

      <td>
        <p>
          Report types are pre-packaged reports that allow the specification of the report breakdown. See

          <a href="/retail-media/v2026-preview/docs/report-types">
            Report Types
          </a>

          for more details about each of them.
        </p>

        <ul>
          <li>
            *Note*\*: when

            <code>
              metrics
            </code>

            and

            <code>
              dimensions
            </code>

            are used, the

            <code>
              reportType
            </code>

            is ignored.
          </li>
        </ul>

        <p>
          Accepted values: refer to

          <a href="/retail-media/v2026-preview/docs/report-types">
            Report Types
          </a>

          page for a complete list of available values
        </p>

        <p>
          Writeable? N / Nullable? N
        </p>
      </td>
    </tr>

    <tr>
      <td>
        <p>
          <code>
            dimensions
          </code>
        </p>
      </td>

      <td>
        <p>
          list\\
        </p>
      </td>

      <td>
        <p>
          Dimension attributes desired for metrics breakdown for the custom report of the campaign(s) / line item(s).
        </p>

        <ul>
          <li>
            *Note*\*:
          </li>

          <li>
            when

            <code>
              metrics
            </code>

            and

            <code>
              dimensions
            </code>

            are used, the

            <code>
              reportType
            </code>

            is automatically ignored
          </li>
        </ul>

        <p>
          Accepted values: refer to

          <a href="/retail-media/v2025.07/docs/metrics-and-dimensions">
            Metrics and Dimensions
          </a>

          page for a complete list of available values
        </p>

        <p>
          Writeable? N / Nullable? N
        </p>
      </td>
    </tr>

    <tr>
      <td>
        <p>
          <code>
            metrics
          </code>
        </p>
      </td>

      <td>
        <p>
          list\\
        </p>
      </td>

      <td>
        <p>
          Quantitative metrics desired in the custom report of the campaign(s) / line item(s).
        </p>

        <ul>
          <li>
            *Note*\*:
          </li>

          <li>
            when

            <code>
              metrics
            </code>

            and

            <code>
              dimensions
            </code>

            are used, the

            <code>
              reportType
            </code>

            is automatically ignored
          </li>

          <li>
            when including

            <code>
              winRate
            </code>

            metric, it is required to either define

            <code>
              campaignType
            </code>

            as

            <code>
              sponsoredProducts
            </code>

            or include

            <code>
              campaignTypeName
            </code>

            in the list of dimensions
          </li>
        </ul>

        <p>
          Accepted values: refer to

          <a href="/retail-media/v2025.07/docs/metrics-and-dimensions">
            Metrics and Dimensions
          </a>

          page for a complete list of available values
        </p>

        <p>
          Writeable? N / Nullable? N
        </p>
      </td>
    </tr>

    <tr>
      <td>
        <p>
          <code>
            startDate
          </code>

          <span>\*</span>
        </p>
      </td>

      <td>
        <p>
          date
        </p>
      </td>

      <td>
        <p>
          Start date to report (inclusive)
        </p>

        <p>
          Accepted values:

          <code>
            YYYY-MM-DD
          </code>
        </p>

        <p>
          Writeable? N / Nullable? N
        </p>
      </td>
    </tr>

    <tr>
      <td>
        <p>
          <code>
            endDate
          </code>

          <span>\*</span>
        </p>
      </td>

      <td>
        <p>
          date
        </p>
      </td>

      <td>
        <p>
          End date to report (inclusive)
        </p>

        <p>
          Accepted values:

          <code>
            YYYY-MM-DD
          </code>
        </p>

        <p>
          Writeable? N / Nullable? N
        </p>
      </td>
    </tr>

    <tr>
      <td>
        <p>
          <code>
            campaignType
          </code>
        </p>
      </td>

      <td>
        <p>
          enum
        </p>
      </td>

      <td>
        <p>
          <a href="/retail-media/v2025.07/docs/campaign">
            Campaign
          </a>

          type
        </p>

        <p>
          Accepted values:

          <code>
            sponsoredProducts
          </code>

          ,

          <code>
            onSiteDisplays
          </code>
        </p>

        <p>
          Writeable? N / Nullable? N
        </p>
      </td>
    </tr>

    <tr>
      <td>
        <p>
          <code>
            timeZone
          </code>
        </p>
      </td>

      <td>
        <p>
          string
        </p>
      </td>

      <td>
        <p>
          Time zone to consider in the report
        </p>

        <p>
          Accepted values:

          <a href="https://www.iana.org/time-zones">
            IANA (TZ database)
          </a>

          time zones (example:

          <code>
            America/New\_York
          </code>

          ,

          <code>
            Europe/Paris
          </code>

          ,

          <code>
            Asia/Tokyo
          </code>

          ,

          <code>
            UTC
          </code>

          )
        </p>

        <p>
          Writeable? N / Nullable? Y
        </p>
      </td>
    </tr>

    <tr>
      <td>
        <p>
          <code>
            clickAttributionWindow
          </code>
        </p>
      </td>

      <td>
        <p>
          enum
        </p>
      </td>

      <td>
        <p>
          The post-click attribution window, defined as the maximum number of days considered between a click and a conversion for attribution; conversions are attributed to the date of conversion, not the date of click; defaults to campaign settings if omitted; must be specified if

          <code>
            viewAttributionWindow
          </code>

          is one of the accepted values.
        </p>

        <p>
          The post-click attribution window, defined as the maximum number of days considered between a click and a conversion for attribution; conversions are attributed to the date of conversion, not the date of click.
        </p>

        <p>
          Defaults to campaign settings if omitted; must be specified if

          <code>
            viewAttributionWindow
          </code>

          is one of the accepted values.
        </p>

        <p>
          Accepted values:

          <code>
            none
          </code>

          ,

          <code>
            7D
          </code>

          ,

          <code>
            14D
          </code>

          ,

          <code>
            30D
          </code>
        </p>

        <p>
          Writeable? N / Nullable? Y
        </p>
      </td>
    </tr>

    <tr>
      <td>
        <p>
          <code>
            viewAttributionWindow
          </code>
        </p>
      </td>

      <td>
        <p>
          enum
        </p>
      </td>

      <td>
        <p>
          The post-view attribution window, defined as the maximum number of days considered between an impression and a conversion for attribution; conversions are attributed to the date of conversion, not the date of impression; defaults to campaign settings if omitted; must be less than or equal to

          <code>
            clickAttributionWindow
          </code>

          ; must be specified if

          <code>
            clickAttributionWindow
          </code>

          is one of the accepted values.
        </p>

        <p>
          The post-view attribution window, defined as the maximum number of days considered between an impression and a conversion for attribution; conversions are attributed to the date of conversion, not the date of impression.
        </p>

        <p>
          Defaults to campaign settings if omitted; must be less than or equal to

          <code>
            clickAttributionWindow
          </code>

          ; must be specified if

          <code>
            clickAttributionWindow
          </code>

          is one of the accepted values.
        </p>

        <p>
          Accepted values:

          <code>
            none
          </code>

          ,

          <code>
            1D
          </code>

          ,

          <code>
            7D
          </code>

          ,

          <code>
            14D
          </code>

          ,

          <code>
            30D
          </code>
        </p>

        <p>
          Writeable? N / Nullable? Y
        </p>
      </td>
    </tr>

    <tr>
      <td>
        <p>
          <code>
            salesChannel
          </code>
        </p>
      </td>

      <td>
        <p>
          enum
        </p>
      </td>

      <td>
        <p>
          Filter on specific sales channel: online or offline
        </p>

        <p>
          Accepted values:

          <code>
            online
          </code>

          ,

          <code>
            offline
          </code>
        </p>

        <p>
          Writeable? N / Nullable? Y
        </p>
      </td>
    </tr>

    <tr>
      <td>
        <p>
          <code>
            format
          </code>
        </p>
      </td>

      <td>
        <p>
          enum
        </p>
      </td>

      <td>
        <p>
          Format of the report data returned
        </p>

        <p>
          Accepted values:

          <code>
            json
          </code>

          ,

          <code>
            json-compact
          </code>

          ,

          <code>
            json-newline
          </code>

          ,

          <code>
            csv
          </code>
        </p>

        <p>
          Default:

          <code>
            json
          </code>
        </p>

        <p>
          Writeable? N / Nullable? N
        </p>
      </td>
    </tr>
  </tbody>
</table>

*(\*) Required*

<Info>
  **Field Definitions**

  * **Writeable (Y/N)**: Indicates if the field can be modified in requests.
  * **Nullable (Y/N)**: Indicates if the field can accept null/empty values.
  * **Primary Key**: A unique, immutable identifier of the entity, generated internally by Criteo. Primary keys are typically ID fields (e.g., `retailerId`, `campaignId`, `lineItemId`) and are usually required in the URL path.
</Info>

***

## Offsite Dimensions

Those dimensions are specific to offsite reports.

<Warning>
  Report level and report types are not applicable for offsite reporting.
</Warning>

<table>
  <thead>
    <tr>
      <th>
        <p>
          Dimension Name
        </p>
      </th>

      <th>
        <p>
          Dimension Type
        </p>
      </th>

      <th>
        <p>
          Description
        </p>
      </th>

      <th>
        <p>
          Example
        </p>
      </th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>
        <p>
          <code>
            adFormatSize
          </code>
        </p>
      </td>

      <td>
        <p>
          Dimension
        </p>
      </td>

      <td>
        <p>
          The format size of the placement ad, usually defined in width × height pixels.
        </p>
      </td>

      <td>
        <p>
          <code>
            300x250
          </code>
        </p>
      </td>
    </tr>

    <tr>
      <td>
        <p>
          <code>
            billingType
          </code>
        </p>
      </td>

      <td>
        <p>
          Dimension
        </p>
      </td>

      <td>
        <p>
          The ad strategy billing type. Typically Cost Per Click (CPC) or Cost Per Mille (CPM).
        </p>
      </td>

      <td>
        <p>
          <code>
            CPC
          </code>
        </p>
      </td>
    </tr>

    <tr>
      <td>
        <p>
          <code>
            inventoryType
          </code>
        </p>
      </td>

      <td>
        <p>
          Dimension
        </p>
      </td>

      <td>
        <p>
          Category of video ads not tied to video content. Seen in native feeds, slideshows, etc.
        </p>
      </td>

      <td>
        <p>
          <code>
            In-content
          </code>
        </p>
      </td>
    </tr>

    <tr>
      <td>
        <p>
          <code>
            mediaType
          </code>
        </p>
      </td>

      <td>
        <p>
          Dimension
        </p>
      </td>

      <td>
        <p>
          The type of creative asset used in the ad, such as Display or Video.
        </p>
      </td>

      <td>
        <p>
          <code>
            Video
          </code>
        </p>
      </td>
    </tr>

    <tr>
      <td>
        <p>
          <code>
            publisher
          </code>
        </p>
      </td>

      <td>
        <p>
          Dimension
        </p>
      </td>

      <td>
        <p>
          The domain of the publisher where the ad was rendered.
        </p>
      </td>

      <td>
        <p>
          <code>
            example.com
          </code>
        </p>
      </td>
    </tr>

    <tr>
      <td>
        <p>
          <code>
            ssp
          </code>
        </p>
      </td>

      <td>
        <p>
          Dimension
        </p>
      </td>

      <td>
        <p>
          The Supply-Side Platform (SSP) responsible for the ad event.
        </p>
      </td>

      <td>
        <p>
          <code>
            Google Ad Manager
          </code>
        </p>
      </td>
    </tr>
  </tbody>
</table>

***

## Create an offsite report request

The dimensions specific to offsite reports can be found [here](/retail-media/docs/metrics-and-dimensions#offsite-dimensions).

### Sample request

```json expandable theme={null}
{
  "data": {
    "type": "string",
    "attributes": {
      "accountIds": [
        "563116287072485376"
      ],
      "dimensions": [
        "date",

        "daysDifference",
        "advDate",
        "advHour",
        "campaignId",
        "campaignName",
        "lineItemId",
        "lineItemName",
        "retailerId",
        "retailerName",
        "billingType",
        "environment",
        "adFormatSize",
        "ssp",
        "publisher",
        "inventoryType",
        "mediaType",
        "buyType",
        "salesChannel",
        "creativeId",
        "creativeName"
      ],
      "metrics": [
       "audience",
        "uniqueVisitors",
        "reachRate",
        "impressions",
        "frequency",
        "winRate",
        "clicks",
        "ctr",
        "viewability",
        "cpc",
        "ecpm",
        "cpm",
        "spend",
        "attributedUnits",
        "attributedSales",
        "roas",
        "videoStarts",
        "videosPlayedTo25",
        "videosPlayedTo50",
        "videosPlayedTo75",
        "videosPlayedTo100",
        "videoStartingRate",
        "videoCompletionRate",
        "videoCPC",
        "videoCPCV",
        "visits",
        "qualifiedVisits",
        "landingRate"

      ],
      "format": "csv",
      "clickAttributionWindow": "none",
      "viewAttributionWindow": "none",
      "startDate": "2025-06-18",
      "endDate": "2025-06-19",
      "timezone": "UTC"
    }
  }
}        
```

***

## Responses

<table>
  <thead>
    <tr>
      <th>
        <p>
          Response
        </p>
      </th>

      <th>
        <p>
          Description
        </p>
      </th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>
        <p>
          🔵

          <code>
            200
          </code>
        </p>
      </td>

      <td>
        <p>
          Call executed with success
        </p>

        <ul>
          <li>
            *Report Type has been ignored*\* - Report Type has been ignored since Dimensions and Metrics has been provided. Please remove them if you want to use one of the templates.
          </li>
        </ul>

        <p>
          When generating a report type using the

          <code>
            metrics
          </code>

          and

          <code>
            dimensions
          </code>

          filters for multi dimension reporting, a warning message will be presented in the

          <code>
            200
          </code>

          to inform that

          <code>
            reportType
          </code>

          is ignored. This is because multi dimension takes priority in this scenario.
        </p>
      </td>
    </tr>

    <tr>
      <td>
        <p>
          🔴

          <code>
            400
          </code>
        </p>
      </td>

      <td>
        <p>
          Common Validation Errors
        </p>

        <ul>
          <li>
            <b>
              <code>
                endDate
              </code>

              cannot be more than 100 days from

              <code>
                startDate
              </code>
            </b>

            * Using a date range with more than 100 days apart
          </li>

          <li>
            <b>
              <code>
                reportType
              </code>

              invalid
            </b>

            * calling an unsupported

            <code>
              report type
            </code>

            will throw a 400 error
          </li>

          <li>
            <b>
              <code>
                timeZone
              </code>

              must be a valid timezone
            </b>

            * using a time zone value that is not listed in the list tz database time zones
          </li>

          <li>
            <b>
              format invalid
            </b>

            * using an unsupported file format
          </li>
        </ul>
      </td>
    </tr>

    <tr>
      <td>
        <p>
          🔴

          <code>
            400
          </code>
        </p>
      </td>

      <td>
        <p>
          Validation Error
        </p>

        <p>
          In the API, win rate metric will be available to sponsored product campaigns only. When using this metric, please specify

          <code>
            campaignTypeName
          </code>

          in the list of dimensions to obtain a value
        </p>

        <p>
          <b>
            "title": "

            <code>
              WinRate
            </code>

            metric is only supported for Sponsored Products campaigns.",
          </b>
        </p>

        <p>
          <b>
            "detail": "Please provide either the

            <code>
              campaignTypeName
            </code>

            in dimensions or filter on

            <code>
              SponsoredProducts
            </code>

            using the

            <code>
              campaignType
            </code>

            filter."
          </b>
        </p>
      </td>
    </tr>

    <tr>
      <td>
        <p>
          🔴

          <code>
            410
          </code>
        </p>
      </td>

      <td>
        <p>
          Expired or Lost Report Error
        </p>

        <p>
          The report is expired, lost, or failed to create. Re-create the report through a new request.
        </p>
      </td>
    </tr>
  </tbody>
</table>

***

<br />

## What's next

* [Retail Media Insights (Share of Voice)](/retail-media/v2026-preview/docs/retail-media-insights-share-of-voice)
