Criteo · Agentic Access
Criteo Agentic Access
x-agentic-access
generated
Criteo exposes 33 API operations that an AI agent could call, of which 16 are state-changing ‘acting’ operations. This is a recommended x-agentic-access execution contract — the scope, audience, consequence tier, short-lived token constraints, and escalation each action should carry before it is handed to an autonomous agent.
By consequence: 17 read and 16 write.
Contracts are classified heuristically from the provider’s OpenAPI and refresh on every APIs.io network build; audience is bound per deployment. The model follows Curity’s Access Intelligence (apidays Munich 2026). Browse every provider’s agent contracts at agentic-access.apis.io.
AdvertisingAudiencesCampaignsCatalogCommerceDisplay AdvertisingMarketingMediaOAuth 2.0ReportingRetailRetail Media
Operations: 33
Acting: 16
Human-in-the-loop: 0
Method: generated
By consequence
read 17
write 16
Source
Agentic Access
generated: '2026-07-15'
method: generated
source: openapi/criteo-openapi.yml
description: Recommended x-agentic-access execution contracts, classified heuristically from
the OpenAPI. A governance starting point for exposing this API to AI agents — review and bind
audience per deployment. See research/curity/agentic-governance/.
summary:
operations: 33
by_action_class:
acting: 16
connected: 17
by_consequence:
write: 16
read: 17
human_in_the_loop_required: 0
operations:
- path: /oauth2/token
method: post
operationId: getToken
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /2026-01/retail-media/accounts
method: get
operationId: getAccounts
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /2026-01/retail-media/accounts/{accountId}
method: get
operationId: getAccount
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /2026-01/retail-media/account-management/accounts/{accountId}/brands/add
method: post
operationId: addBrandsToAccount
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /2026-01/retail-media/account-management/accounts/{accountId}/brands/remove
method: post
operationId: removeBrandsFromAccount
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /2026-01/retail-media/accounts/{accountId}/campaigns
method: get
operationId: getCampaignsByAccount
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /2026-01/retail-media/accounts/{accountId}/campaigns
method: post
operationId: createCampaign
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /2026-01/retail-media/campaigns/{campaignId}
method: get
operationId: getCampaign
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /2026-01/retail-media/campaigns/{campaignId}
method: patch
operationId: updateCampaign
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /2026-01/retail-media/campaigns/{campaignId}/preferred-line-items
method: get
operationId: getPreferredLineItems
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /2026-01/retail-media/campaigns/{campaignId}/preferred-line-items
method: post
operationId: createPreferredLineItem
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /2026-01/retail-media/campaigns/{campaignId}/auction-line-items
method: get
operationId: getAuctionLineItems
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /2026-01/retail-media/campaigns/{campaignId}/auction-line-items
method: post
operationId: createAuctionLineItem
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /2026-01/retail-media/line-items/{lineItemId}
method: get
operationId: getLineItem
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /2026-01/retail-media/line-items/{lineItemId}
method: patch
operationId: updateLineItem
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /2026-01/retail-media/line-items/{lineItemId}/products
method: get
operationId: getPromotedProducts
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /2026-01/retail-media/line-items/{lineItemId}/products/append
method: post
operationId: addPromotedProducts
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /2026-01/retail-media/line-items/{lineItemId}/products/delete
method: delete
operationId: removePromotedProducts
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /2026-01/retail-media/line-items/{lineItemId}/keywords
method: get
operationId: getKeywords
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /2026-01/retail-media/line-items/{lineItemId}/keywords/add-remove
method: post
operationId: bulkKeywords
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /2026-01/retail-media/accounts/{accountId}/balances
method: get
operationId: getBalances
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /2026-01/retail-media/accounts/{accountId}/balances
method: post
operationId: createBalance
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /2026-01/retail-media/balances/{balanceId}/campaigns
method: get
operationId: getCampaignsByBalance
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /2026-01/retail-media/reports/campaigns
method: post
operationId: createCampaignsReport
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /2026-01/retail-media/reports/line-items
method: post
operationId: createLineItemsReport
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /2026-01/retail-media/reports/{reportId}/status
method: get
operationId: getReportStatus
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /2026-01/retail-media/reports/{reportId}/output
method: get
operationId: getReportOutput
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /2026-01/retail-media/accounts/{accountId}/catalogs
method: post
operationId: createCatalog
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /2026-01/retail-media/catalogs/{catalogId}/status
method: get
operationId: getCatalogStatus
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /2026-01/retail-media/catalogs/{catalogId}/output
method: get
operationId: getCatalogOutput
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /2026-01/retail-media/categories
method: get
operationId: searchCategories
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /2026-01/retail-media/accounts/{accountId}/audience-segments/create
method: post
operationId: createAudienceSegment
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /2026-01/retail-media/accounts/{accountId}/audience-segments/search
method: get
operationId: searchAudienceSegments
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none