Astronomer Agentic Access
Astronomer exposes 75 API operations that an AI agent could call, of which 43 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: 32 read, 32 write, 9 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 | /organizations/{organizationId}/deployments/{deploymentId}/hibernation-override | safety-critical | required |
| POST | /organizations/{organizationId}/deployments/{deploymentId}/hibernation-override | safety-critical | required |
| POST | /organizations/{organizationId}/deployments | physical | conditional |
| DELETE | /organizations/{organizationId}/deployments/{deploymentId} | physical | conditional |
| POST | /organizations/{organizationId}/deployments/{deploymentId} | physical | conditional |
| POST | /organizations/{organizationId}/deployments/{deploymentId}/agent-tokens | physical | conditional |
| DELETE | /organizations/{organizationId}/deployments/{deploymentId}/agent-tokens/{agentTokenId} | physical | conditional |
| POST | /organizations/{organizationId}/deployments/{deploymentId}/deploys | physical | conditional |
| POST | /organizations/{organizationId}/deployments/{deploymentId}/deploys/{deployId} | physical | conditional |
| POST | /organizations/{organizationId}/deployments/{deploymentId}/deploys/{deployId}/finalize | physical | conditional |
| POST | /organizations/{organizationId}/deployments/{deploymentId}/deploys/{deployId}/rollback | physical | conditional |
Source
Agentic Access
generated: '2026-07-18'
method: generated
source: openapi/astronomer-astro-openapi-original.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: 75
by_action_class:
connected: 32
acting: 43
by_consequence:
read: 32
write: 32
physical: 9
safety-critical: 2
human_in_the_loop_required: 2
operations:
- path: /authorization/permission-groups
method: get
operationId: ListPermissionGroups
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /organizations
method: get
operationId: ListOrganizations
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /organizations/{organizationId}
method: get
operationId: GetOrganization
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /organizations/{organizationId}
method: post
operationId: UpdateOrganization
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: /organizations/{organizationId}/allowed-ip-address-ranges
method: get
operationId: ListAllowedIpAddressRanges
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /organizations/{organizationId}/allowed-ip-address-ranges
method: post
operationId: CreateAllowedIpAddressRange
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: /organizations/{organizationId}/allowed-ip-address-ranges/{allowedIpAddressRangeId}
method: delete
operationId: DeleteAllowedIpAddressRange
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: /organizations/{organizationId}/allowed-ip-address-ranges/bulk-create
method: post
operationId: BulkCreateAllowedIpAddressRanges
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: /organizations/{organizationId}/allowed-ip-address-ranges/bulk-delete
method: post
operationId: BulkDeleteAllowedIpAddressRanges
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: /organizations/{organizationId}/audit-logs
method: get
operationId: GetOrganizationAuditLogs
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /organizations/{organizationId}/cluster-options
method: get
operationId: GetClusterOptions
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /organizations/{organizationId}/clusters
method: get
operationId: ListClusters
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /organizations/{organizationId}/clusters
method: post
operationId: CreateCluster
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: /organizations/{organizationId}/clusters/{clusterId}
method: delete
operationId: DeleteCluster
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: /organizations/{organizationId}/clusters/{clusterId}
method: get
operationId: GetCluster
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /organizations/{organizationId}/clusters/{clusterId}
method: post
operationId: UpdateCluster
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: /organizations/{organizationId}/deployment-options
method: get
operationId: GetDeploymentOptions
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /organizations/{organizationId}/deployments
method: get
operationId: ListDeployments
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /organizations/{organizationId}/deployments
method: post
operationId: CreateDeployment
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: /organizations/{organizationId}/deployments/{deploymentId}
method: delete
operationId: DeleteDeployment
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: /organizations/{organizationId}/deployments/{deploymentId}
method: get
operationId: GetDeployment
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /organizations/{organizationId}/deployments/{deploymentId}
method: post
operationId: UpdateDeployment
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: /organizations/{organizationId}/deployments/{deploymentId}/agent-tokens
method: get
operationId: ListAgentTokens
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /organizations/{organizationId}/deployments/{deploymentId}/agent-tokens
method: post
operationId: CreateAgentToken
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: /organizations/{organizationId}/deployments/{deploymentId}/agent-tokens/{agentTokenId}
method: delete
operationId: DeleteAgentToken
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: /organizations/{organizationId}/deployments/{deploymentId}/agent-tokens/{agentTokenId}
method: get
operationId: GetAgentToken
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /organizations/{organizationId}/deployments/{deploymentId}/deploys
method: get
operationId: ListDeploys
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /organizations/{organizationId}/deployments/{deploymentId}/deploys
method: post
operationId: CreateDeploy
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: /organizations/{organizationId}/deployments/{deploymentId}/deploys/{deployId}
method: get
operationId: GetDeploy
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /organizations/{organizationId}/deployments/{deploymentId}/deploys/{deployId}
method: post
operationId: UpdateDeploy
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: /organizations/{organizationId}/deployments/{deploymentId}/deploys/{deployId}/finalize
method: post
operationId: FinalizeDeploy
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: /organizations/{organizationId}/deployments/{deploymentId}/deploys/{deployId}/rollback
method: post
operationId: DeployRollback
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: /organizations/{organizationId}/deployments/{deploymentId}/hibernation-override
method: delete
operationId: DeleteDeploymentHibernationOverride
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: /organizations/{organizationId}/deployments/{deploymentId}/hibernation-override
method: post
operationId: UpdateDeploymentHibernationOverride
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: /organizations/{organizationId}/deployments/{deploymentId}/logs
method: get
operationId: GetDeploymentLogs
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /organizations/{organizationId}/environment-objects
method: get
operationId: ListEnvironmentObjects
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /organizations/{organizationId}/environment-objects
method: post
operationId: CreateEnvironmentObject
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: /organizations/{organizationId}/environment-objects/{environmentObjectId}
method: delete
operationId: DeleteEnvironmentObject
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: /organizations/{organizationId}/environment-objects/{environmentObjectId}
method: get
operationId: GetEnvironmentObject
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /organizations/{organizationId}/environment-objects/{environmentObjectId}
method: post
operationId: UpdateEnvironmentObject
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: /organizations/{organizationId}/environment-objects/{environmentObjectId}/exclude-linking
method: post
operationId: ExcludeLinkingEnvironmentObject
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: /organizations/{organizationId}/invites
method: post
operationId: CreateUserInvite
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: /organizations/{organizationId}/invites/{inviteId}
method: delete
operationId: DeleteUserInvite
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: /organizations/{organizationId}/role-templates
method: get
operationId: ListRoleTemplates
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /organizations/{organizationId}/roles
method: get
operationId: ListRoles
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /organizations/{organizationId}/roles
method: post
operationId: CreateCustomRole
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: /organizations/{organizationId}/roles/{customRoleId}
method: delete
operationId: DeleteCustomRole
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: /organizations/{organizationId}/roles/{customRoleId}
method: post
operationId: UpdateCustomRole
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: /organizations/{organizationId}/roles/{roleId}
method: get
operationId: GetCustomRole
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /organizations/{organizationId}/teams
method: get
operationId: ListTeams
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /organizations/{organizationId}/teams
method: post
operationId: CreateTeam
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: /organizations/{organizationId}/teams/{teamId}
method: delete
operationId: DeleteTeam
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: /organizations/{organizationId}/teams/{teamId}
method: get
operationId: GetTeam
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /organizations/{organizationId}/teams/{teamId}
method: post
operationId: UpdateTeam
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: /organizations/{organizationId}/teams/{teamId}/members
method: get
operationId: ListTeamMembers
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /organizations/{organizationId}/teams/{teamId}/members
method: post
operationId: AddTeamMembers
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: /organizations/{organizationId}/teams/{teamId}/members/{memberId}
method: delete
operationId: RemoveTeamMember
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: /organizations/{organizationId}/teams/{teamId}/roles
method: post
operationId: UpdateTeamRoles
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: /organizations/{organizationId}/tokens
method: get
operationId: ListApiTokens
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /organizations/{organizationId}/tokens
method: post
operationId: CreateApiToken
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: /organizations/{organizationId}/tokens/{tokenId}
method: delete
operationId: DeleteApiToken
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: /organizations/{organizationId}/tokens/{tokenId}
method: get
operationId: GetApiToken
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /organizations/{organizationId}/tokens/{tokenId}
method: post
operationId: UpdateApiToken
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: /organizations/{organizationId}/tokens/{tokenId}/roles
method: post
operationId: UpdateApiTokenRoles
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: /organizations/{organizationId}/tokens/{tokenId}/rotate
method: post
operationId: RotateApiToken
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: /organizations/{organizationId}/users
method: get
operationId: ListUsers
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /organizations/{organizationId}/users/{userId}
method: get
operationId: GetUser
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /organizations/{organizationId}/users/{userId}/roles
method: post
operationId: UpdateUserRoles
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: /organizations/{organizationId}/users/{userId}/teams
method: get
operationId: ListUserTeams
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /organizations/{organizationId}/workspaces
method: get
operationId: ListWorkspaces
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /organizations/{organizationId}/workspaces
method: post
operationId: CreateWorkspace
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: /organizations/{organizationId}/workspaces/{workspaceId}
method: delete
operationId: DeleteWorkspace
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: /organizations/{organizationId}/workspaces/{workspaceId}
method: get
operationId: GetWorkspace
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /organizations/{organizationId}/workspaces/{workspaceId}
method: post
operationId: UpdateWorkspace
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: /users/self
method: get
operationId: GetSelfUser
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none