Dotdigital Agentic Access
Dotdigital exposes 522 API operations that an AI agent could call, of which 233 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: 289 read, 206 write, 25 physical, and 2 safety-critical.
2 operations are classed safety-critical and should require human-in-the-loop approval at runtime.
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.
By consequence
Highest-consequence actions
The physical and safety-critical operations an agent could invoke — the ones that most warrant scoped tokens, tight TTLs, and escalation. Full per-operation contracts are in the source below.
| Method | Path | Consequence | Human-in-loop |
|---|---|---|---|
| DELETE | /cpaas/chats/{chatId}/typing | safety-critical | required |
| DELETE | /cpaas/conversations/{conversationId}/typing | safety-critical | required |
| POST | /cpaas/chats/{chatId}/form | physical | conditional |
| POST | /cpaas/chats/{chatId}/messages | physical | conditional |
| POST | /cpaas/conversations/{conversationId}/messages | physical | conditional |
| POST | /cpaas/messages | physical | conditional |
| POST | /cpaas/messages/batch | physical | conditional |
| PUT | /cpaas/profiles/{id}/rels/link/{linkedId} | physical | conditional |
| DELETE | /cpaas/profiles/{id}/rels/link/{linkedId} | physical | conditional |
| PUT | /cpaas/profiles/{id}/rels/primary/{linkedId} | physical | conditional |
| DELETE | /cpaas/profiles/{id}/rels/primary/{linkedId} | physical | conditional |
| POST | /marketing-email/v3/batch | physical | conditional |
| POST | /marketing-email/v3/send | physical | conditional |
| POST | /v2/campaigns/send | physical | conditional |
| POST | /v2/campaigns/send | physical | conditional |
| POST | /v2/campaigns/send-time-optimised | physical | conditional |
| POST | /v2/campaigns/send-time-optimised | physical | conditional |
| POST | /v2/email | physical | conditional |
| POST | /v2/email | physical | conditional |
| POST | /v2/email/batch | physical | conditional |
| POST | /v2/email/batch | physical | conditional |
| POST | /v2/email/triggered-campaign | physical | conditional |
| POST | /v2/email/triggered-campaign | physical | conditional |
| POST | /v2/email/triggered-campaign/batch | physical | conditional |
| POST | /v2/email/triggered-campaign/batch | physical | conditional |
Source
Agentic Access
generated: '2026-08-13'
method: generated
source: openapi/dotdigital-accounts-and-utilities-openapi.yml, openapi/dotdigital-analytics-openapi.yml,
openapi/dotdigital-campaign-templates-openapi.yml, openapi/dotdigital-chat-config-openapi.yml,
openapi/dotdigital-chat-message-openapi.yml, openapi/dotdigital-chat-openapi.yml, openapi/dotdigital-chat-presence-openapi.yml,
openapi/dotdigital-configuration-service-openapi.yml, openapi/dotdigital-contact-data-fields-openapi.yml,
openapi/dotdigital-contacts-openapi.yml, openapi/dotdigital-content-openapi.yml, openapi/dotdigital-conversation-message-openapi.yml,
openapi/dotdigital-conversation-openapi.yml, openapi/dotdigital-cpaas-openapi.yml, openapi/dotdigital-data-firehose-openapi.yml,
openapi/dotdigital-documents-openapi.yml, openapi/dotdigital-ecommerce-openapi.yml, openapi/dotdigital-email-campaigns-openapi.yml,
openapi/dotdigital-email-contacts-openapi.yml, openapi/dotdigital-events-openapi.yml, openapi/dotdigital-images-openapi.yml,
openapi/dotdigital-insight-and-transactional-data-openapi.yml, openapi/dotdigital-insight-data-service-openapi.yml,
openapi/dotdigital-lists-address-books-openapi.yml, openapi/dotdigital-marketing-email-openapi.yml,
openapi/dotdigital-message-history-openapi.yml, openapi/dotdigital-message-rules-openapi.yml,
openapi/dotdigital-omnichannel-openapi.yml, openapi/dotdigital-pages-and-forms-openapi.yml,
openapi/dotdigital-phone-number-validation-openapi.yml, openapi/dotdigital-preferences-and-subscriptions-openapi.yml,
openapi/dotdigital-product-recommendations-openapi.yml, openapi/dotdigital-profile-openapi.yml,
openapi/dotdigital-programs-openapi.yml, openapi/dotdigital-scoring-openapi.yml, openapi/dotdigital-segments-openapi.yml,
openapi/dotdigital-session-openapi.yml, openapi/dotdigital-sms-campaigns-openapi.yml, openapi/dotdigital-templates-openapi.yml,
openapi/dotdigital-transactional-email-openapi.yml, openapi/dotdigital-v2-api-full-openapi.yml,
openapi/dotdigital-webhook-openapi.yml, openapi/dotdigital-whatsapp-channel-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: 522
by_action_class:
connected: 289
acting: 233
by_consequence:
read: 289
write: 206
physical: 25
safety-critical: 2
human_in_the_loop_required: 2
operations:
- path: /v2/account-info
method: get
operationId: get-account-information
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/server-time
method: get
operationId: get-server-time
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/accounts/empty-recycle-bin/
method: post
operationId: empty-recycle-bin
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: /cpaas/analytics/conversationmessages
method: get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /cpaas/analytics/chats
method: get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /cpaas/analytics/chats/live
method: get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /cpaas/analytics/messages
method: get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /cpaas/analytics/messages/metrics
method: get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /cpaas/analytics/sessions
method: get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /cpaas/analytics/sms/tracking
method: get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /cpaas/analytics/sms/verify
method: get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /cpaas/analytics/sms/inbound
method: get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /cpaas/analytics/sms/outbound
method: get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /cpaas/analytics/whatsapp/conversations
method: get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /cpaas/analytics/whatsapp/dailymessagingusage
method: get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/templates
method: post
operationId: create-template
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: /v2/templates
method: get
operationId: get-templates
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/templates/{id}
method: get
operationId: get-template-by-id
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/templates/{id}
method: put
operationId: update-template
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: /cpaas/chat/config
method: get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /cpaas/chat/config/teams/{teamId}
method: get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /cpaas/chat/config/teams/{teamId}
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
- path: /cpaas/chat/config/teams/{teamId}/appMessaging
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
- path: /cpaas/chat/config/teams/{teamId}/appMessaging
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
- path: /cpaas/chat/config/teams/{teamId}/settings
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
- path: /cpaas/chat/config/teams/{teamId}/settings
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
- path: /cpaas/chats/{chatId}/events
method: get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /cpaas/chats/{chatId}/messages
method: get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /cpaas/chats/{chatId}/messages
method: post
x-agentic-access:
action-class: acting
consequence: physical
subject: required
audience: null
token:
max-ttl: 300
exchange: true
purpose-required: true
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /cpaas/chats/{chatId}/messages/statusupdates
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
- path: /cpaas/chats/{chatId}
method: get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /cpaas/chats/{chatId}
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
- path: /cpaas/chats/{chatId}
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
- path: /cpaas/chats/{chatId}/assign
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
- path: /cpaas/chats/{chatId}/close
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
- path: /cpaas/chats/{chatId}/channel
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
- path: /cpaas/chats/{chatId}/form
method: post
x-agentic-access:
action-class: acting
consequence: physical
subject: required
audience: null
token:
max-ttl: 300
exchange: true
purpose-required: true
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /cpaas/chats
method: get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /cpaas/chats
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
- path: /cpaas/chats/{chatId}/typing
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
- path: /cpaas/chats/{chatId}/typing
method: delete
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: /cpaas/chats/{chatId}/participants
method: get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /cpaas/presence
method: get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /cpaas/presence/appmessaging
method: get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /configuration/v3/customIdentifiers
method: get
operationId: getCustomIdentifiers
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /configuration/v3/customIdentifiers
method: post
operationId: createCustomIdentifier
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: /configuration/v3/customIdentifiers/{name}
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
- path: /v2/data-fields
method: post
operationId: create-contact-data-field
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: /v2/data-fields
method: get
operationId: get-contact-data-fields
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/data-fields/{name}
method: delete
operationId: delete-contact-data-field
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: /contacts/v3
method: get
operationId: getContacts
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /contacts/v3
method: post
operationId: createContact
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: /contacts/v3/delete
method: post
operationId: deleteContacts
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: /contacts/v3/delete/{deleteId}
method: get
operationId: getDeleteStatus
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /contacts/v3/import
method: put
operationId: importContacts
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: /contacts/v3/import/{importId}
method: get
operationId: getImportStatus
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /contacts/v3/{identifier}/{value}
method: get
operationId: getContact
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /contacts/v3/{identifier}/{value}
method: put
operationId: replaceContact
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: /contacts/v3/{identifier}/{value}
method: delete
operationId: deleteContact
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: /contacts/v3/{identifier}/{value}
method: patch
operationId: importContact
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: /cpaas/content
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
- path: /cpaas/content/{fileId}
method: get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /cpaas/content/{fileId}
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
- path: /cpaas/conversations/{conversationId}/events
method: get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /cpaas/conversations/{conversationId}/messages
method: get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /cpaas/conversations/{conversationId}/messages
method: post
x-agentic-access:
action-class: acting
consequence: physical
subject: required
audience: null
token:
max-ttl: 300
exchange: true
purpose-required: true
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /cpaas/conversations/{conversationId}/messages/statusupdates
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
- path: /cpaas/conversations/{conversationId}
method: get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /cpaas/conversations/{conversationId}
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
- path: /cpaas/conversations/{conversationId}
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
- path: /cpaas/conversations
method: get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /cpaas/conversations
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
- path: /cpaas/conversations/{conversationId}/typing
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
- path: /cpaas/conversations/{conversationId}/typing
method: delete
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: /cpaas/conversations/{conversationId}/participants
method: get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /cpaas/conversations/{conversationId}/participants
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
- path: /cpaas/conversations/{conversationId}/participants
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
- path: /sms/dedicatedNumbers
method: get
operationId: get-sms-phone-number
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /sms/shortcodes
method: get
operationId: get-sms-shortcodes
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /sms/keywords
method: get
operationId: get-sms-keywords
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /channels/facebook/state
method: post
operationId: facebook-meta-data-service
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: /data-firehose/v3/configurations/{id}
method: get
operationId: getConfiguration
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /data-firehose/v3/configurations/{id}
method: put
operationId: updateConfiguration
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: /data-firehose/v3/configurations/{id}
method: delete
operationId: deleteConfiguration
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: /data-firehose/v3/configurations/{id}/status/{newStatus}
method: put
operationId: updateStatus
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: /data-firehose/v3/configurations
method: post
operationId: addConfiguration
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: /v2/document-folders/{id}
method: post
operationId: create-document-folder
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: /v2/document-folders
method: get
operationId: get-document-folders
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/document-folders/{id}/documents
method: get
operationId: get-documents-in-folder
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/document-folders/{id}/documents
method: post
operationId: upload-document
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: /v2/ecommerce/orders
method: get
operationId: get-orders-since-date
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/campaigns
method: post
operationId: create-campaign
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: /v2/campaigns
method: get
operationId: get-all-campaigns
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/campaigns/split-test
method: post
operationId: create-split-test-campaign
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: /v2/campaigns/{id}
method: put
operationId: update-campaign
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: /v2/campaigns/{id}
method: delete
operationId: delete-campaign
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: /v2/campaigns/{id}
method: get
operationId: get-campaign
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/campaigns/{id}/copy
method: post
operationId: copy-campaign
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: /v2/campaigns/send
method: post
operationId: send-campaign
x-agentic-access:
action-class: acting
consequence: physical
subject: required
audience: null
token:
max-ttl: 300
exchange: true
purpose-required: true
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /v2/campaigns/send-time-optimised
method: post
operationId: send-time-optimised-campaign
x-agentic-access:
action-class: acting
consequence: physical
subject: required
audience: null
token:
max-ttl: 300
exchange: true
purpose-required: true
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /v2/campaigns/send/{id}
method: get
operationId: get-campaign-send-status
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/campaigns/{campaignID}/attachments
method: post
operationId: add-campaign-attachment
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: /v2/campaigns/{campaignID}/attachments
method: get
operationId: get-campaign-attachments
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/campaigns/{campaignID}/attachments/{documentID}
method: delete
operationId: remove-campaign-attachment
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: /v2/campaigns/filtered
method: get
operationId: get-all-campaigns-with-filters
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/campaigns/{id}/with-details
method: get
operationId: get-campaign-with-details
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/campaigns/{id}/summary
method: get
operationId: get-campaign-summary
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/campaigns/{id}/opens
method: get
operationId: get-campaign-opens
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/campaigns/{campaignID}/activities/{contactID}/opens
method: get
operationId: get-campaign-opens-for-a-contact
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/campaigns/{campaignID}/activities/{contactID}
method: get
operationId: get-campaign-activity-for
# --- truncated at 32 KB (151 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/dotdigital/refs/heads/main/agentic-access/dotdigital-agentic-access.yml