HookLogic (Criteo) Campaign API
The Campaign API from HookLogic (Criteo) — 54 operation(s) for campaign.
The Campaign API from HookLogic (Criteo) — 54 operation(s) for campaign.
openapi: 3.0.1
info:
title: Criteo Accounts Campaign API
description: Criteo API - RetailMedia
version: 2026-07
servers:
- url: https://api.criteo.com
security:
- oauth: []
tags:
- name: Campaign
paths:
/2026-07/retail-media/accounts/{account-id}/campaigns:
get:
tags:
- Campaign
summary: /2026-07/retail-media/accounts/{account-id}/campaigns
description: Gets page of campaign objects for the given account id
operationId: GetCampaignsByAccountId
parameters:
- name: account-id
in: path
description: The given account id
required: true
schema:
type: string
- name: limitToId
in: query
description: The ids that you would like to limit your result set to
schema:
type: array
items:
type: string
- name: pageIndex
in: query
description: The 0 indexed page index you would like to receive given the page size
schema:
maximum: 2147483647
minimum: 0
type: integer
format: int32
default: 0
- name: pageSize
in: query
description: The maximum number of items you would like to receive in this request
schema:
maximum: 2147483647
minimum: 1
type: integer
format: int32
default: 25
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/JsonApiPageResponseOfCampaignV202301'
security:
- oauth:
- RetailMedia_Campaign_Read
post:
tags:
- Campaign
summary: /2026-07/retail-media/accounts/{account-id}/campaigns
description: Creates a new campaign with the specified settings
operationId: CreateCampaignsByAccountId
parameters:
- name: account-id
in: path
description: The given account id
required: true
schema:
type: string
requestBody:
description: The campaign settings to create a campaign with
content:
application/json:
schema:
$ref: '#/components/schemas/PostCampaignV202301'
required: true
x-bodyName: campaign
responses:
'201':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/JsonApiSingleResponseOfCampaignV202301'
security:
- oauth:
- RetailMedia_Campaign_Manage
/2026-07/retail-media/accounts/{account-id}/creatives:
get:
tags:
- Campaign
summary: /2026-07/retail-media/accounts/{account-id}/creatives
description: Get account creatives
operationId: GetAccountCreatives
parameters:
- name: account-id
in: path
description: External account id to retrieve creatives for
required: true
schema:
type: string
responses:
'200':
description: Creatives found
content:
application/json:
schema:
$ref: '#/components/schemas/Creative202110ListResponse'
security:
- oauth:
- RetailMedia_Campaign_Read
post:
tags:
- Campaign
summary: /2026-07/retail-media/accounts/{account-id}/creatives
description: Create a creative for an account
operationId: CreateCreative
parameters:
- name: account-id
in: path
description: External account id to create a creative for
required: true
schema:
type: string
requestBody:
description: The creative to create
content:
application/json:
schema:
$ref: '#/components/schemas/CreativeCreateModel202207'
required: true
responses:
'201':
description: Creatives created
content:
application/json:
schema:
$ref: '#/components/schemas/Creative202210Response'
security:
- oauth:
- RetailMedia_Campaign_Manage
/2026-07/retail-media/accounts/{account-id}/creatives/{creative-id}:
get:
tags:
- Campaign
summary: /2026-07/retail-media/accounts/{account-id}/creatives/{creative-id}
description: Get the specified creative
operationId: GetCreative
parameters:
- name: account-id
in: path
description: External account id to retrieve creatives for
required: true
schema:
type: string
- name: creative-id
in: path
description: Creative to get
required: true
schema:
type: string
responses:
'200':
description: Creatives found
content:
application/json:
schema:
$ref: '#/components/schemas/Creative2Response'
security:
- oauth:
- RetailMedia_Campaign_Read
put:
tags:
- Campaign
summary: /2026-07/retail-media/accounts/{account-id}/creatives/{creative-id}
description: Update a creative
operationId: UpdateCreative
parameters:
- name: account-id
in: path
description: External account id containing the creative
required: true
schema:
type: string
- name: creative-id
in: path
description: Creative to update
required: true
schema:
type: string
requestBody:
description: The creative to create
content:
application/json:
schema:
$ref: '#/components/schemas/CreativeUpdateModel202207'
required: true
responses:
'201':
description: Creative updated
content:
application/json:
schema:
$ref: '#/components/schemas/Creative202210Response'
security:
- oauth:
- RetailMedia_Campaign_Manage
/2026-07/retail-media/accounts/{account-id}/creatives/search:
post:
tags:
- Campaign
summary: /2026-07/retail-media/accounts/{account-id}/creatives/search
description: Get account creatives
operationId: SearchAccountCreatives
parameters:
- name: account-id
in: path
description: External account id to retrieve creatives for
required: true
schema:
type: string
- name: creative-ids
in: query
description: Creatives to filter by
schema:
type: array
items:
type: string
responses:
'200':
description: Creatives found
content:
application/json:
schema:
$ref: '#/components/schemas/Creative2ListResponse'
security:
- oauth:
- RetailMedia_Campaign_Read
/2026-07/retail-media/accounts/{account-id}/keywords/in-review-report:
get:
tags:
- Campaign
summary: /2026-07/retail-media/accounts/{account-id}/keywords/in-review-report
description: Generate a list of reports for line items which contain one or more actionable keyword reviews
operationId: GetKeywordInReviewReport
parameters:
- name: account-id
in: path
description: The account to generate a report for
required: true
schema:
type: string
format: int64
- name: limit
in: query
description: Number of items per page
schema:
maximum: 50
minimum: 1
type: integer
format: int32
default: 25
- name: offset
in: query
description: Offset for pagination
schema:
maximum: 2147483647
minimum: 0
type: integer
format: int32
default: 0
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/EntityResourceCollectionOutcomeLineItemKeywordReviewReportAndMetadata'
security:
- oauth:
- RetailMedia_Campaign_Read
/2026-07/retail-media/accounts/{account-id}/line-items:
get:
tags:
- Campaign
summary: /2026-07/retail-media/accounts/{account-id}/line-items
description: Gets page of line item objects for the given account id
operationId: GetLineItemsByAccountId
parameters:
- name: account-id
in: path
description: The given account id
required: true
schema:
type: string
- name: limitToCampaignId
in: query
description: The campaign ids that you would like to limit your result set to
schema:
type: array
items:
type: string
- name: limitToId
in: query
description: The ids that you would like to limit your result set to
schema:
type: array
items:
type: string
- name: limitToType
in: query
description: The campaign types that you would like to limit your result set to
schema:
enum:
- Unknown
- Auction
- Preferred
type: string
nullable: true
- name: pageIndex
in: query
description: The 0 indexed page index you would like to receive given the page size
schema:
maximum: 2147483647
minimum: 0
type: integer
format: int32
default: 0
- name: pageSize
in: query
description: The maximum number of items you would like to receive in this request
schema:
maximum: 2147483647
minimum: 1
type: integer
format: int32
default: 25
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/CommonLineItemPagedListResponse'
security:
- oauth:
- RetailMedia_Campaign_Read
/2026-07/retail-media/accounts/{accountId}/brand-catalog-export:
post:
tags:
- Campaign
summary: /2026-07/retail-media/accounts/{accountId}/brand-catalog-export
description: Create a request for a Catalog available to the indicated account.
operationId: CreateBrandCatalogExport
parameters:
- name: accountId
in: path
description: The account to request the catalog for.
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ValueResourceInputOfBrandCatalogRequestV2'
required: true
responses:
'200':
description: Catalog request successfully created
content:
application/json:
schema:
$ref: '#/components/schemas/EntityResourceOutcomeOfCatalogStatusV2'
security:
- oauth:
- RetailMedia_Campaign_Manage
/2026-07/retail-media/accounts/{accountId}/brands:
get:
tags:
- Campaign
summary: /2026-07/retail-media/accounts/{accountId}/brands
description: Gets page of retailer objects that are associated with the given account
operationId: GetBrandsByAccountId
parameters:
- name: accountId
in: path
description: The given account id
required: true
schema:
type: string
- name: limitToId
in: query
description: The ids that you would like to limit your result set to
schema:
type: array
items:
type: string
- name: pageIndex
in: query
description: The 0 indexed page index you would like to receive given the page size
schema:
type: integer
format: int32
default: 0
- name: pageSize
in: query
description: The maximum number of items you would like to receive in this request
schema:
type: integer
format: int32
default: 25
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/JsonApiPageResponseOfBrand'
security:
- oauth:
- RetailMedia_Campaign_Read
/2026-07/retail-media/accounts/{accountId}/catalogs:
post:
tags:
- Campaign
summary: /2026-07/retail-media/accounts/{accountId}/catalogs
description: Create a request for a Catalog available to the indicated account.
operationId: CatalogApi_PostApiV1ExternalAccountCatalogsByAccountId
parameters:
- name: accountId
in: path
description: The account to request the catalog for.
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/JsonApiRequestOfCatalogRequest'
required: true
responses:
'200':
description: Catalog request successfully created
content:
application/json:
schema:
$ref: '#/components/schemas/JsonApiSingleResponseOfCatalogStatus'
security:
- oauth:
- RetailMedia_Campaign_Read
/2026-07/retail-media/accounts/{accountId}/catalogs/sellers:
post:
tags:
- Campaign
summary: /2026-07/retail-media/accounts/{accountId}/catalogs/sellers
description: Create a request for a Catalog available to the indicated account.
operationId: Catalog_PostApiExternalV1AccountCatalogsSellersByAccountId
parameters:
- name: accountId
in: path
description: The account to request the catalog for.
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/JsonApiRequestOfSellerCatalogRequest'
required: true
responses:
'200':
description: Catalog request successfully created
content:
application/json:
schema:
$ref: '#/components/schemas/JsonApiSingleResponseOfCatalogStatus'
security:
- oauth:
- RetailMedia_Campaign_Read
/2026-07/retail-media/accounts/{accountId}/retailers/search:
post:
tags:
- Campaign
summary: /2026-07/retail-media/accounts/{accountId}/retailers/search
description: Searches for retailers associated with the specified account and returns budget model availability for each retailer
operationId: SearchAccountRetailers
parameters:
- name: accountId
in: path
description: The external account identifier
required: true
schema:
type: string
- name: limit
in: query
description: The maximum number of items to return. Must be between 1 and 10. Default is 5.
schema:
maximum: 10
minimum: 1
type: integer
format: int32
default: 5
- name: offset
in: query
description: The number of items to skip before starting to collect the result set. Default is 0.
schema:
maximum: 2147483647
minimum: 0
type: integer
format: int32
default: 0
requestBody:
description: The search request containing filtering parameters
content:
application/json:
schema:
$ref: '#/components/schemas/ValueResourceInputOfRetailerSearchRequestV2'
required: true
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/EntityResourceCollectionOutcomeOfRetailerResultV2AndMetadata'
security:
- oauth:
- RetailMedia_Campaign_Read
/2026-07/retail-media/accounts/{accountId}/seller-catalog-export:
post:
tags:
- Campaign
summary: /2026-07/retail-media/accounts/{accountId}/seller-catalog-export
description: Create a request for a Catalog available to the indicated account.
operationId: CreateSellerCatalogExport
parameters:
- name: accountId
in: path
description: The account to request the catalog for.
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ValueResourceInputOfSellerCatalogRequestV2'
required: true
responses:
'200':
description: Catalog request successfully created
content:
application/json:
schema:
$ref: '#/components/schemas/EntityResourceOutcomeOfCatalogStatusV2'
security:
- oauth:
- RetailMedia_Campaign_Manage
/2026-07/retail-media/assets:
post:
tags:
- Campaign
summary: /2026-07/retail-media/assets
description: Creates an asset
operationId: CreateAsset
requestBody:
content:
multipart/form-data:
schema:
required:
- AssetFile
properties:
AssetFile:
type: string
description: The asset binary content
format: binary
responses:
'201':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/AssetResponse'
security:
- oauth:
- RetailMedia_Campaign_Manage
/2026-07/retail-media/auction-line-items/{lineItemId}:
get:
tags:
- Campaign
summary: /2026-07/retail-media/auction-line-items/{lineItemId}
description: Gets a sponsored product line item by its id.
operationId: GetAuctionLineItem
parameters:
- name: lineItemId
in: path
description: The id of the line item
required: true
schema:
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/EntityResourceOutcomeOfSponsoredProductsLineItem'
security:
- oauth:
- RetailMedia_Campaign_Read
put:
tags:
- Campaign
summary: /2026-07/retail-media/auction-line-items/{lineItemId}
description: Updates a Sponsored Products Line Item given a line item id and a request.
operationId: UpdateAuctionLineItem
parameters:
- name: lineItemId
in: path
description: The external line item ID of the sponsored products line item.
required: true
schema:
type: string
requestBody:
description: An update request containing all details of the requested update.
content:
application/json:
schema:
$ref: '#/components/schemas/ValueResourceInputOfSponsoredProductsLineItemUpdateRequestModel'
required: true
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/EntityResourceOutcomeOfSponsoredProductsLineItem'
security:
- oauth:
- RetailMedia_Campaign_Manage
/2026-07/retail-media/balances/{balance-id}/campaigns/append:
post:
tags:
- Campaign
summary: /2026-07/retail-media/balances/{balance-id}/campaigns/append
description: appends one or more campaigns to the specified balance
operationId: AppendCampaignsByBalanceId
parameters:
- name: balance-id
in: path
description: The balance to add campaigns from
required: true
schema:
type: string
requestBody:
description: The campaigns to append
content:
application/json:
schema:
$ref: '#/components/schemas/BalanceCampaign202110ListRequest'
x-bodyName: campaigns
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/BalanceCampaign202110PagedListResponse'
security:
- oauth:
- RetailMedia_Campaign_Manage
/2026-07/retail-media/balances/{balance-id}/campaigns/delete:
post:
tags:
- Campaign
summary: /2026-07/retail-media/balances/{balance-id}/campaigns/delete
description: Removes one or more campaigns on the specified balance
operationId: DeleteCampaignsByBalanceId
parameters:
- name: balance-id
in: path
description: The balance to remove campaigns from
required: true
schema:
type: string
requestBody:
description: The campaigns to append
content:
application/json:
schema:
$ref: '#/components/schemas/BalanceCampaign202110ListRequest'
x-bodyName: campaigns
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/BalanceCampaign202110PagedListResponse'
security:
- oauth:
- RetailMedia_Campaign_Manage
/2026-07/retail-media/campaigns/{campaign-id}/preferred-line-items:
get:
tags:
- Campaign
summary: /2026-07/retail-media/campaigns/{campaign-id}/preferred-line-items
description: Gets page of preferred line item objects for the given campaign id
operationId: GetPreferredLineItemsByCampaignId
parameters:
- name: campaign-id
in: path
description: The given campaign id
required: true
schema:
type: string
- name: limitToId
in: query
description: The ids that you would like to limit your result set to
schema:
type: array
items:
type: string
- name: pageIndex
in: query
description: The 0 indexed page index you would like to receive given the page size
schema:
maximum: 2147483647
minimum: 0
type: integer
format: int32
default: 0
- name: pageSize
in: query
description: The maximum number of items you would like to receive in this request
schema:
maximum: 2147483647
minimum: 1
type: integer
format: int32
default: 25
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/PreferredLineItemV2PagedListResponse'
security:
- oauth:
- RetailMedia_Campaign_Read
post:
tags:
- Campaign
summary: /2026-07/retail-media/campaigns/{campaign-id}/preferred-line-items
description: Creates a new preferred line item with the specified settings
operationId: CreatePreferredLineItemByCampaignId
parameters:
- name: campaign-id
in: path
description: The given campaign id
required: true
schema:
type: string
requestBody:
description: The line item settings to create a line item with
content:
application/json:
schema:
$ref: '#/components/schemas/PreferredLineItemCreateModelV2Request'
required: true
x-bodyName: lineItem
responses:
'201':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/PreferredLineItemV2Response'
security:
- oauth:
- RetailMedia_Campaign_Manage
/2026-07/retail-media/campaigns/{campaignId}:
get:
tags:
- Campaign
summary: /2026-07/retail-media/campaigns/{campaignId}
description: Gets the campaign for the given campaign id
operationId: GetCampaignByCampaignId
parameters:
- name: campaignId
in: path
description: The given campaign id
required: true
schema:
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/JsonApiSingleResponseOfCampaignV202301'
security:
- oauth:
- RetailMedia_Campaign_Read
put:
tags:
- Campaign
summary: /2026-07/retail-media/campaigns/{campaignId}
description: Updates the campaign for the given campaign id
operationId: UpdateCampaignByCampaignId
parameters:
- name: campaignId
in: path
description: The given campaign id
required: true
schema:
type: string
requestBody:
description: The campaign settings to update that campaign with
content:
application/json:
schema:
$ref: '#/components/schemas/PutCampaignV202301'
required: true
x-bodyName: campaign
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/JsonApiSingleResponseOfCampaignV202301'
security:
- oauth:
- RetailMedia_Campaign_Manage
/2026-07/retail-media/campaigns/{campaignId}/auction-line-items:
get:
tags:
- Campaign
summary: /2026-07/retail-media/campaigns/{campaignId}/auction-line-items
description: Gets a page of sponsored product line items by campaign id.
operationId: GetAuctionLineItemsByCampaign
parameters:
- name: campaignId
in: path
description: The id of the campaign
required: true
schema:
type: string
- name: limit
in: query
description: The number of elements to be returned on a page.
schema:
maximum: 500
minimum: 1
type: integer
format: int32
default: 25
- name: limitToIds
in: query
description: The ids to limit the auction line item results to
schema:
type: array
items:
type: string
- name: offset
in: query
description: The (zero-based) starting offset into the collection.
schema:
maximum: 2147483647
minimum: 0
type: integer
format: int32
default: 0
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/EntityResourceCollectionOutcomeOfSponsoredProductsLineItemAndMetadata'
security:
- oauth:
- RetailMedia_Campaign_Read
post:
tags:
- Campaign
summary: /2026-07/retail-media/campaigns/{campaignId}/auction-line-items
description: Creates new auction line item with the specified settings
operationId: CreateAuctionLineItem
parameters:
- name: campaignId
in: path
description: The given campaign id
required: true
schema:
type: string
requestBody:
description: The line item settings to create a line item with
content:
application/json:
schema:
$ref: '#/components/schemas/ValueResourceInputOfSponsoredProductsLineItemCreateRequestModel'
required: true
responses:
'201':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/EntityResourceOutcomeOfSponsoredProductsLineItem'
security:
- oauth:
- RetailMedia_Campaign_Manage
/2026-07/retail-media/campaigns/{campaignId}/campaign-budget-overrides:
get:
tags:
- Campaign
summary: /2026-07/retail-media/campaigns/{campaignId}/campaign-budget-overrides
description: Get current campaign budget overrides by given campaign id.
operationId: GetCampaignBudgetOverrides
parameters:
- name: campaignId
in: path
description: Campaign id.
required: true
schema:
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/ValueResourceOutcomeOfCampaignBudgetOverrides'
security:
- oauth:
- RetailMedia_Campaign_Read
put:
tags:
- Campaign
summary: /2026-07/retail-media/campaigns/{campaignId}/campaign-budget-overrides
description: Update campaign budget overrides by given campaign id and new campaign budget overrides settings.
operationId: UpdateCampaignBudgetOverrides
parameters:
- name: campaignId
in: path
description: Campaign id.
required: true
schema:
type: string
requestBody:
description: New campaign budget overrides settings value resource input.
content:
application/json:
schema:
$ref: '#/components/schemas/ValueResourceInputOfCampaignBudgetOverrides'
required: true
responses:
'201':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/ValueResourceOutcomeOfCampaignBudgetOverrides'
security:
- oauth:
- RetailMedia_Campaign_Manage
/2026-07/retail-media/catalogs/{catalogId}/output:
get:
tags:
- Campaign
summary: /2026-07/retail-media/catalogs/{catalogId}/output
description: "Output the indicated catalog. Catalogs are only available for retrieval when their associated status request\r\nis at a Success status.\r\nProduces application/x-json-stream CatalogProduct json objects (first introduced in the 2021-07 version)."
operationId: GetCatalogOutput
parameters:
- name: catalogId
in: path
description: A catalog ID returned from an account catalog request.
required: true
schema:
type: string
responses:
'200':
description: Catalog download initiated.
content:
application/x-json-stream:
schema:
type: string
format: binary
'204':
description: Catalog has expired.
security:
- oauth:
- RetailMedia_Campaign_Read
/2026-07/retail-media/catalogs/{catalogId}/status:
get:
tags:
- Campaign
summary: /2026-07/retail-media/catalogs/{catalogId}/status
description: Check the status of a catalog request.
operationId: GetCatalogStatus
parameters:
- name: catalogId
in: path
description: A catalog ID returned from an account catalog request.
required: true
schema:
type: string
responses:
'200':
description: Catalog request found.
content:
application/json:
schema:
$ref: '#/components/schemas/JsonApiSingleResponseOfCatalogStatus'
security:
- oauth:
- RetailMedia_Campaign_Read
/2026-07/retail-media/categories:
get:
tags:
- Campaign
summary: /2026-07/retail-media/categories
description: Endpoint to search categories by text and retailer.
operationId: CategorySearch_GetApiExternalV1Categories
parameters:
- name: pageIndex
in: query
description: The start position in the overall list of matches. Must be zero or greater.
schema:
maximum: 500
minimum: 0
type: integer
format: int32
default: 0
- name: pageSize
in: query
description: The maximum number of results to return with each call. Must be greater than zero.
schema:
maximum: 100
minimum: 1
type: integer
format: int32
# --- truncated at 32 KB (209 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/hooklogic-criteo/refs/heads/main/openapi/hooklogic-criteo-campaign-api-openapi.yml