Charthop Agentic Access
Charthop exposes 738 API operations that an AI agent could call, of which 430 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: 308 read, 400 write, 19 physical, and 11 safety-critical.
11 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 | /oauth/org/{orgIdentifier}/app/{appUserId}/oauth/user | safety-critical | required |
| POST | /oauth/revoke | safety-critical | required |
| DELETE | /v1/app/org/{orgId}/install/{appUserId}/connections | safety-critical | required |
| POST | /v1/app/org/{orgId}/install/{appUserId}/disable-sync | safety-critical | required |
| DELETE | /v1/org/{orgId}/band/reset | safety-critical | required |
| POST | /v1/org/{orgId}/field/remove-overrides | safety-critical | required |
| POST | /v1/org/{orgId}/job-code/match/{processId}/reset | safety-critical | required |
| POST | /v1/org/{orgId}/process/{createIdOverride} | safety-critical | required |
| POST | /v1/user/sendreset | safety-critical | required |
| DELETE | /v1/user/token | safety-critical | required |
| DELETE | /v1/user/{userId}/token | safety-critical | required |
| POST | /oauth/sendLoginToken | physical | conditional |
| POST | /v1/app/notify | physical | conditional |
| POST | /v1/customer/{customerId}/billing/checkout | physical | conditional |
| POST | /v1/org/{orgId}/ai/chat/{chatId}/message | physical | conditional |
| POST | /v1/org/{orgId}/ai/chat/{chatId}/message/{messageId}/feedback | physical | conditional |
| POST | /v1/org/{orgId}/approval-chain/{approvalChainId}/request/{approvalRequestId}/send-reminder | physical | conditional |
| POST | /v1/org/{orgId}/category-sort | physical | conditional |
| PUT | /v1/org/{orgId}/category-sort | physical | conditional |
| PATCH | /v1/org/{orgId}/category-sort | physical | conditional |
| DELETE | /v1/org/{orgId}/category-sort | physical | conditional |
| POST | /v1/org/{orgId}/category-sort/upsert | physical | conditional |
| POST | /v1/org/{orgId}/comp-review/{compReviewId}/send-reminder-email | physical | conditional |
| POST | /v1/org/{orgId}/event/{eventId}/notify | physical | conditional |
| POST | /v1/org/{orgId}/form/{formId}/collect | physical | conditional |
Source
Agentic Access
generated: '2026-07-18'
method: generated
source: openapi/charthop-openapi-original.json
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: 738
by_action_class:
connected: 308
acting: 430
by_consequence:
read: 308
write: 400
safety-critical: 11
physical: 19
human_in_the_loop_required: 11
operations:
- path: /.well-known/oauth-authorization-server
method: get
operationId: authorizationServerMetadata
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /.well-known/oauth-authorization-server/mcp/{agent}
method: get
operationId: mcpAuthorizationServerMetadataNoOrg
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /.well-known/oauth-authorization-server/mcp/{agent}/{orgId}
method: get
operationId: mcpAuthorizationServerMetadata
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /.well-known/oauth-protected-resource/mcp/{agent}
method: get
operationId: mcpProtectedResourceMetadataNoOrg
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /.well-known/oauth-protected-resource/mcp/{agent}/{orgId}
method: get
operationId: mcpProtectedResourceMetadata
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /.well-known/security.txt
method: get
operationId: getSecurityTxt
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /mcp/{agent}
method: post
operationId: handleMessageNoOrg
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: /mcp/{agent}
method: get
operationId: streamNoOrg
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /mcp/{agent}/{orgId}
method: post
operationId: handleMessageForOrg
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: /mcp/{agent}/{orgId}
method: get
operationId: stream
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /oauth/app/{appName}
method: get
operationId: handleRedirect
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /oauth/credentials
method: post
operationId: issueAccessTokenFromCredentials
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: /oauth/join
method: post
operationId: join
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: /oauth/loginWithToken
method: post
operationId: issueAccessTokenFromLoginToken
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: /oauth/mcp/approve
method: post
operationId: approveMcpGrant
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: /oauth/mcp/grant-info
method: get
operationId: getMcpGrantInfo
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /oauth/org/{orgIdentifier}/app/{appName}/{appUserId}
method: get
operationId: getOauthConnectUri
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /oauth/org/{orgIdentifier}/app/{appUserId}/oauth/connection
method: get
operationId: getAppOauthConnection
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /oauth/org/{orgIdentifier}/app/{appUserId}/oauth/user
method: get
operationId: listAppOauthUserConnections
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /oauth/org/{orgIdentifier}/app/{appUserId}/oauth/user
method: delete
operationId: revokeAppOauthTokens
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: /oauth/revoke
method: post
operationId: revokeToken
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: /oauth/sendLoginToken
method: post
operationId: sendLoginToken
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: /oauth/sso/{idp}/access-token
method: get
operationId: getIdpAccessTokenResponse
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /oauth/sso/{idp}/login
method: get
operationId: ssoAuthLogin
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /oauth/token
method: post
operationId: issueAccessToken
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: /oauth/token
method: delete
operationId: deleteToken
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: /oauth/token/attenuate
method: post
operationId: attenuateToken
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: /oauth/token/sso/{type}
method: post
operationId: issueSsoToken
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: /oauth/token/view
method: post
operationId: issueViewToken
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: /org/{slug}
method: get
operationId: getOrgBySlugNoAuth
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /saml/org/{orgId}/xml-cert
method: post
operationId: uploadXmlCertificate
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: /saml/org/{orgId}/xml-cert
method: get
operationId: getXmlCertificate
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /saml/sso/{org}
method: post
operationId: sso
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: /saml/{org}/login
method: post
operationId: redirectToIdp
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/ai-credit-limit
method: get
operationId: findLimits
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/ai-credit-limit
method: post
operationId: createLimit
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/ai-credit-limit/by-customer-month
method: get
operationId: getLimitByCustomerMonth
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/ai-credit-limit/export-report
method: post
operationId: exportReport
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/ai-credit-limit/{id}
method: get
operationId: getLimit
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/ai-credit-limit/{id}
method: patch
operationId: updateLimit
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/ai-credit-limit/{id}
method: delete
operationId: deleteLimit
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/ai-hint
method: get
operationId: findHints
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/ai-hint
method: post
operationId: createHint
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/ai-hint/generate
method: get
operationId: generateHint
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/ai-hint/{id}
method: get
operationId: getHint
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/ai-hint/{id}
method: patch
operationId: updateHint
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/ai-hint/{id}
method: delete
operationId: deleteHint
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/ai-prompt
method: get
operationId: findPrompts
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/ai-prompt
method: post
operationId: createPrompt
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/ai-prompt/test
method: post
operationId: testPrompt
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/ai-prompt/types
method: get
operationId: listPromptTypes
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/ai-prompt/{id}
method: get
operationId: getPrompt
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/ai-prompt/{id}
method: patch
operationId: updatePrompt
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/ai-prompt/{id}
method: delete
operationId: deletePrompt
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/app
method: get
operationId: findGlobalApps
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/app
method: post
operationId: createApp
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/app-config
method: post
operationId: createAppConfig
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/app-config/{appId}
method: get
operationId: getAppConfig
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/app-config/{appId}/{userId}
method: get
operationId: getCombinedAppConfig
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/app-config/{appId}/{userId}
method: patch
operationId: updateAppConfig
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/app/install/{appId}
method: get
operationId: getActiveAppInstalls
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/app/name/{appName}
method: get
operationId: getAppByName
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/app/notify
method: post
operationId: sendNotification
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: /v1/app/org/{orgId}
method: get
operationId: findApps
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/app/org/{orgId}/install
method: get
operationId: findInstalledApps
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/app/org/{orgId}/install
method: post
operationId: installApp
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/app/org/{orgId}/install/name/{appName}
method: get
operationId: getInstalledAppByName
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/app/org/{orgId}/install/validate
method: post
operationId: validateInstallApp
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/app/org/{orgId}/install/{appUserId}
method: get
operationId: getInstalledApp
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/app/org/{orgId}/install/{appUserId}
method: patch
operationId: updateInstalledApp
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/app/org/{orgId}/install/{appUserId}
method: delete
operationId: uninstallApp
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/app/org/{orgId}/install/{appUserId}/api-operation/{operation}
method: post
operationId: testApiOperation
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/app/org/{orgId}/install/{appUserId}/code
method: post
operationId: getAuthorizationCode
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/app/org/{orgId}/install/{appUserId}/connections
method: get
operationId: listMcpConnections
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/app/org/{orgId}/install/{appUserId}/connections
method: delete
operationId: revokeMcpConnections
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/app/org/{orgId}/install/{appUserId}/disable-sync
method: post
operationId: disableSync
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/app/org/{orgId}/install/{appUserId}/installdata/{installDataName}
method: get
operationId: getAppInstallData
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/app/org/{orgId}/install/{appUserId}/oauth-token/refresh
method: post
operationId: refreshOauthToken
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/app/org/{orgId}/install/{appUserId}/run
method: post
operationId: runInstalledApp
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/app/org/{orgId}/install/{appUserId}/token
method: get
operationId: getAccessToken
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/app/org/{orgId}/install/{appUserId}/token
method: post
operationId: generateAccessToken
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/app/{appId}
method: get
operationId: getApp
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/app/{appId}
method: patch
operationId: updateApp
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/app/{appId}
method: delete
operationId: deleteApp
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/customer
method: get
operationId: findCustomers
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/customer
method: post
operationId: createCustomer
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/customer/{customerId}
method: get
operationId: getCustomer
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/customer/{customerId}
method: patch
operationId: updateCustomer
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/customer/{customerId}/billing
method: get
operationId: getBilling
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/customer/{customerId}/billing/cancel
method: post
operationId: cancelSubscription
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/customer/{customerId}/billing/checkout
method: post
operationId: checkout
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: /v1/customer/{customerId}/invoices
method: get
operationId: getCustomerInvoices
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/customer/{customerId}/subscription
method: get
operationId: getCharthopSubscription
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/customer/{customerId}/subscription
method: patch
operationId: updateSubscription
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/email-template
method: post
operationId: createEmailTemplate
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/email-template/essential
method: get
operationId: getEssentialEmailTemplates
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/email-template/name/{name}
method: get
operationId: getEmailTemplateByName
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/email-template/non-essential
method: get
operationId: getNonEssentialEmailTemplates
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/email-template/{emailTemplateId}
method: patch
operationId: updateEmailTemplate
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/legaldoc
method: post
operationId: createLegalDoc
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/legaldoc/{name}
method: get
operationId: getLegalDoc
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/media
method: post
operationId: uploadGlobalMedia
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/media/{mediaId}
method: get
operationId: getGlobalMedia
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/org
method: get
operationId: findOrgs
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/org
method: post
operationId: createOrg
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/org/app-install-code/validate
method: post
operationId: validateAppInstallAuthorizationCode
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/org/slug/{slug}
method: get
operationId: getOrgBySlug
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/org/{orgId}
method: get
operationId: getOrg
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/org/{orgId}
method: patch
operationId: updateOrg
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/org/{orgId}/access
method: get
operationId: getUserAccess
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/org/{orgId}/access/entity/{type}
method: get
operationId: getEntityAccess
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/org/{orgId}/access/ui
method: get
operationId: getUiAccess
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/org/{orgI
# --- truncated at 32 KB (219 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/charthop/refs/heads/main/agentic-access/charthop-agentic-access.yml