Moralis · Agentic Access
Moralis Agentic Access
x-agentic-access
generated
Moralis exposes 117 API operations that an AI agent could call, of which 10 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: 107 read and 10 write.
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.
Web3BlockchainData APIStreamsIndexing
Operations: 117
Acting: 10
Human-in-the-loop: 0
Method: generated
By consequence
read 107
write 10
Source
Agentic Access
generated: '2026-07-15'
method: generated
source: openapi/moralis-evm-api-openapi.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: 117
by_action_class:
connected: 107
acting: 10
by_consequence:
read: 107
write: 10
human_in_the_loop_required: 0
operations:
- path: /{address}/nft
method: get
operationId: getWalletNFTs
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /nft/getMultipleNFTs
method: post
operationId: getMultipleNFTs
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: /{address}/nft/transfers
method: get
operationId: getWalletNFTTransfers
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /{address}/nft/collections
method: get
operationId: getWalletNFTCollections
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /nft/{address}
method: get
operationId: getContractNFTs
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /nft/{address}/unique-owners
method: get
operationId: getUniqueOwnersByCollection
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /nft/{address}/owners
method: get
operationId: getNFTOwners
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /nft/{address}/transfers
method: get
operationId: getNFTContractTransfers
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /nft/{address}/nfts-by-traits
method: post
operationId: getNFTByContractTraits
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: /nft/{address}/traits
method: get
operationId: getNFTTraitsByCollection
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /nft/{address}/traits/paginate
method: get
operationId: getNFTTraitsByCollectionPaginate
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /nft/{address}/traits/resync
method: get
operationId: resyncNFTRarity
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /nft/{address}/trades
method: get
operationId: getNFTTrades
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /nft/{address}/{token_id}/trades
method: get
operationId: getNFTTradesByToken
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /wallets/{address}/nfts/trades
method: get
operationId: getNFTTradesByWallet
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /nft/{address}/metadata
method: get
operationId: getNFTContractMetadata
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /nft/metadata
method: post
operationId: getNFTBulkContractMetadata
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: /nft/{address}/{token_id}
method: get
operationId: getNFTMetadata
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /nft/{address}/{token_id}/transfers
method: get
operationId: getNFTTransfers
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /nft/{address}/{token_id}/owners
method: get
operationId: getNFTTokenIdOwners
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /nft/{address}/sync
method: put
operationId: syncNFTContract
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: /nft/{address}/{token_id}/metadata/resync
method: get
operationId: reSyncMetadata
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /nft/{address}/price
method: get
operationId: getNFTContractSalePrices
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /nft/{address}/{token_id}/price
method: get
operationId: getNFTSalePrices
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /erc20/{address}/price
method: get
operationId: getTokenPrice
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /erc20/{address}/swaps
method: get
operationId: getSwapsByTokenAddress
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /erc20/{tokenAddress}/holders
method: get
operationId: getTokenHolders
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /erc20/{tokenAddress}/holders/historical
method: get
operationId: getHistoricalTokenHolders
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /erc20/prices
method: post
operationId: getMultipleTokenPrices
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: /erc20/{token_address}/owners
method: get
operationId: getTokenOwners
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /{address}/erc20
method: get
operationId: getWalletTokenBalances
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /{address}/erc20/transfers
method: get
operationId: getWalletTokenTransfers
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /erc20/metadata
method: get
operationId: getTokenMetadata
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /tokens/categories
method: get
operationId: getTokenCategories
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /erc20/metadata/symbols
method: get
operationId: getTokenMetadataBySymbol
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /erc20/{address}/transfers
method: get
operationId: getTokenTransfers
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /{address}/balance
method: get
operationId: getNativeBalance
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /wallets/balances
method: get
operationId: getNativeBalancesForAddresses
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /wallets/{address}/approvals
method: get
operationId: getWalletApprovals
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /wallets/{address}/history
method: get
operationId: getWalletHistory
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /wallets/{address}/tokens
method: get
operationId: getWalletTokenBalancesPrice
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /wallets/{address}/net-worth
method: get
operationId: getWalletNetWorth
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /{address}
method: get
operationId: getWalletTransactions
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /{address}/verbose
method: get
operationId: getWalletTransactionsVerbose
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /transaction/{transaction_hash}
method: get
operationId: getTransaction
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /transaction/{transaction_hash}/verbose
method: get
operationId: getTransactionVerbose
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /block/{block_number_or_hash}
method: get
operationId: getBlock
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /latestBlockNumber/{chain}
method: get
operationId: getLatestBlockNumber
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /dateToBlock
method: get
operationId: getDateToBlock
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /{address}/function
method: post
operationId: runContractFunction
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: /web3/version
method: get
operationId: web3ApiVersion
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /info/endpointWeights
method: get
operationId: endpointWeights
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /resolve/{address}/reverse
method: get
operationId: resolveAddress
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /resolve/{domain}
method: get
operationId: resolveDomain
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /resolve/{address}/domain
method: get
operationId: resolveAddressToDomain
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /resolve/ens/{domain}
method: get
operationId: resolveENSDomain
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /{token0_address}/{token1_address}/price
method: get
operationId: getPairPrice
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /{pair_address}/reserves
method: get
operationId: getPairReserves
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /{token0_address}/{token1_address}/pairAddress
method: get
operationId: getPairAddress
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /market-data/erc20s/top-tokens
method: get
operationId: getTopERC20TokensByMarketCap
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /market-data/erc20s/top-movers
method: get
operationId: getTopERC20TokensByPriceMovers
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /market-data/nfts/top-collections
method: get
operationId: getTopNFTCollectionsByMarketCap
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /market-data/nfts/hottest-collections
method: get
operationId: getHottestNFTCollectionsByTradingVolume
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /market-data/global/market-cap
method: get
operationId: getTopCryptoCurrenciesByMarketCap
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /market-data/global/volume
method: get
operationId: getTopCryptoCurrenciesByTradingVolume
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /contracts-review
method: post
operationId: reviewContracts
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: /wallets/{address}/defi/summary
method: get
operationId: getDefiSummary
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /wallets/{address}/defi/{protocol}/positions
method: get
operationId: getDefiPositionsByProtocol
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /wallets/{address}/defi/positions
method: get
operationId: getDefiPositionsSummary
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /wallets/{address}/chains
method: get
operationId: getWalletActiveChains
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /wallets/{address}/stats
method: get
operationId: getWalletStats
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /nft/{address}/stats
method: get
operationId: getNFTCollectionStats
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /nft/{address}/floor-price
method: get
operationId: getNFTFloorPriceByContract
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /nft/{address}/{token_id}/floor-price
method: get
operationId: getNFTFloorPriceByToken
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /nft/{address}/floor-price/historical
method: get
operationId: getNFTHistoricalFloorPriceByContract
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /erc20/{address}/stats
method: get
operationId: getTokenStats
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /discovery/tokens
method: post
operationId: getFilteredTokens
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: /discovery/tokens/rising-liquidity
method: get
operationId: getRisingLiquidityTokens
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /discovery/tokens/buying-pressure
method: get
operationId: getBuyingPressureTokens
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /discovery/tokens/solid-performers
method: get
operationId: getSolidPerformersTokens
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /discovery/tokens/experienced-buyers
method: get
operationId: getExperiencedBuyersTokens
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /discovery/tokens/risky-bets
method: get
operationId: getRiskyBetsTokens
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /discovery/tokens/blue-chip
method: get
operationId: getBlueChipTokens
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /discovery/tokens/top-gainers
method: get
operationId: getTopGainersTokens
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /discovery/tokens/top-losers
method: get
operationId: getTopLosersTokens
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /discovery/tokens/trending
method: get
operationId: getTrendingTokens
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /discovery/token
method: get
operationId: getDiscoveryToken
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /wallets/{address}/profitability/summary
method: get
operationId: getWalletProfitabilitySummary
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /wallets/{address}/profitability
method: get
operationId: getWalletProfitability
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /erc20/{address}/top-gainers
method: get
operationId: getTopProfitableWalletPerToken
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /tokens/search
method: get
operationId: searchTokens
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /entities/search
method: get
operationId: searchEntities
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /entities/{entityId}
method: get
operationId: getEntity
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /entities/categories
method: get
operationId: getEntityCategories
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /entities/categories/{categoryId}
method: get
operationId: getEntitiesByCategory
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /pairs/{address}/ohlcv
method: get
operationId: getPairCandlesticks
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /pairs/{address}/stats
method: get
operationId: getPairStats
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /erc20/{token_address}/pairs
method: get
operationId: getTokenPairs
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /erc20/{token_address}/pairs/stats
method: get
operationId: getAggregatedTokenPairStats
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /erc20/exchange/{exchangeName}/new
method: get
operationId: getNewTokensByExchange
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /erc20/exchange/{exchangeName}/bonding
method: get
operationId: getBondingTokensByExchange
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /erc20/exchange/{exchangeName}/graduated
method: get
operationId: getGraduatedTokensByExchange
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /erc20/{tokenAddress}/bondingStatus
method: get
operationId: getTokenBondingStatus
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /wallets/{address}/swaps
method: get
operationId: getSwapsByWalletAddress
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /wallets/{address}/insight
method: get
operationId: getWalletInsight
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /pairs/{address}/swaps
method: get
operationId: getSwapsByPairAddress
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /pairs/{address}/snipers
method: get
operationId: getSnipersByPairAddress
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /volume/chains
method: get
operationId: getVolumeStatsByChain
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /volume/categories
method: get
operationId: getVolumeStatsByCategory
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /volume/timeseries
method: get
operationId: getTimeSeriesVolume
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /volume/timeseries/{categoryId}
method: get
operationId: getTimeSeriesVolumeByCategory
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /tokens/analytics/timeseries
method: post
operationId: getTimeSeriesTokenAnalytics
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: /tokens/trending
method: get
operationId: getTrendingTokensV2
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /tokens/{tokenAddress}/analytics
method: get
operationId: getTokenAnalytics
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /tokens/{tokenAddress}/score
method: get
operationId: getTokenScore
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /tokens/{tokenAddress}/score/historical
method: get
operationId: getHistoricalTokenScore
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /tokens/analytics
method: post
operationId: getMultipleTokenAnalytics
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