HookLogic (Criteo) Analytics API
The Analytics API from HookLogic (Criteo) — 12 operation(s) for analytics.
The Analytics API from HookLogic (Criteo) — 12 operation(s) for analytics.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/hooklogic-criteo-analytics-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
openapi: 3.2.0
info:
title: Criteo Accounts Analytics API
description: Criteo API - RetailMedia
version: 2026-07
servers:
- url: https://api.criteo.com
security:
- oauth: []
tags:
- name: Analytics
paths:
/2026-07/retail-media/reports/{reportId}/output:
get:
tags:
- Analytics
summary: /2026-07/retail-media/reports/{reportId}/output
description: Returns the output of an async report
operationId: GetAsyncExportOutput
parameters:
- name: reportId
in: path
description: The ID of the report to retrieve
required: true
schema:
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
type: string
format: binary
security:
- oauth:
- RetailMedia_Analytics_Read
/2026-07/retail-media/reports/{reportId}/status:
get:
tags:
- Analytics
summary: /2026-07/retail-media/reports/{reportId}/status
description: Returns the status of an async report
operationId: GetAsyncExportStatus
parameters:
- name: reportId
in: path
description: The ID of the report to retrieve
required: true
schema:
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/AsyncReportResponse'
security:
- oauth:
- RetailMedia_Analytics_Read
/2026-07/retail-media/reports/attributed-transactions:
post:
tags:
- Analytics
summary: /2026-07/retail-media/reports/attributed-transactions
description: 'Creates an attributed-transactions async report. The request accepts explicit attributed-transaction dimensions, metrics, and filters.
<br />
This endpoint is subject to specific rate limits.'
operationId: GenerateAsyncAttributedTransactionsReport
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/AsyncAttributedTransactionsReportRequest'
required: true
x-bodyName: request
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/AsyncReportResponse'
security:
- oauth:
- RetailMedia_Analytics_Read
/2026-07/retail-media/reports/fillrate:
post:
tags:
- Analytics
summary: /2026-07/retail-media/reports/fillrate
description: 'Returns an asynchronous Fill Rate Report
<br />
This endpoint is subject to specific rate limits.'
operationId: GenerateAsyncFillRateReport
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/AsyncFillRateReportRequest'
required: true
x-bodyName: request
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/AsyncReportResponse'
security:
- oauth:
- RetailMedia_Analytics_Read
/2026-07/retail-media/reports/missed-opportunities:
post:
tags:
- Analytics
summary: /2026-07/retail-media/reports/missed-opportunities
description: 'Creates a missed-opportunities async report. The request accepts explicit missed-opportunities dimensions, metrics, and filters.
<br />
This endpoint is subject to specific rate limits.'
operationId: GenerateAsyncMissedOpportunitiesReport
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/AsyncMissedOpportunitiesReportRequest'
required: true
x-bodyName: request
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/AsyncReportResponse'
security:
- oauth:
- RetailMedia_Analytics_Read
/2026-07/retail-media/reports/performance:
post:
tags:
- Analytics
summary: /2026-07/retail-media/reports/performance
description: 'Creates a performance DSP analytics async report. Dimensions and metrics select the output schema, and filters constrain eligible data.
<br />
This endpoint is subject to specific rate limits.'
operationId: GenerateAsyncPerformanceReport
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/AsyncPerformanceReportRequest'
required: true
x-bodyName: request
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/AsyncReportResponse'
security:
- oauth:
- RetailMedia_Analytics_Read
/2026-07/retail-media/reports/revenue:
post:
tags:
- Analytics
summary: /2026-07/retail-media/reports/revenue
description: 'Returns an asynchronous Revenue Report
<br />
This endpoint is subject to specific rate limits.'
operationId: GenerateAsyncRevenueReport
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/AsyncRevenueReportRequest'
required: true
x-bodyName: request
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/AsyncReportResponse'
security:
- oauth:
- RetailMedia_Analytics_Read
/2026-07/retail-media/reports/sync/attributed-transactions:
post:
tags:
- Analytics
summary: /2026-07/retail-media/reports/sync/attributed-transactions
description: Returns a synchronous Attributed Transactions Report
operationId: GenerateSyncAttributedTransactionsReport
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SyncAttributedTransactionsReportRequest'
required: true
x-bodyName: request
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/ReportResponse'
security:
- oauth:
- RetailMedia_Analytics_Read
/2026-07/retail-media/reports/sync/campaigns:
post:
tags:
- Analytics
summary: /2026-07/retail-media/reports/sync/campaigns
description: Returns a synchronous Campaigns Report
operationId: GenerateSyncCampaignsReport
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SyncCampaignsReportRequest'
required: true
x-bodyName: request
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/ReportResponse'
security:
- oauth:
- RetailMedia_Analytics_Read
/2026-07/retail-media/reports/sync/line-items:
post:
tags:
- Analytics
summary: /2026-07/retail-media/reports/sync/line-items
description: Returns a synchronous Line Items Report
operationId: GenerateSyncLineItemsReport
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SyncLineItemsReportRequest'
required: true
x-bodyName: request
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/ReportResponse'
security:
- oauth:
- RetailMedia_Analytics_Read
/2026-07/retail-media/reports/sync/real-time-performance:
post:
tags:
- Analytics
summary: /2026-07/retail-media/reports/sync/real-time-performance
description: 'Returns a synchronous Real Time Performance Report. Returns empty rows; metadata includes dataCompleteThrough (latest time from streaming table in the request timezone).
<br />
This endpoint is subject to specific rate limits.'
operationId: GenerateSyncRealTimePerformanceReport
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SyncRealTimePerformanceReportRequest'
required: true
x-bodyName: request
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/ReportResponse'
security:
- oauth:
- RetailMedia_Analytics_Read
/2026-07/retail-media/reports/unfilled-placements:
post:
tags:
- Analytics
summary: /2026-07/retail-media/reports/unfilled-placements
description: 'Returns an asynchronous Unfilled Placements Report
<br />
This endpoint is subject to specific rate limits.'
operationId: GenerateAsyncUnfilledPlacementsReport
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/AsyncUnfilledPlacementsReportRequest'
required: true
x-bodyName: request
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/AsyncReportResponse'
security:
- oauth:
- RetailMedia_Analytics_Read
components:
schemas:
AttributedTransactionsReportFilters:
type: object
properties:
accountIds:
type: array
items:
type: string
campaignIds:
type: array
items:
type: string
lineItemIds:
type: array
items:
type: string
mediaTypes:
type: array
items:
enum:
- unknown
- video
- display
- all
type: string
description: Array-valued constraints for attributed-transactions reporting. At least one of accountIds, campaignIds, or lineItemIds is required.
StatusResponse:
type:
- object
- 'null'
properties:
createdAt:
type:
- string
- 'null'
expiresAt:
type:
- string
- 'null'
fileSizeBytes:
type:
- integer
- 'null'
format: int64
id:
type:
- string
- 'null'
md5CheckSum:
type:
- string
- 'null'
message:
type:
- string
- 'null'
rowCount:
type:
- integer
- 'null'
format: int32
status:
enum:
- pending
- success
- failure
- expired
type:
- string
- 'null'
description: Status of an async report request
x-criteo-canonical:
infoType: entity
SyncCampaignsReport:
required:
- accountId
- endDate
- startDate
type: object
properties:
accountId:
type: string
description: Account id to report on
campaignIds:
type: array
items:
type: string
description: Campaign ids to filter
campaignType:
enum:
- all
- sponsoredProducts
- onSiteDisplays
type: string
description: 'Filter the type of campaigns to report on: sponsoredProducts or onSiteDisplays'
default: all
clickAttributionWindow:
enum:
- none
- 7D
- 14D
- 30D
type: string
description: Click attribution window
default: none
dimensions:
type: array
items:
enum:
- date
- hour
- accountId
- accountName
- campaignId
- campaignName
- campaignTypeName
- lineItemId
- lineItemName
- retailerId
- retailerName
- brandId
- brandName
- advProductCategory
- advProductId
- advProductName
- salesChannel
- environment
- pageTypeName
- pageCategory
- servedCategory
- taxonomyBreadcrumb
type: string
description: List of dimensions to report on
endDate:
type: string
description: End date
format: date-time
metrics:
type: array
items:
enum:
- impressions
- clicks
- spend
- attributedSales
- attributedUnits
- attributedOrders
- assistedSales
- assistedUnits
- ctr
- cpc
- cpo
- cpm
- roas
- uniqueVisitors
- frequency
type: string
description: List of metrics to report on
reportType:
enum:
- summary
- pageType
- productCategory
- product
- environment
- servedCategory
type: string
description: Type of report, if no dimensions and metrics are provided, falls back to summary reportType
default: summary
salesChannel:
enum:
- online
- offline
- all
type: string
description: 'Filter on specific sales channel: offline or online'
default: all
startDate:
type: string
description: Start date
format: date-time
timezone:
type: string
description: 'Time zone : see criteo developer portal for supported time zones'
default: UTC
viewAttributionWindow:
enum:
- none
- 1D
- 7D
- 14D
- 30D
type: string
description: View attribution window
default: none
description: Campaigns report body request
AsyncMissedOpportunitiesReportResource:
type: object
properties:
attributes:
$ref: '#/components/schemas/AsyncMissedOpportunitiesReport'
type:
type: string
description: A top-level object that encapsulates a Criteo API response for a single value
AsyncFillRateReport:
required:
- dimensions
- endDate
- metrics
- startDate
- supplyAccountIds
type: object
properties:
adServerType:
enum:
- all
- gam
- criteo
type: string
description: 'Filter on the type of the ad server: criteo, gam, all'
default: all
dimensions:
minItems: 1
type: array
items:
enum:
- date
- retailerId
- retailerName
- placementId
- placementName
- pageTypeName
- environment
- servedCategory
- retailerCategoryId
- retailerCategoryName
- adServerType
type: string
description: List of dimensions to report on
endDate:
type: string
description: End date
format: date-time
format:
enum:
- json
- json-compact
- json-newline
- csv
type: string
description: Format of the output
default: json
metrics:
minItems: 1
type: array
items:
enum:
- pageViews
- availablePlacements
- unfilledPlacements
- fillRate
- placementImpressions
- productImpressions
- impressions
- placementClicks
- productClicks
- clicks
- placementImpressionsCTR
- productImpressionsCTR
- cpm
- cpc
- placementImpressionsRevenue
- productClicksRevenue
- revenue
- workingMedia
- netRevenue
- nonDeliverablePlacements
- deliverablePlacements
- placementsWithCandidates
- coveredPlacements
- coverageRate
type: string
description: List of metrics to report on
startDate:
type: string
description: Start date
format: date-time
supplyAccountIds:
type: array
items:
type: string
description: Supply account ids to report on
timezone:
type: string
description: 'Time zone : see criteo developer portal for supported time zones'
default: UTC
description: Async FillRate report body request
AsyncRevenueReportResource:
type: object
properties:
attributes:
$ref: '#/components/schemas/AsyncRevenueReport'
type:
type: string
description: A top-level object that encapsulates a Criteo API response for a single value
DataCompleteThrough:
type:
- object
- 'null'
properties:
dateTime:
type:
- string
- 'null'
description: The instant through which data is complete, in the format "yyyy-MM-dd HH:mm:ss" in the timezone given by the {timezone} field.
timezone:
type:
- string
- 'null'
description: IANA timezone for the {dateTime} field (e.g. "UTC", "America/New_York"). Matches the query timezone.
description: 'Data freshness: the instant through which report data is complete, expressed in the report''s request timezone.'
ExportReportColumn:
required:
- name
- role
- type
type: object
properties:
currency:
type:
- string
- 'null'
description: Currency of the column
deprecated:
type:
- boolean
- 'null'
description: Flag for deprecated column
description:
type:
- string
- 'null'
description: Description of the exported column
duration:
type:
- string
- 'null'
description: Duration of the column
name:
type: string
description: Name of the exported column
role:
enum:
- Dimension
- Property
- Interval
- Metric
type: string
description: Role of the column
timezone:
type:
- string
- 'null'
description: Timezone of the column
title:
type:
- string
- 'null'
description: Title of the exported column
type:
enum:
- Boolean
- Number
- Money
- String
- Date
- DateTime
- Interval
- Duration
type: string
description: Type of the column
description: Description of a column from an async report request
AsyncRevenueReport:
required:
- endDate
- startDate
type: object
properties:
accountIds:
type: array
items:
type: string
description: Account ids to filter
activationPlatforms:
type: array
items:
enum:
- CommerceMax
- PrivateMarket
type: string
description: 'Filter on the activation platform: CommerceMax, PrivateMarket'
advertiserTypes:
type: array
items:
enum:
- retailer
- brand
- seller
type: string
description: 'Filter on the type of advertiser: retailer, brand, seller'
budgetModels:
type: array
items:
enum:
- CriteoBudget
- RetailerBudget
type: string
description: 'Filter on the budget model: CriteoBudget, RetailerBudget'
buyType:
enum:
- auction
- preferredDeals
- sponsorship
type: string
description: 'Filter on buy type: Auction, Preferred Deals or Sponsorship'
campaignIds:
type: array
items:
type: string
description: Campaign ids to filter
campaignType:
enum:
- all
- sponsoredProducts
- onSiteDisplays
type: string
description: 'Filter the type of campaigns to report on: sponsoredProducts or onSiteDisplays'
default: all
clickAttributionWindow:
enum:
- none
- 7D
- 14D
- 30D
type: string
description: Click attribution window
default: none
clickMatchLevel:
enum:
- sameSku
- sameCategory
- sameBrand
- campaign
type: string
description: 'Click Match Level: Campaign, Same SKU, Same Category or Same Brand'
default: campaign
dimensions:
type: array
items:
enum:
- date
- hour
- parentAccount
- accountId
- accountName
- accountTypeName
- advertiserType
- campaignId
- campaignName
- campaignTypeName
- campaignStartDate
- campaignEndDate
- lineItemId
- lineItemName
- lineItemStartDate
- lineItemEndDate
- lineItemStatus
- retailerId
- retailerName
- brandId
- brandName
- placementId
- placementName
- pageTypeName
- environment
- pageCategory
- advProductId
- advProductName
- advProductGtin
- advProductMpn
- buyType
- budgetModel
- activationPlatform
- soldBy
- saleChannel
- salesChannel
- mediaType
- attributionSettings
- activityType
- keyword
- skuRelation
- retailerCategoryId
- retailerCategoryName
- taxonomyBreadcrumb
- taxonomy1Id
- taxonomy1Name
- taxonomy2Id
- taxonomy2Name
- taxonomy3Id
- taxonomy3Name
- taxonomy4Id
- taxonomy4Name
- taxonomy5Id
- taxonomy5Name
- taxonomy6Id
- taxonomy6Name
- taxonomy7Id
- taxonomy7Name
- targetedKeywordType
type: string
description: List of dimensions to report on
endDate:
type: string
description: End date
format: date-time
format:
enum:
- json
- json-compact
- json-newline
- csv
type: string
description: Format of the output
default: json
id:
type: string
description: Supply account id to report on
ids:
type: array
items:
type: string
description: Supply account ids to report on
lineItemIds:
type: array
items:
type: string
description: Line item ids to filter
mediaType:
enum:
- unknown
- video
- display
- all
type: string
description: 'Filter on the type of media: unknown, display, video'
default: all
metrics:
type: array
items:
enum:
- numberOfCampaigns
- numberOfLineItems
- numberOfSkus
- skuPrice
- pageViews
- impressions
- productClicks
- placementClicks
- clicks
- sales
- units
- transactions
- assistedSales
- assistedUnits
- revenue
- openAuctionRevenue
- preferredDealsRevenue
- ctr
- cr
- cpc
- cpm
- roas
- workingMedia
- netRevenue
- videoViews
- videosStarted
- videosPlayedTo25
- videosPlayedTo50
- videosPlayedTo75
- videosPlayedTo100
- videoPlayingRate
- videoCompletionRate
- videoImpressions
- videoMuted
- videoUnmuted
- videoResumed
- videoPaused
- videoAvgInteractionRate
- videoViewability
- videoStartingRate
- videoCPC
- videoCPCV
- uniqueVisitors
- frequency
type: string
description: List of metrics to report on
reportType:
enum:
- advertiser
- environment
- pageType
- productCategory
- brand
type: string
description: Type of report, if no dimensions and metrics are provided, falls back to advertiser reportType
retailerIds:
type: array
items:
type: string
description: Retailer ids to filter
revenueType:
enum:
- auction
- preferred
type: string
description: Type of revenue
salesChannel:
enum:
- online
- offline
- all
type: string
description: 'Filter on specific sales channel: offline or online'
default: all
skuRelations:
type: array
items:
enum:
- sameSku
- sameParentSku
- sameCategory
- sameBrand
- sameSeller
type: string
description: 'Filter on sku relations: Same SKU, Same Parent SKU, Same Category, Same Brand or Same Seller'
soldBy:
enum:
- directSold
- indirectSold
- privateMarket
- authorizedBuyer
type: string
description: 'Filter on the seller: Indirect Sold, Direct Sold, Authorized Buyer or Private Market'
startDate:
type: string
description: Start date
format: date-time
targetedKeywordTypes:
type: array
items:
enum:
- unknown
- generic
- branded
- conquesting
type: string
description: 'Filter on targeted keyword type: unknown, generic, branded, conquesting'
timezone:
type: string
description: 'Time zone : see criteo developer portal for supported time zones'
default: UTC
viewAttributionWindow:
enum:
- none
- 1D
- 7D
- 14D
- 30D
type: string
description: View attribution window
default: none
viewMatchLevel:
enum:
- sameSku
- sameCategory
- sameBrand
- campaign
type: string
description: 'View Match Level: Campaign, Same SKU, Same Category or Same Brand'
default: campaign
description: Async Revenue report body request
AsyncFillRateReportResource:
type: object
properties:
attributes:
$ref: '#/components/schemas/AsyncFillRateReport'
type:
type: string
description: A top-level object that encapsulates a Criteo API response for a single value
ReportDataResponseResource:
type:
- object
- 'null'
properties:
attributes:
type:
- array
- 'null'
items:
type: array
items:
type: object
description: Data response format
type:
type:
- string
- 'null'
description: A top-level object that encapsulates a Criteo API response for a single value
SyncLineItemsReport:
required:
- accountId
- endDate
- startDate
type: object
properties:
accountId:
type: string
description: Account id to report on
campaignIds:
type: array
items:
type: string
description: Campaign ids to filter
campaignType:
enum:
- all
- sponsoredProducts
- onSiteDisplays
type: string
description: 'Filter the type of campaigns to report on: sponsoredProducts or onSiteDisplays'
default: all
clickAttributionWindow:
enum:
- none
- 7D
- 14D
- 30D
type: string
description: Click attribution window
default: none
dimensions:
type: array
items:
enum:
- date
- hour
- accountId
- accountName
- campaignId
- campaignName
- campaignTypeName
- lineItemId
- lineItemName
- retailerId
- retailerName
- brandId
- brandName
- advProductCategory
- advProductId
- advProductName
- salesChannel
- environment
- pageTypeName
- pageCategory
- servedCategory
- taxonomyBreadcrumb
type: string
description: List of dimensions to report on
endDate:
type: string
description: End date
format: date-time
lineItemIds:
type: array
items:
type: string
description: Line Item ids to filter
metrics:
type: array
items:
enum:
- impressions
- clicks
- spend
- attributedSales
- attributedUnits
- attributedOrders
- assistedSales
- assistedUnits
- ctr
- cpc
- cpo
- cpm
- roas
- uniqueVisitors
- frequency
type: string
description: List of metrics to report on
reportType:
enum:
- summary
- pageType
- productCategory
- product
- environment
- servedCategory
type: string
description: Type of report, if no dimensions and metrics are provided, falls back to summary reportType
default: summary
salesChannel:
enum:
- online
- offline
- all
type: string
description: 'Filter on specific sales channel: offline or online'
default: all
startDate:
type: string
description: Start date
format: date-time
timezone:
type: string
description: 'Time zone : see criteo developer portal for supported time zones'
default: UTC
viewAttributionWindow:
enum:
- none
- 1D
- 7D
- 14D
- 30D
type: string
description: View attribution window
default: none
description: Line Items report body request
SyncRealTimePerformanceReportRequest:
type: object
properties:
# --- truncated at 32 KB (60 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/hooklogic-criteo/refs/heads/main/openapi/hooklogic-criteo-analytics-api-openapi.yml