Lichess Agentic Access
Lichess exposes 185 API operations that an AI agent could call, of which 84 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: 101 read, 77 write, 3 physical, and 4 safety-critical.
4 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 | /api/broadcast/round/{broadcastRoundId}/reset | safety-critical | required |
| POST | /api/swiss/{id}/terminate | safety-critical | required |
| DELETE | /api/token | safety-critical | required |
| POST | /api/tournament/{id}/terminate | safety-critical | required |
| POST | /api/swiss/{id}/withdraw | physical | conditional |
| POST | /api/tournament/{id}/withdraw | physical | conditional |
| POST | /inbox/{username} | physical | conditional |
Source
Agentic Access
generated: '2026-07-15'
method: generated
source: openapi/lichess-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: 185
by_action_class:
connected: 101
acting: 84
by_consequence:
read: 101
write: 77
physical: 3
safety-critical: 4
human_in_the_loop_required: 4
operations:
- path: /api/users/status
method: get
operationId: apiUsersStatus
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/player
method: get
operationId: player
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/player/top/{nb}/{perfType}
method: get
operationId: playerTopNbPerfType
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/user/{username}
method: get
operationId: apiUser
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/user/{username}/rating-history
method: get
operationId: apiUserRatingHistory
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/user/{username}/perf/{perf}
method: get
operationId: apiUserPerf
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/user/{username}/activity
method: get
operationId: apiUserActivity
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/puzzle/daily
method: get
operationId: apiPuzzleDaily
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/puzzle/{id}
method: get
operationId: apiPuzzleId
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/puzzle/next
method: get
operationId: apiPuzzleNext
x-agentic-access:
action-class: connected
consequence: read
subject: optional
scope:
- puzzle:read
token:
max-ttl: 3600
audit: none
- path: /api/puzzle/batch/{angle}
method: get
operationId: apiPuzzleBatchSelect
x-agentic-access:
action-class: connected
consequence: read
subject: optional
scope:
- puzzle:read
token:
max-ttl: 3600
audit: none
- path: /api/puzzle/batch/{angle}
method: post
operationId: apiPuzzleBatchSolve
x-agentic-access:
action-class: acting
consequence: write
subject: required
scope:
- puzzle:write
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/puzzle/activity
method: get
operationId: apiPuzzleActivity
x-agentic-access:
action-class: connected
consequence: read
subject: optional
scope:
- puzzle:read
token:
max-ttl: 3600
audit: none
- path: /api/puzzle/replay/{days}/{theme}
method: get
operationId: apiPuzzleReplay
x-agentic-access:
action-class: connected
consequence: read
subject: optional
scope:
- puzzle:read
token:
max-ttl: 3600
audit: none
- path: /api/puzzle/dashboard/{days}
method: get
operationId: apiPuzzleDashboard
x-agentic-access:
action-class: connected
consequence: read
subject: optional
scope:
- puzzle:read
token:
max-ttl: 3600
audit: none
- path: /api/storm/dashboard/{username}
method: get
operationId: apiStormDashboard
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/racer
method: post
operationId: racerPost
x-agentic-access:
action-class: acting
consequence: write
subject: required
scope:
- racer:write
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/racer/{id}
method: get
operationId: racerGet
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/users
method: post
operationId: apiUsers
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: /api/account
method: get
operationId: accountMe
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/account/email
method: get
operationId: accountEmail
x-agentic-access:
action-class: connected
consequence: read
subject: optional
scope:
- email:read
token:
max-ttl: 3600
audit: none
- path: /api/account/preferences
method: get
operationId: account
x-agentic-access:
action-class: connected
consequence: read
subject: optional
scope:
- preference:read
token:
max-ttl: 3600
audit: none
- path: /api/account/kid
method: get
operationId: accountKid
x-agentic-access:
action-class: connected
consequence: read
subject: optional
scope:
- preference:read
token:
max-ttl: 3600
audit: none
- path: /api/account/kid
method: post
operationId: accountKidPost
x-agentic-access:
action-class: acting
consequence: write
subject: required
scope:
- preference:write
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/timeline
method: get
operationId: timeline
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /game/export/{gameId}
method: get
operationId: gamePgn
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /game/{gameId}/chat
method: get
operationId: gameChatGet
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/user/{username}/current-game
method: get
operationId: apiUserCurrentGame
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/games/user/{username}
method: get
operationId: apiGamesUser
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/games/export/_ids
method: post
operationId: gamesExportIds
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: /api/stream/games-by-users
method: post
operationId: gamesByUsers
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: /api/stream/games/{streamId}
method: post
operationId: gamesByIds
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: /api/stream/games/{streamId}/add
method: post
operationId: gamesByIdsAdd
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: /api/account/playing
method: get
operationId: apiAccountPlaying
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/stream/game/{id}
method: get
operationId: streamGame
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/import
method: post
operationId: gameImport
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: /api/games/export/imports
method: get
operationId: apiImportedGamesUser
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/games/export/bookmarks
method: get
operationId: apiExportBookmarks
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/tv/channels
method: get
operationId: tvChannels
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/tv/feed
method: get
operationId: tvFeed
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/tv/{channel}/feed
method: get
operationId: tvChannelFeed
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/tv/{channel}
method: get
operationId: tvChannelGames
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/tournament
method: get
operationId: apiTournament
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/tournament
method: post
operationId: apiTournamentPost
x-agentic-access:
action-class: acting
consequence: write
subject: required
scope:
- tournament:write
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/tournament/{id}
method: get
operationId: tournament
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/tournament/{id}
method: post
operationId: apiTournamentUpdate
x-agentic-access:
action-class: acting
consequence: write
subject: required
scope:
- tournament:write
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/tournament/{id}/join
method: post
operationId: apiTournamentJoin
x-agentic-access:
action-class: acting
consequence: write
subject: required
scope:
- tournament:write
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/tournament/{id}/withdraw
method: post
operationId: apiTournamentWithdraw
x-agentic-access:
action-class: acting
consequence: physical
subject: required
scope:
- tournament:write
audience: null
token:
max-ttl: 300
exchange: true
purpose-required: true
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/tournament/{id}/terminate
method: post
operationId: apiTournamentTerminate
x-agentic-access:
action-class: acting
consequence: safety-critical
subject: required
scope:
- tournament:write
audience: null
token:
max-ttl: 120
exchange: true
purpose-required: true
proof-of-possession: true
escalation:
human-in-the-loop: required
audit: required
- path: /api/tournament/team-battle/{id}
method: post
operationId: apiTournamentTeamBattlePost
x-agentic-access:
action-class: acting
consequence: write
subject: required
scope:
- tournament:write
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/tournament/{id}/games
method: get
operationId: gamesByTournament
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/tournament/{id}/results
method: get
operationId: resultsByTournament
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/tournament/{id}/teams
method: get
operationId: teamsByTournament
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/user/{username}/tournament/created
method: get
operationId: apiUserNameTournamentCreated
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/user/{username}/tournament/played
method: get
operationId: apiUserNameTournamentPlayed
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/swiss/new/{teamId}
method: post
operationId: apiSwissNew
x-agentic-access:
action-class: acting
consequence: write
subject: required
scope:
- tournament:write
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/swiss/{id}
method: get
operationId: swiss
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/swiss/{id}/edit
method: post
operationId: apiSwissUpdate
x-agentic-access:
action-class: acting
consequence: write
subject: required
scope:
- tournament:write
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/swiss/{id}/schedule-next-round
method: post
operationId: apiSwissScheduleNextRound
x-agentic-access:
action-class: acting
consequence: write
subject: required
scope:
- tournament:write
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/swiss/{id}/join
method: post
operationId: apiSwissJoin
x-agentic-access:
action-class: acting
consequence: write
subject: required
scope:
- tournament:write
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/swiss/{id}/withdraw
method: post
operationId: apiSwissWithdraw
x-agentic-access:
action-class: acting
consequence: physical
subject: required
scope:
- tournament:write
audience: null
token:
max-ttl: 300
exchange: true
purpose-required: true
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/swiss/{id}/terminate
method: post
operationId: apiSwissTerminate
x-agentic-access:
action-class: acting
consequence: safety-critical
subject: required
scope:
- tournament:write
audience: null
token:
max-ttl: 120
exchange: true
purpose-required: true
proof-of-possession: true
escalation:
human-in-the-loop: required
audit: required
- path: /swiss/{id}.trf
method: get
operationId: swissTrf
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/swiss/{id}/games
method: get
operationId: gamesBySwiss
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/swiss/{id}/results
method: get
operationId: resultsBySwiss
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/team/{teamId}/swiss
method: get
operationId: apiTeamSwiss
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/study/{studyId}/{chapterId}.pgn
method: get
operationId: studyChapterPgn
x-agentic-access:
action-class: connected
consequence: read
subject: optional
scope:
- study:read
token:
max-ttl: 3600
audit: none
- path: /api/study/{studyId}.pgn
method: get
operationId: studyAllChaptersPgn
x-agentic-access:
action-class: connected
consequence: read
subject: optional
scope:
- study:read
token:
max-ttl: 3600
audit: none
- path: /api/study/{studyId}.pgn
method: head
operationId: studyAllChaptersHead
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/study
method: post
operationId: apiStudyPost
x-agentic-access:
action-class: acting
consequence: write
subject: required
scope:
- study:write
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/study/{studyId}/import-pgn
method: post
operationId: apiStudyImportPGN
x-agentic-access:
action-class: acting
consequence: write
subject: required
scope:
- study:write
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/study/{studyId}/{chapterId}/tags
method: post
operationId: apiStudyChapterTags
x-agentic-access:
action-class: acting
consequence: write
subject: required
scope:
- study:write
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/study/{studyId}/{chapterId}/moves
method: post
operationId: apiStudyChapterMoves
x-agentic-access:
action-class: acting
consequence: write
subject: required
scope:
- study:write
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/study/by/{username}/export.pgn
method: get
operationId: studyExportAllPgn
x-agentic-access:
action-class: connected
consequence: read
subject: optional
scope:
- study:read
token:
max-ttl: 3600
audit: none
- path: /api/study/by/{username}
method: get
operationId: studyListMetadata
x-agentic-access:
action-class: connected
consequence: read
subject: optional
scope:
- study:read
token:
max-ttl: 3600
audit: none
- path: /api/study/{studyId}/{chapterId}
method: delete
operationId: apiStudyStudyIdChapterIdDelete
x-agentic-access:
action-class: acting
consequence: write
subject: required
scope:
- study:write
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/broadcast
method: get
operationId: broadcastsOfficial
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/broadcast/top
method: get
operationId: broadcastsTop
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/broadcast/by/{username}
method: get
operationId: broadcastsByUser
x-agentic-access:
action-class: connected
consequence: read
subject: optional
scope:
- study:read
token:
max-ttl: 3600
audit: none
- path: /api/broadcast/search
method: get
operationId: broadcastsSearch
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /broadcast/new
method: post
operationId: broadcastTourCreate
x-agentic-access:
action-class: acting
consequence: write
subject: required
scope:
- study:write
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/broadcast/{broadcastTournamentId}
method: get
operationId: broadcastTourGet
x-agentic-access:
action-class: connected
consequence: read
subject: optional
scope:
- study:read
token:
max-ttl: 3600
audit: none
- path: /broadcast/{broadcastTournamentId}/players
method: get
operationId: broadcastPlayersGet
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /broadcast/{broadcastTournamentId}/players/{playerId}
method: get
operationId: broadcastPlayerGet
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /broadcast/{broadcastTournamentId}/teams/standings
method: get
operationId: broadcastTeamLeaderboardGet
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /broadcast/{broadcastTournamentId}/edit
method: post
operationId: broadcastTourUpdate
x-agentic-access:
action-class: acting
consequence: write
subject: required
scope:
- study:write
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /broadcast/{broadcastTournamentId}/new
method: post
operationId: broadcastRoundCreate
x-agentic-access:
action-class: acting
consequence: write
subject: required
scope:
- study:write
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/broadcast/{broadcastTournamentSlug}/{broadcastRoundSlug}/{broadcastRoundId}
method: get
operationId: broadcastRoundGet
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /broadcast/round/{broadcastRoundId}/edit
method: post
operationId: broadcastRoundUpdate
x-agentic-access:
action-class: acting
consequence: write
subject: required
scope:
- study:write
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/broadcast/round/{broadcastRoundId}/reset
method: post
operationId: broadcastRoundReset
x-agentic-access:
action-class: acting
consequence: safety-critical
subject: required
scope:
- study:write
audience: null
token:
max-ttl: 120
exchange: true
purpose-required: true
proof-of-possession: true
escalation:
human-in-the-loop: required
audit: required
- path: /api/broadcast/round/{broadcastRoundId}/push
method: post
operationId: broadcastPush
x-agentic-access:
action-class: acting
consequence: write
subject: required
scope:
- study:write
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/stream/broadcast/round/{broadcastRoundId}.pgn
method: get
operationId: broadcastStreamRoundPgn
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/broadcast/round/{broadcastRoundId}.pgn
method: get
operationId: broadcastRoundPgn
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/broadcast/{broadcastTournamentId}.pgn
method: get
operationId: broadcastAllRoundsPgn
x-agentic-access:
action-class: connected
consequence: read
subject: optional
scope:
- study:read
token:
max-ttl: 3600
audit: none
- path: /api/broadcast/my-rounds
method: get
operationId: broadcastMyRoundsGet
x-agentic-access:
action-class: connected
consequence: read
subject: optional
scope:
- study:read
token:
max-ttl: 3600
audit: none
- path: /api/fide/player/{playerId}
method: get
operationId: fidePlayerGet
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/fide/player/{playerId}/ratings
method: get
operationId: fidePlayerRatings
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/fide/player
method: get
operationId: fidePlayerSearch
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/simul
method: get
operationId: apiSimul
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/team/{teamId}
method: get
operationId: teamShow
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/team/all
method: get
operationId: teamAll
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/team/of/{username}
method: get
operationId: teamOfUsername
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/team/search
method: get
operationId: teamSearch
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/team/{teamId}/users
method: get
operationId: teamIdUsers
x-agentic-access:
action-class: connected
consequence: read
subject: optional
scope:
- team:read
token:
max-ttl: 3600
audit: none
- path: /api/team/{teamId}/arena
method: get
operationId: apiTeamArena
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /team/{teamId}/join
method: post
operationId: teamIdJoin
x-agentic-access:
action-class: acting
consequence: write
subject: required
scope:
- team:write
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /team/{teamId}/quit
method: post
operationId: teamIdQuit
x-agentic-access:
action-class: acting
consequence: write
subject: required
scope:
- team:write
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/team/{teamId}/requests
method: get
operationId: teamRequests
x-agentic-access:
action-class: connected
consequence: read
subject: optional
scope:
- team:read
token:
max-ttl: 3600
audit: none
- path: /api/team/{teamId}/request/{userId}/accept
method: post
operationId: teamRequestAccept
x-agentic-access:
action-class: acting
consequence: write
subject: required
scope:
- team:lead
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/team/{teamId}/request/{userId}/decline
method: post
operationId: teamRequestDecline
x-agentic-access:
action-class: acting
consequence: write
subject: required
scope:
- team:lead
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/team/{teamId}/kick/{userId}
method: post
operationId: teamIdKickUserId
x-agentic-access:
action-class: acting
consequence: write
subject: required
scope:
- team:lead
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /team/{teamId}/pm-all
method: post
operationId: teamIdPmAll
x-agentic-access:
action-class: acting
consequence: write
subject: required
scope:
- team:lead
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/streamer/live
method: get
operationId: streamerLive
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/crosstable/{user1}/{user2}
method: get
operationId: apiCrosstable
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/player/autocomplete
method: get
operationId: apiPlayerAutocomplete
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/user/{username}/note
method: post
operationId: writeNote
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: /api/user/{username}/note
method: get
operationId: readNote
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
# --- truncated at 32 KB (53 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/lichess/refs/heads/main/agentic-access/lichess-agentic-access.yml