Unity Agentic Access
Unity exposes 98 API operations that an AI agent could call, of which 62 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: 36 read, 53 write, 6 physical, and 3 safety-critical.
3 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 |
|---|---|---|---|
| POST | /v1/projects/{projectId}/environments/{environmentId}/rules | safety-critical | required |
| PUT | /v1/projects/{projectId}/environments/{environmentId}/rules/{ruleId} | safety-critical | required |
| DELETE | /v1/projects/{projectId}/environments/{environmentId}/rules/{ruleId} | safety-critical | required |
| DELETE | /v1/me/relationships/{memberId} | physical | conditional |
| POST | /v1/me/relationships/{memberId}/accept | physical | conditional |
| POST | /v1/me/relationships/{memberId}/block | physical | conditional |
| POST | /v1/me/relationships/{memberId}/request | physical | conditional |
| POST | /v1/me/relationships/{memberId}/unblock | physical | conditional |
| POST | /v2/projects/{projectId}/environments/{environmentId}/players/{playerId}/purchases/virtual | physical | conditional |
Source
Agentic Access
generated: '2026-07-15'
method: generated
source: openapi/unity-analytics-openapi.yml, openapi/unity-build-automation-openapi.yml, openapi/unity-cloud-code-openapi.yml,
openapi/unity-cloud-save-openapi.yml, openapi/unity-economy-openapi.yml, openapi/unity-friends-openapi.yml,
openapi/unity-leaderboards-openapi.yml, openapi/unity-lobby-openapi.yml, openapi/unity-matchmaker-openapi.yml,
openapi/unity-multiplay-openapi.yml, openapi/unity-player-authentication-openapi.yml, openapi/unity-remote-config-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: 98
by_action_class:
acting: 62
connected: 36
by_consequence:
write: 53
read: 36
physical: 6
safety-critical: 3
human_in_the_loop_required: 3
operations:
- path: /v1/projects/{projectId}/events
method: post
operationId: recordEvents
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/projects/{projectId}/events:validate
method: post
operationId: validateEvents
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: /orgs/{orgid}/projects/{projectid}/buildtargets
method: get
operationId: listBuildTargets
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /orgs/{orgid}/projects/{projectid}/buildtargets
method: post
operationId: createBuildTarget
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: /orgs/{orgid}/projects/{projectid}/buildtargets/{buildtargetid}
method: get
operationId: getBuildTarget
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /orgs/{orgid}/projects/{projectid}/buildtargets/{buildtargetid}
method: patch
operationId: updateBuildTarget
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: /orgs/{orgid}/projects/{projectid}/buildtargets/{buildtargetid}
method: delete
operationId: deleteBuildTarget
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: /orgs/{orgid}/projects/{projectid}/buildtargets/{buildtargetid}/builds
method: get
operationId: getBuilds
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /orgs/{orgid}/projects/{projectid}/buildtargets/{buildtargetid}/builds
method: post
operationId: startBuild
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: /orgs/{orgid}/projects/{projectid}/buildtargets/{buildtargetid}/builds/{number}
method: get
operationId: getBuild
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /orgs/{orgid}/projects/{projectid}/buildtargets/{buildtargetid}/builds/{number}
method: delete
operationId: cancelBuild
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/projects/{projectId}/scripts
method: get
operationId: listScripts
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/projects/{projectId}/scripts
method: post
operationId: createScript
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/projects/{projectId}/scripts/{scriptName}
method: get
operationId: getScript
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/projects/{projectId}/scripts/{scriptName}
method: put
operationId: updateScript
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/projects/{projectId}/scripts/{scriptName}
method: delete
operationId: deleteScript
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/projects/{projectId}/scripts/{scriptName}/run
method: post
operationId: runScript
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/projects/{projectId}/modules
method: get
operationId: listModules
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/projects/{projectId}/modules
method: post
operationId: uploadModule
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/projects/{projectId}/modules/{moduleName}
method: get
operationId: getModule
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/projects/{projectId}/modules/{moduleName}
method: delete
operationId: deleteModule
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/data/projects/{projectId}/players/{playerId}
method: get
operationId: getPlayerData
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/data/projects/{projectId}/players/{playerId}/items
method: post
operationId: setPlayerData
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/data/projects/{projectId}/players/{playerId}/items/{key}
method: delete
operationId: deletePlayerDataItem
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/data/projects/{projectId}/players/{playerId}/protected-items
method: post
operationId: setProtectedPlayerData
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/data/projects/{projectId}/players/{playerId}/public-items
method: post
operationId: setPublicPlayerData
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/data/projects/{projectId}/players/{playerId}/query
method: post
operationId: queryPlayerData
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/projects/{projectId}/environments/{environmentId}/configs/items
method: get
operationId: listEconomyConfigs
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/projects/{projectId}/environments/{environmentId}/configs/items/{resourceId}
method: get
operationId: getEconomyConfig
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/projects/{projectId}/environments/{environmentId}/players/{playerId}/currencies
method: get
operationId: getPlayerCurrencyBalances
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/projects/{projectId}/environments/{environmentId}/players/{playerId}/currencies/{currencyId}/increment
method: post
operationId: incrementPlayerCurrencyBalance
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/projects/{projectId}/environments/{environmentId}/players/{playerId}/currencies/{currencyId}/decrement
method: post
operationId: decrementPlayerCurrencyBalance
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/projects/{projectId}/environments/{environmentId}/players/{playerId}/inventory
method: get
operationId: getPlayerInventory
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v2/projects/{projectId}/environments/{environmentId}/players/{playerId}/purchases/virtual
method: post
operationId: makeVirtualPurchase
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/me/relationships/friends
method: get
operationId: listFriends
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/me/relationships/requests/incoming
method: get
operationId: listIncomingFriendRequests
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/me/relationships/requests/outgoing
method: get
operationId: listOutgoingFriendRequests
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/me/relationships/{memberId}/request
method: post
operationId: sendFriendRequest
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/me/relationships/{memberId}/accept
method: post
operationId: acceptFriendRequest
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/me/relationships/{memberId}
method: delete
operationId: removeFriendOrRequest
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/me/relationships/blocks
method: get
operationId: listBlockedPlayers
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/me/relationships/{memberId}/block
method: post
operationId: blockPlayer
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/me/relationships/{memberId}/unblock
method: post
operationId: unblockPlayer
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/projects/{projectId}/environments/{environmentId}/leaderboards
method: get
operationId: listLeaderboards
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/projects/{projectId}/environments/{environmentId}/leaderboards
method: post
operationId: createLeaderboard
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/projects/{projectId}/environments/{environmentId}/leaderboards/{leaderboardId}
method: get
operationId: getLeaderboard
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/projects/{projectId}/environments/{environmentId}/leaderboards/{leaderboardId}
method: put
operationId: updateLeaderboard
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/projects/{projectId}/environments/{environmentId}/leaderboards/{leaderboardId}
method: delete
operationId: deleteLeaderboard
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/projects/{projectId}/environments/{environmentId}/leaderboards/{leaderboardId}/scores/players/{playerId}
method: post
operationId: addLeaderboardPlayerScore
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/projects/{projectId}/environments/{environmentId}/leaderboards/{leaderboardId}/scores/players/{playerId}
method: get
operationId: getLeaderboardPlayerScore
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/projects/{projectId}/environments/{environmentId}/leaderboards/{leaderboardId}/scores
method: get
operationId: getLeaderboardScores
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/lobbies
method: post
operationId: createLobby
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/lobbies/{lobbyId}
method: get
operationId: getLobby
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/lobbies/{lobbyId}
method: patch
operationId: updateLobby
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/lobbies/{lobbyId}
method: delete
operationId: deleteLobby
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/lobbies/{lobbyId}/join
method: post
operationId: joinLobbyById
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/lobbies/code/{lobbyCode}
method: post
operationId: joinLobbyByCode
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/lobbies/query
method: post
operationId: queryLobbies
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/lobbies/{lobbyId}/players/{playerId}
method: delete
operationId: removePlayer
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/lobbies/{lobbyId}/players/{playerId}
method: patch
operationId: updatePlayerData
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/lobbies/{lobbyId}/heartbeat
method: post
operationId: heartbeatLobby
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: /v3/projects/{projectId}/environments/{environmentId}/tickets
method: post
operationId: createTicket
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: /v3/projects/{projectId}/environments/{environmentId}/tickets/{ticketId}
method: get
operationId: getTicket
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v3/projects/{projectId}/environments/{environmentId}/tickets/{ticketId}
method: delete
operationId: deleteTicket
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: /v3/projects/{projectId}/environments/{environmentId}/queues
method: get
operationId: listQueues
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v3/projects/{projectId}/environments/{environmentId}/queues
method: post
operationId: createQueue
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: /v3/projects/{projectId}/environments/{environmentId}/queues/{queueName}
method: get
operationId: getQueue
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v3/projects/{projectId}/environments/{environmentId}/queues/{queueName}
method: put
operationId: updateQueue
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: /v3/projects/{projectId}/environments/{environmentId}/queues/{queueName}
method: delete
operationId: deleteQueue
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/projects/{projectId}/regions/{regionId}/fleets
method: get
operationId: listFleets
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/projects/{projectId}/regions/{regionId}/fleets
method: post
operationId: createFleet
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/projects/{projectId}/regions/{regionId}/fleets/{fleetId}
method: get
operationId: getFleet
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/projects/{projectId}/regions/{regionId}/fleets/{fleetId}
method: patch
operationId: updateFleet
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/projects/{projectId}/regions/{regionId}/fleets/{fleetId}
method: delete
operationId: deleteFleet
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/projects/{projectId}/builds
method: get
operationId: listBuilds
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/projects/{projectId}/builds
method: post
operationId: createBuild
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/projects/{projectId}/builds/{buildId}
method: get
operationId: getBuild
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/projects/{projectId}/regions/{regionId}/fleets/{fleetId}/servers
method: get
operationId: listServers
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/projects/{projectId}/regions/{regionId}/fleets/{fleetId}/allocations
method: post
operationId: allocateServer
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/authentication/anonymous
method: post
operationId: signInAnonymously
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/authentication/usernamepassword/sign-in
method: post
operationId: signInWithUsernamePassword
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/authentication/usernamepassword/sign-up
method: post
operationId: signUpWithUsernamePassword
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/authentication/external-token
method: post
operationId: signInWithExternalToken
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/token/refresh
method: post
operationId: refreshToken
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/players
method: get
operationId: listPlayers
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/players/{playerId}
method: get
operationId: getPlayer
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/players/{playerId}
method: delete
operationId: deletePlayer
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/players/{playerId}/link/external-token
method: post
operationId: linkExternalIdentity
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/players/{playerId}/unlink/external-token
method: post
operationId: unlinkExternalIdentity
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/projects/{projectId}/environments/{environmentId}/configs
method: get
operationId: listRemoteConfigs
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/projects/{projectId}/environments/{environmentId}/configs/{configId}
method: get
operationId: getRemoteConfig
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/projects/{projectId}/environments/{environmentId}/configs/{configId}
method: put
operationId: updateRemoteConfig
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/projects/{projectId}/environments/{environmentId}/configs/{configId}/settings
method: get
operationId: listSettings
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/projects/{projectId}/environments/{environmentId}/configs/{configId}/settings
method: post
operationId: addSetting
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/projects/{projectId}/environments/{environmentId}/rules
method: get
operationId: listOverrideRules
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/projects/{projectId}/environments/{environmentId}/rules
method: post
operationId: createOverrideRule
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/projects/{projectId}/environments/{environmentId}/rules/{ruleId}
method: put
operationId: updateOverrideRule
x-agentic-access:
action-class: acting
consequence: safety-critical
subject:
# --- truncated at 32 KB (32 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/unity/refs/heads/main/agentic-access/unity-agentic-access.yml