generated: '2026-08-12' method: generated source: openapi/cardlytics-campaign-build-api-openapi.yml, openapi/cardlytics-partner-api-openapi.yml, openapi/cardlytics-publisher-api-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: 86 by_action_class: acting: 36 connected: 50 by_consequence: write: 34 read: 50 safety-critical: 2 human_in_the_loop_required: 2 operations: - path: /v6/accounts/{accountId}/AdGroups/{adGroupId}/clone method: post 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 scope: - read - path: /v6/accounts/{accountId}/AdGroups/{adGroupId}/duplicate method: post 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 scope: - read - path: /v6/accounts/{accountId}/AdGroups/{adGroupId} method: get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none scope: - read - path: /v6/accounts/{accountId}/AdGroups/{adGroupId} method: patch 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 scope: - read - path: /v6/accounts/{accountId}/AdGroups/{adGroupId} method: delete 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 scope: - read - path: /v6/AdGroups/{adGroupId} method: get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none scope: - read - path: /v6/accounts/{accountId}/AdGroups method: get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none scope: - read - path: /v6/accounts/{accountId}/AdGroups method: post 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 scope: - read - path: /v6/AdGroups method: get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none scope: - read - path: /v6/accounts/{accountId}/AdGroups/{adGroupId}/validation method: get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none scope: - read - path: /v6/AdGroups/validation/rule-set method: get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none scope: - read - path: /v7/accounts/{accountId}/Ads/{adId} method: get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none scope: - read - path: /v7/accounts/{accountId}/Ads/{adId} method: patch 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 scope: - read - path: /v7/accounts/{accountId}/Ads/{adId} method: delete 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 scope: - read - path: /v7/Ads/{adId} method: get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none scope: - read - path: /v7/Ads/{adId}/RedeemingMerchants method: get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none scope: - read - path: /v7/accounts/{accountId}/Ads/{adId}/RedeemingMerchants method: post 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 scope: - read - path: /v7/accounts/{accountId}/Ads/{adId}/RedeemingMerchants method: put 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 scope: - read - path: /v7/accounts/{accountId}/Ads method: get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none scope: - read - path: /v7/accounts/{accountId}/Ads method: post 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 scope: - read - path: /v7/accounts/{accountId}/campaigns/{campaignId}/Ads method: get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none scope: - read - path: /v7/Ads method: get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none scope: - read - path: /v7/accounts/{accountId}/Ads/{adId}/duplicate method: post 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 scope: - read - path: /v7/accounts/{accountId}/Ads/{adId}/validation method: get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none scope: - read - path: /v7/Ads/validation/rule-set method: get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none scope: - read - path: /v6/AudienceReach/calculateAudienceReach method: post 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 scope: - read - path: /v8/accounts/{accountId}/Audiences method: get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none scope: - read - path: /v8/accounts/{accountId}/Audiences method: post 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 scope: - read - path: /v8/Audiences method: get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none scope: - read - path: /v8/accounts/{accountId}/Audiences/{audienceId} method: get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none scope: - read - path: /v8/accounts/{accountId}/Audiences/{audienceId} method: patch 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 scope: - read - path: /v8/Audiences/{audienceId} method: get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none scope: - read - path: /v8/accounts/{accountId}/Audiences/{audienceId}/validation method: get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none scope: - read - path: /v8/Audiences/validation/rule-set method: get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none scope: - read - path: /v5/accounts/{accountId}/AuditLogs method: get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none scope: - read - path: /v7/accounts/{accountId}/Campaigns method: get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none scope: - read - path: /v7/accounts/{accountId}/Campaigns method: post 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 scope: - read - path: /v7/Campaigns method: get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none scope: - read - path: /v7/accounts/{accountId}/Campaigns/{campaignId} method: get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none scope: - read - path: /v7/accounts/{accountId}/Campaigns/{campaignId} method: patch 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 scope: - read - path: /v7/accounts/{accountId}/Campaigns/{campaignId} method: delete 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 scope: - read - path: /v7/Campaigns/{campaignId} method: get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none scope: - read - path: /v7/accounts/{accountId}/Campaigns/{campaignId}/diff method: get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none scope: - read - path: /v7/accounts/{accountId}/Campaigns/{campaignId}/optimize method: patch 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 scope: - read - path: /v7/accounts/{accountId}/Campaigns/{campaignId}/status method: put 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 scope: - read - path: /v7/accounts/{accountId}/Campaigns/{campaignId}/versions method: get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none scope: - read - path: /v7/accounts/{accountId}/Campaigns/{campaignId}/versions/latest method: get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none scope: - read - path: /v7/accounts/{accountId}/Campaigns/{campaignId}/projection method: post 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 scope: - read - path: /v7/accounts/{accountId}/Campaigns/{campaignId}/duplicate method: post 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 scope: - read - path: /v7/accounts/{accountId}/Campaigns/{campaignId}/validation method: get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none scope: - read - path: /v7/Campaigns/validation/rule-set method: get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none scope: - read - path: /v7/Campaigns/count method: get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none scope: - read - path: /v6/Geo method: get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none scope: - read - path: /v6/Geo method: post 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 scope: - read - path: /v6/Geo/Country method: get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none scope: - read - path: /v6/Geo/DMA method: get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none scope: - read - path: /v6/Geo/Locality method: get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none scope: - read - path: /v6/Geo/PostalCode method: get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none scope: - read - path: /v6/Geo/Region method: get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none scope: - read - path: /v6/accounts/{accountId}/PricingModels/{pricingModelId} method: get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none scope: - read - path: /v6/accounts/{accountId}/PricingModels/{pricingModelId} method: patch 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 scope: - read - path: /v6/accounts/{accountId}/PricingModels/{pricingModelId} method: put 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 scope: - read - path: /v6/accounts/{accountId}/adGroups/{adGroupId}/PricingModels method: get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none scope: - read - path: /v6/accounts/{accountId}/PricingModels method: post 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 scope: - read - path: /v6/PurchaseCategories/{purchaseCategoryId} method: get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none scope: - read - path: /v6/PurchaseCategories method: get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none scope: - read - path: /v7/accounts/{accountId}/Rewards/{rewardId} method: get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none scope: - read - path: /v7/accounts/{accountId}/Rewards/{rewardId} method: patch 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 scope: - read - path: /v7/accounts/{accountId}/Rewards/{rewardId} method: put 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 scope: - read - path: /v7/Rewards/rms/{rmsRewardId} method: get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none scope: - read - path: /v7/accounts/{accountId}/ads/{adId}/Rewards method: get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none scope: - read - path: /v7/accounts/{accountId}/Rewards/{rewardId}/validation method: get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none scope: - read - path: /v7/Rewards/validation/rule-set method: get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none scope: - read - path: /v7/accounts/{accountId}/Rewards method: post 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 scope: - read - path: /api/v1/idp/oauth2/token method: post 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 scope: - openid - path: /api/v1/partner/merchants/{external_merchant_id} method: put 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 scope: - openid - path: /api/v1/partner/merchants/{external_merchant_id} method: delete 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 scope: - openid - path: /api/v1/partner/merchants/{external_merchant_id}/offers/{external_offer_id} method: put 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 scope: - openid - path: /api/v1/partner/merchants/{external_merchant_id}/offers/{external_offer_id} method: delete 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 scope: - openid - path: /api/v1/partner/merchants/{external_merchant_id}/reports method: post 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 scope: - openid - path: /api/v1/partner/redemptions method: get x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none scope: - openid - path: /v2/session/startSession method: post operationId: startSession x-agentic-access: action-class: acting consequence: safety-critical subject: required audience: null token: max-ttl: 120 exchange: true purpose-required: true proof-of-possession: true escalation: human-in-the-loop: required audit: required - path: /v2/ads/getAds method: post operationId: getAds x-agentic-access: action-class: acting consequence: safety-critical subject: required audience: null token: max-ttl: 120 exchange: true purpose-required: true proof-of-possession: true escalation: human-in-the-loop: required audit: required - path: /v2/customerProfile/getCustomerRewardSummary method: get operationId: getRewardsSummary x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v2/customerProfile/getCustomerProfile method: get operationId: getCustomerProfile x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v2/customerProfile/getCustomerAdRedemptions method: get operationId: getCustomerAdRedemptions x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none