generated: '2026-07-15' method: generated source: openapi/suprsend-rest-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: 122 by_action_class: acting: 70 connected: 52 by_consequence: write: 66 read: 52 safety-critical: 4 human_in_the_loop_required: 4 operations: - path: /event/ method: post operationId: event-api 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: /v1/tenant/{tenant_id}/ method: post operationId: create-tenants 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: /v1/tenant/{tenant_id}/ method: get operationId: get-tenant x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/tenant/{tenant_id}/ method: delete operationId: delete-tenant 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: /v1/tenant/ method: get operationId: get-tenant-list x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/subscriber_list/{list_id}/subscriber/remove/ method: post operationId: remove-users-from-list 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: /v1/subscriber_list/ method: get operationId: get-all-lists x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/subscriber_list/ method: post operationId: create-list 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: /{workspace_key}/trigger/ method: post operationId: dynamic-workflow-trigger 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: /v1/user/{distinct_id}/preference/category/ method: get operationId: get-user-preference-all-categories x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/subscriber_list/{list_id}/subscriber/add/ method: post operationId: add-subscribers-to-list 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: /v1/subscriber_list/{list_id}/ method: get operationId: get-list x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /{workspace_key}/broadcast/ method: post operationId: trigger-broadcast 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: /v1/user/{distinct_id}/preference/channel_preference/ method: get operationId: get-user-preference-channel x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/user/{distinct_id}/preference/channel_preference/ method: patch operationId: update-user-preference-channel 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: /v1/user/{distinct_id}/preference/category/{category_slug}/ method: patch operationId: update-user-preference-category 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: /v1/user/{distinct_id}/preference/category/{category_slug}/ method: get operationId: get-user-preferences-single-category x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/tenant/{tenant_id}/category/{category_slug}/ method: patch operationId: update-brand-default-preference 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: /v1/subscriber_list/{list_id}/delete/ method: patch operationId: delete-list 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: /v1/tenant/{tenant_id}/preference/ method: get operationId: get-tenant-full-preference x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/tenant/{tenant_id}/preference/category/ method: get operationId: get-tenant-preference-all-categories x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/tenant/{tenant_id}/preference/category/{category}/ method: get operationId: get-tenant-preference-single-category x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/tenant/{tenant_id}/preference/category/{category}/ method: patch operationId: update-tenant-preference-single-category 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: /v1/tenant/{tenant_id}/category/ method: get operationId: get-tenant-default-preference x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/subscriber_list/{list_id}/version/{version_id}/subscriber/add/ method: post operationId: add-subscribers-to-draft-list 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: /v1/subscriber_list/{list_id}/version/{version_id}/delete/ method: patch operationId: delete-draft-list 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: /v1/template/{template_slug}/ method: get operationId: fetch-template-details x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/subscriber_list/{list_id}/version/{version_id}/finish_sync/ method: patch operationId: finish-sync 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: /v1/subscriber_list/{list_id}/version/{version_id}/subscriber/remove/ method: post operationId: remove-subscribers-from-draft-list 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: /v1/subscriber_list/{list_id}/start_sync/ method: post operationId: start-sync 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: /v1/template/{template_slug}/channel/{channel_slug}/ method: get operationId: fetch-template-details-channel x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/template/ method: get operationId: fetch-template-list x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /trigger/ method: post operationId: trigger-workflow-api 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: /v1/workflow_run/cancel/ method: post operationId: cancel-workflow 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: /v1/broadcast_run/cancel/ method: post operationId: cancel-broadcast 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: /v1/bulk/user/preference/ method: patch operationId: bulk-update-user-preference 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: /v1/bulk/user/preference/reset/ method: patch operationId: reset-user-preferences 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: /v1/user/{distinct_id}/preference/ method: get operationId: get-user-full-preference x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/user/{distinct_id}/preference/ method: patch operationId: update-user-full-preference 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: /v1/subscriber_list/{list_id}/subscriber/ method: get operationId: get-subscriber-list-users x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/object/{object_type}/{id}/ method: post operationId: create-update-objects 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: /v1/object/{object_type}/{id}/ method: get operationId: get-object-by-id x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/object/{object_type}/{id}/ method: delete operationId: delete-object 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: /v1/object/{object_type}/{id}/ method: patch operationId: edit-object-profile 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: /v1/object/{object_type}/{id}/subscription/ method: post operationId: add-object-subscription 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: /v1/object/{object_type}/{id}/subscription/ method: get operationId: list-object-subscriptions x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/object/{object_type}/{id}/subscription/ method: delete operationId: delete-object-subscriptions 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: /v1/object/{object_type}/ method: get operationId: list-objects-by-type x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/object/{object_type}/{id}/preference/category/{category_slug}/ method: patch operationId: object-preference-category 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: /v1/object/{object_type}/{id}/preference/category/{category_slug}/ method: get operationId: fetch-object-preference-single-category x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/object/{object_type}/{id}/preference/channel_preference/ method: patch operationId: object-preference-channel 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: /v1/object/{object_type}/{id}/preference/channel_preference/ method: get operationId: fetch-object-preference-all-channels x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/object/{object_type}/{id}/preference/ method: get operationId: fetch-object-full-preference x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/object/{object_type}/{id}/preference/ method: patch operationId: update-object-full-preference 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: /v1/object/{object_type}/{id}/preference/category/ method: get operationId: fetch-object-preference-all-categories x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/user/{distinct_id}/ method: post operationId: create-update-users 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: /v1/user/{distinct_id}/ method: get operationId: fetch-user-profile x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/user/{distinct_id}/ method: delete operationId: delete-user 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: /v1/user/{distinct_id}/ method: patch operationId: edit-user-profile 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: /v1/user/ method: get operationId: list-users x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/user/{distinct_id}/merge/ method: post operationId: merge-users 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: /v1/user/{distinct_id}/subscribed_to/object/ method: get operationId: fetch-user-object-subscriptions x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/user/{distinct_id}/subscribed_to/list/ method: get operationId: fetch-user-list-subscriptions x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/object/{object_type}/{id}/subscribed_to/object/ method: get operationId: fetch-object-subscriptions x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/message/ method: get operationId: list-messages x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/bulk/message/ method: patch operationId: bulk-update-messages 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: /v1/workspace/ method: get operationId: list-workspaces x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/workspace/ method: post operationId: create-workspace 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: /v1/{workspace}/ws_api_key/ method: get operationId: list-workspace-api-keys x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/{workspace}/ws_api_key/ method: post operationId: create-workspace-api-key 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: /v1/{workspace}/ws_api_key/{api_key_id}/ method: delete operationId: disable-workspace-api-key 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: /v1/{workspace}/ws_public_key/ method: get operationId: list-workspace-public-keys x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/{workspace}/ws_public_key/ method: post operationId: create-workspace-public-key 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: /v1/{workspace}/ws_public_key/{public_key_id}/ method: patch operationId: patch-workspace-public-key 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: /v1/{workspace}/ws_public_key/{public_key_id}/ method: delete operationId: delete-workspace-public-key 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: /v1/{workspace}/ws_public_key/{public_key_id}/rotate/ method: patch operationId: rotate-workspace-public-key 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: /v1/{workspace}/ws_signing_key/ method: get operationId: list-workspace-signing-keys x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/{workspace}/ws_signing_key/ method: post operationId: create-workspace-signing-key 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: /v1/{workspace}/ws_signing_key/{signing_key_uid}/ method: delete operationId: delete-workspace-signing-key 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: /v1/{workspace}/ws_signing_key/{signing_key_uid}/roll/ method: post operationId: roll-workspace-signing-key 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: /v1/{workspace}/workflow/ method: get operationId: list-workflows x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/{workspace}/workflow/{slug}/ method: get operationId: get-workflow x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/{workspace}/workflow/{slug}/ method: post operationId: upsert-workflow 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: /v1/{workspace}/workflow/{slug}/ method: delete operationId: delete-workflow 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: /v1/{workspace}/workflow/{slug}/commit/ method: patch operationId: commit-workflow 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: /v1/{workspace}/workflow/{slug}/enable/ method: patch operationId: toggle-workflow 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: /v1/{workspace}/schema/ method: get operationId: list-schemas x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/{workspace}/schema/{schema_slug}/ method: get operationId: get-schema x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/{workspace}/schema/{schema_slug}/ method: post operationId: upsert-schema 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: /v1/{workspace}/schema/{schema_slug}/commit/ method: patch operationId: commit-schema 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: /v1/{workspace}/event/ method: get operationId: list-events x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/{workspace}/event/ method: post operationId: create-event 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: /v1/{workspace}/event/{url_encoded_event_name}/ method: get operationId: get-event x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/{workspace}/event/{url_encoded_event_name}/ method: patch operationId: update-event 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: /v1/{workspace}/event/{url_encoded_event_name}/linked_workflows/ method: get operationId: get-linked-workflows x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/{workspace}/event/{url_encoded_event_name}/delink_schema/ method: patch operationId: delink-event-schema 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: /v1/{workspace}/preference_category/ method: get operationId: get-category x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/{workspace}/preference_category/ method: post operationId: create-update-category 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: /v1/{workspace}/preference_category/commit/ method: patch operationId: commit-category 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: /v1/{workspace}/preference_category/translation/locale/ method: get operationId: list-category-translation-locales x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/{workspace}/preference_category/translation/content/{locale}/ method: get operationId: get-category-translation x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/{workspace}/preference_category/translation/content/{locale}/ method: post operationId: add-category-translation 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: /v1/{workspace}/preference_category/translation/content/{locale}/ method: delete operationId: delete-category-translation 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: /v1/{workspace}/translation/ method: get operationId: list-translations x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/{workspace}/translation/content/{locale_file}/ method: post operationId: add-translation 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: /v1/{workspace}/translation/content/{locale_file}/ method: get operationId: get-translation x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/{workspace}/translation/content/{locale_file}/ method: delete operationId: delete-translation 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: /v1/{workspace}/translation/version/{version}/ method: get operationId: get-translation-history x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/{workspace}/translation/version/{version_no}/rollback/ method: post operationId: rollback-translation 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: /v1/{workspace}/translation/commit/ method: patch operationId: commit-translation 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/{workspace}/template/ method: get operationId: list-templates-v2 x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v2/{workspace}/template/{template_slug}/ method: get operationId: get-template-v2 x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v2/{workspace}/template/{template_slug}/ method: post operationId: upsert-template-v2 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/{workspace}/template/{template_slug}/variant/ method: get operationId: list-all-variants-v2 x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v2/{workspace}/template/{template_slug}/channel/{channel}/variant/ method: get operationId: list-channel-variants-v2 x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v2/{workspace}/template/{template_slug}/channel/{channel}/variant/{variant_id}/ method: get operationId: get-variant-v2 x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v2/{workspace}/template/{template_slug}/channel/{channel}/variant/{variant_id}/ method: post operationId: upsert-variant-v2 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/{workspace}/template/{template_slug}/mock_data/ method: get operationId: get-mock-data-v2 x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v2/{workspace}/template/{template_slug}/mock_data/ method: patch operationId: update-mock-data-v2 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/{workspace}/template/{template_slug}/commit/ method: patch operationId: commit-template-v2 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/{workspace}/template/{template_slug}/channel/{channel}/variant/{variant_id}/discard/ method: patch operationId: discard-variant-v2 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/{workspace}/template/{template_slug}/channel/{channel}/variant/{variant_id}/vendor_approval/ method: patch operationId: vendor-approval-v2 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