eToro Agentic Access
eToro exposes 160 API operations that an AI agent could call, of which 87 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: 73 read, 59 write, and 28 physical.
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/v1/trading/execution/demo/limit-orders | physical | conditional |
| POST | /api/v1/trading/execution/demo/limit-orders | physical | conditional |
| DELETE | /api/v1/trading/execution/demo/limit-orders/{orderId} | physical | conditional |
| DELETE | /api/v1/trading/execution/demo/limit-orders/{orderId} | physical | conditional |
| POST | /api/v1/trading/execution/demo/market-close-orders/positions/{positionId} | physical | conditional |
| DELETE | /api/v1/trading/execution/demo/market-close-orders/{orderId} | physical | conditional |
| POST | /api/v1/trading/execution/demo/market-open-orders/by-amount | physical | conditional |
| POST | /api/v1/trading/execution/demo/market-open-orders/by-amount | physical | conditional |
| POST | /api/v1/trading/execution/demo/market-open-orders/by-units | physical | conditional |
| POST | /api/v1/trading/execution/demo/market-open-orders/by-units | physical | conditional |
| DELETE | /api/v1/trading/execution/demo/market-open-orders/{orderId} | physical | conditional |
| DELETE | /api/v1/trading/execution/demo/market-open-orders/{orderId} | physical | conditional |
| POST | /api/v1/trading/execution/limit-orders | physical | conditional |
| POST | /api/v1/trading/execution/limit-orders | physical | conditional |
| DELETE | /api/v1/trading/execution/limit-orders/{orderId} | physical | conditional |
| DELETE | /api/v1/trading/execution/limit-orders/{orderId} | physical | conditional |
| POST | /api/v1/trading/execution/market-close-orders/positions/{positionId} | physical | conditional |
| DELETE | /api/v1/trading/execution/market-close-orders/{orderId} | physical | conditional |
| POST | /api/v1/trading/execution/market-open-orders/by-amount | physical | conditional |
| POST | /api/v1/trading/execution/market-open-orders/by-amount | physical | conditional |
| POST | /api/v1/trading/execution/market-open-orders/by-units | physical | conditional |
| POST | /api/v1/trading/execution/market-open-orders/by-units | physical | conditional |
| DELETE | /api/v1/trading/execution/market-open-orders/{orderId} | physical | conditional |
| DELETE | /api/v1/trading/execution/market-open-orders/{orderId} | physical | conditional |
| POST | /api/v2/trading/execution/demo/orders | physical | conditional |
Source
Agentic Access
generated: '2026-07-15'
method: generated
source: openapi/deprecated-openapi.json, openapi/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: 160
by_action_class:
acting: 87
connected: 73
by_consequence:
physical: 28
read: 73
write: 59
human_in_the_loop_required: 0
operations:
- path: /api/v1/trading/execution/demo/limit-orders
method: post
operationId: openLimitOrderDemo
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: /api/v1/trading/execution/demo/limit-orders/{orderId}
method: delete
operationId: cancelLimitOrderDemo
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: /api/v1/trading/execution/demo/market-open-orders/by-amount
method: post
operationId: openMarketPositionByAmountDemo
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: /api/v1/trading/execution/demo/market-open-orders/by-units
method: post
operationId: openMarketPositionByUnitsDemo
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: /api/v1/trading/execution/demo/market-open-orders/{orderId}
method: delete
operationId: cancelOpenMarketOrderDemo
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: /api/v1/trading/execution/limit-orders
method: post
operationId: openLimitOrder
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: /api/v1/trading/execution/limit-orders/{orderId}
method: delete
operationId: cancelLimitOrder
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: /api/v1/trading/execution/market-open-orders/by-amount
method: post
operationId: openMarketPositionByAmount
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: /api/v1/trading/execution/market-open-orders/by-units
method: post
operationId: openMarketPositionByUnits
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: /api/v1/trading/execution/market-open-orders/{orderId}
method: delete
operationId: cancelOpenMarketOrder
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: /api/v1/trading/info/demo/orders/{orderId}
method: get
operationId: getDemoOrderForOpenInfo
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/trading/info/real/orders/{orderId}
method: get
operationId: getRealOrderForOpenInfo
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/trading/info/demo/eligibility
method: post
operationId: getInstrumentEligibilityDemo
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/v1/trading/info/eligibility
method: post
operationId: getInstrumentEligibility
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/v1/agent-portfolios
method: get
operationId: getAgentPortfolios
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/agent-portfolios
method: post
operationId: createAgentPortfolio
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/v1/agent-portfolios/{agentPortfolioId}
method: delete
operationId: deleteAgentPortfolio
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/v1/agent-portfolios/{agentPortfolioId}/user-tokens
method: post
operationId: createAgentPortfolioUserToken
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/v1/agent-portfolios/{agentPortfolioId}/user-tokens/{userTokenId}
method: delete
operationId: deleteAgentPortfolioUserToken
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/v1/agent-portfolios/{agentPortfolioId}/user-tokens/{userTokenId}
method: patch
operationId: updateAgentPortfolioUserToken
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/v1/attachments
method: post
operationId: uploadAMediaAttachment
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/v1/balances
method: get
operationId: getBalances
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/balances/history
method: get
operationId: getHistoricalBalances
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/balances/{accountType}
method: get
operationId: getBalancesByAccountType
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/balances/{accountType}/history
method: get
operationId: getHistoricalBalancesByAccountType
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/balances/{accountType}/{accountId}
method: get
operationId: getBalanceByAccount
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/balances/{accountType}/{accountId}/history
method: get
operationId: getHistoricalBalanceByAccount
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/clubs
method: get
operationId: getClubDashboardData
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/curated-lists
method: get
operationId: getCuratedLists
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/feeds/following
method: get
operationId: getFollowingFeed
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/feeds/for-you
method: get
operationId: getPersonalisedForYouFeed
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/feeds/instrument/{marketId}
method: get
operationId: getInstrumentFeedPosts
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/feeds/markets/{marketId}
method: get
operationId: getInstrumentFeedPosts2
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/feeds/news
method: get
operationId: getNewsFeed
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/feeds/post
method: post
operationId: createANewDiscussionPost
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/v1/feeds/saved
method: get
operationId: getSavedFeed
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/feeds/user/{userId}
method: get
operationId: getUserFeedPosts
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/feeds/users/{userId}
method: get
operationId: getUserFeedPosts2
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/feeds/users/{userId}/pinned
method: get
operationId: getUserPinnedFeedPosts
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/instruments/discover
method: get
operationId: discoverInstruments
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/instruments/{symbol}
method: get
operationId: getAnInstrumentBySymbol
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/instruments/{symbol}/{shortener}
method: get
operationId: getInstrumentSymbolUsingFieldShortener
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/market-data/exchanges
method: get
operationId: GetExchanges
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/market-data/instrument-types
method: get
operationId: GetInstrumentTypes
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/market-data/instruments
method: get
operationId: GetInstrumentsByFilters
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/market-data/instruments/history/closing-price
method: get
operationId: getClosingPrices
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/market-data/instruments/rates
method: get
operationId: retrieveCurrentMarketRatesPricingInformation
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/market-data/instruments/{instrumentId}/history/candles/{direction}/{interval}/{candlesCount}
method: get
operationId: getCandles
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/market-data/search
method: get
operationId: searchForInstruments
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/market-data/stocks-industries
method: get
operationId: GetStocksIndustries
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/market-recommendations/{itemsCount}
method: get
operationId: getMarketRecommendations
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/me
method: get
operationId: getAuthenticatedUserProfile
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/money/accounts/cash
method: post
operationId: createCashAccount
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/v1/money/accounts/cash
method: get
operationId: getCashAccounts
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/money/accounts/cash/eligibility
method: get
operationId: getCashAccountEligibility
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/money/accounts/cash/status
method: get
operationId: getCashAccountCreationStatus
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/money/accounts/cash/{accountId}
method: get
operationId: getCashAccountById
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/money/accounts/cash/{accountId}/transactions
method: get
operationId: listCashAccountTransactions
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/notifications/messages
method: get
operationId: getInAppNotifications
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/notifications/messages
method: patch
operationId: markAllNotificationsAsRead
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/v1/pi-data/copiers
method: get
operationId: getCopiersPublicInfo
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/posts
method: post
operationId: createANewDiscussionPost2
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/v1/posts/polls
method: post
operationId: createAPollPost
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/v1/posts/shares
method: post
operationId: shareAPost
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/v1/posts/{postId}
method: get
operationId: getASinglePostById
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/posts/{postId}
method: put
operationId: updateAnExistingPost
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/v1/posts/{postId}
method: delete
operationId: softDeleteAPost
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/v1/posts/{postId}/comments
method: post
operationId: createACommentOnAPost
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/v1/posts/{postId}/comments
method: get
operationId: listCommentsOnAPost
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/posts/{postId}/comments/{commentId}
method: put
operationId: updateAComment
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/v1/posts/{postId}/comments/{commentId}
method: delete
operationId: softDeleteAComment
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/v1/posts/{postId}/comments/{commentId}/likes
method: post
operationId: likeAComment
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/v1/posts/{postId}/comments/{commentId}/likes
method: delete
operationId: unlikeAComment
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/v1/posts/{postId}/comments/{commentId}/replies
method: get
operationId: listRepliesOnAComment
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/posts/{postId}/comments/{commentId}/replies
method: post
operationId: createAReply
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/v1/posts/{postId}/comments/{commentId}/replies/{replyId}
method: put
operationId: updateAReply
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/v1/posts/{postId}/comments/{commentId}/replies/{replyId}
method: delete
operationId: softDeleteAReply
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/v1/posts/{postId}/comments/{commentId}/replies/{replyId}/likes
method: post
operationId: likeAReply
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/v1/posts/{postId}/comments/{commentId}/replies/{replyId}/likes
method: delete
operationId: unlikeAReply
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/v1/posts/{postId}/follows
method: post
operationId: followAPost
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/v1/posts/{postId}/follows
method: delete
operationId: unfollowAPost
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/v1/posts/{postId}/likes
method: post
operationId: likeAPost
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/v1/posts/{postId}/likes
method: delete
operationId: unlikeAPost
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/v1/posts/{postId}/pins
method: post
operationId: pinPostUserSProfile
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/v1/posts/{postId}/pins
method: delete
operationId: unpinPostUserSProfile
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/v1/posts/{postId}/polls/{pollId}/options/{optionId}/votes
method: post
operationId: voteOnAPollOption
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/v1/posts/{postId}/polls/{pollId}/options/{optionId}/votes
method: delete
operationId: removeVotePollOption
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/v1/posts/{postId}/saves
method: post
operationId: saveAPost
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/v1/posts/{postId}/saves
method: delete
operationId: unsaveAPost
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/v1/posts/{postId}/shares
method: get
operationId: listSharesOfAPost
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/price-alerts
method: get
operationId: getPriceAlerts
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/price-alerts
method: post
operationId: createAPriceAlert
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/v1/price-alerts/{alertId}
method: patch
operationId: updateAPriceAlert
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/v1/price-alerts/{alertId}
method: delete
operationId: deleteAPriceAlert
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/v1/reactions/{postId}/comment
method: post
operationId: createACommentOnAPost2
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/v1/trading/execution/demo/market-close-orders/positions/{positionId}
method: post
operationId: closePositionByMarketRateDemo
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: /api/v1/trading/execution/demo/market-close-orders/{orderId}
method: delete
operationId: cancelCloseOrderDemo
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: /api/v1/trading/execution/market-close-orders/positions/{positionId}
method: post
operationId: closePositionByMarketRate
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: /api/v1/trading/execution/market-close-orders/{orderId}
method: delete
operationId: cancelCloseOrder
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: /api/v1/trading/info/aggregate-portfolio
method: get
operationId: getAggregatedPortfolio
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/trading/info/demo/aggregate-portfolio
method: get
operationId: getAggregatedPortfolioDemo
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/trading/info/demo/pnl
method: get
operationId: getDemoAccountPnl
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/trading/info/demo/portfolio
method: get
operationId: getPortfolioDemo
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/trading/info/portfolio
method: get
operationId: getPortfolio
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v1/trading/info/real/pnl
method: get
operationId: getRealAccountPnl
x-agentic-access:
action-class: connected
c
# --- truncated at 32 KB (49 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/etoro/refs/heads/main/agentic-access/etoro-agentic-access.yml