Phemex Agentic Access
Phemex exposes 89 API operations that an AI agent could call, of which 32 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: 57 read, 7 write, and 25 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 | /assets/futures/sub-accounts/transfer | physical | conditional |
| POST | /assets/spots/sub-accounts/transfer | physical | conditional |
| POST | /assets/transfer | physical | conditional |
| POST | /assets/universal-transfer | physical | conditional |
| POST | /exchange/wallets/cancelWithdraw | physical | conditional |
| POST | /exchange/wallets/createWithdraw | physical | conditional |
| POST | /exchange/wallets/transferIn | physical | conditional |
| POST | /exchange/wallets/transferOut | physical | conditional |
| POST | /g-orders | physical | conditional |
| DELETE | /g-orders | physical | conditional |
| DELETE | /g-orders/all | physical | conditional |
| DELETE | /g-orders/cancel | physical | conditional |
| PUT | /g-orders/create | physical | conditional |
| PUT | /g-orders/replace | physical | conditional |
| POST | /orders | physical | conditional |
| DELETE | /orders | physical | conditional |
| DELETE | /orders/all | physical | conditional |
| DELETE | /orders/cancel | physical | conditional |
| PUT | /orders/create | physical | conditional |
| PUT | /orders/replace | physical | conditional |
| POST | /spot/orders | physical | conditional |
| PUT | /spot/orders | physical | conditional |
| DELETE | /spot/orders | physical | conditional |
| DELETE | /spot/orders/all | physical | conditional |
| PUT | /spot/orders/create | physical | conditional |
Source
Agentic Access
generated: '2026-07-15'
method: generated
source: openapi/contract.yml, openapi/hedged-perpetual.yml, openapi/spot.yml, openapi/transfer.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: 89
by_action_class:
connected: 57
acting: 32
by_consequence:
read: 57
physical: 25
write: 7
human_in_the_loop_required: 0
operations:
- path: /public/products
method: get
operationId: getContractProducts
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /orders
method: post
operationId: placeContractOrder
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: /orders
method: delete
operationId: bulkCancelContractOrders
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: /orders/create
method: put
operationId: createContractOrderQueryString
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: /orders/replace
method: put
operationId: modifyContractOrder
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: /orders/cancel
method: delete
operationId: cancelContractOrder
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: /orders/all
method: delete
operationId: cancelAllContractOrders
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: /orders/activeList
method: get
operationId: getActiveContractOrders
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /accounts/accountPositions
method: get
operationId: getContractAccountPositions
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /accounts/positions
method: get
operationId: getContractPositions
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /positions/leverage
method: put
operationId: setContractLeverage
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: /positions/riskLimit
method: put
operationId: setContractRiskLimit
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: /positions/assign
method: post
operationId: assignContractMargin
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: /exchange/order/list
method: get
operationId: getContractOrderHistory
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /exchange/order
method: get
operationId: getContractOrderById
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /exchange/order/trade
method: get
operationId: getContractTradeHistory
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /md/orderbook
method: get
operationId: getContractOrderBook
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /md/trade
method: get
operationId: getContractRecentTrades
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /exchange/public/md/v2/kline
method: get
operationId: getContractKlines
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/md/ticker/24hr
method: get
operationId: getContractTicker24hr
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api-data/futures/funding-fees
method: get
operationId: getContractFundingFees
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api-data/futures/orders
method: get
operationId: getFuturesOrderHistory
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api-data/futures/orders/by-order-id
method: get
operationId: getFuturesOrderById
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api-data/futures/trades
method: get
operationId: getFuturesTradeHistory
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api-data/futures/trading-fees
method: get
operationId: getFuturesTradingFees
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /exchange/wallets/transferOut
method: post
operationId: contractTransferOut
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: /exchange/wallets/transferIn
method: post
operationId: contractTransferIn
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: /exchange/wallets/createWithdraw
method: post
operationId: createWithdraw
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: /exchange/wallets/cancelWithdraw
method: post
operationId: cancelWithdraw
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: /exchange/wallets/withdrawList
method: get
operationId: getWithdrawHistory
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /public/products
method: get
operationId: getHedgedProducts
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /g-orders
method: post
operationId: placeHedgedOrder
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: /g-orders
method: delete
operationId: bulkCancelHedgedOrders
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: /g-orders/create
method: put
operationId: createHedgedOrderQueryString
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: /g-orders/replace
method: put
operationId: modifyHedgedOrder
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: /g-orders/cancel
method: delete
operationId: cancelHedgedOrder
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: /g-orders/all
method: delete
operationId: cancelAllHedgedOrders
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: /g-orders/activeList
method: get
operationId: getActiveHedgedOrders
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /g-accounts/accountPositions
method: get
operationId: getHedgedAccountPositions
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /g-accounts/positions
method: get
operationId: getHedgedPositions
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /g-positions/switch-pos-mode-sync
method: put
operationId: switchPositionMode
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: /g-positions/leverage
method: put
operationId: setHedgedLeverage
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: /g-positions/assign
method: post
operationId: assignHedgedMargin
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: /exchange/order/v2/orderList
method: get
operationId: getHedgedClosedOrders
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /exchange/order/v2/tradingList
method: get
operationId: getHedgedTrades
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /md/v2/orderbook
method: get
operationId: getHedgedOrderBook
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /md/v2/trade
method: get
operationId: getHedgedRecentTrades
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /md/v2/ticker/24hr
method: get
operationId: getHedgedTicker24hr
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /exchange/public/md/v2/kline/last
method: get
operationId: getHedgedKlineLast
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /exchange/public/md/v2/kline/list
method: get
operationId: getHedgedKlineList
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api-data/g-futures/funding-fees
method: get
operationId: getHedgedFundingFees
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api-data/g-futures/orders
method: get
operationId: getHedgedOrderHistory
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api-data/g-futures/orders/by-order-id
method: get
operationId: getHedgedOrderById
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api-data/g-futures/trades
method: get
operationId: getHedgedTradeHistory
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api-data/g-futures/trading-fees
method: get
operationId: getHedgedTradingFees
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /public/products
method: get
operationId: getSpotProducts
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /md/orderbook
method: get
operationId: getSpotOrderBook
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /md/trade
method: get
operationId: getSpotRecentTrades
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /md/spot/ticker/24hr
method: get
operationId: getSpotTicker24hr
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/md/orderbook
method: get
operationId: getSpotOrderBookV1
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /spot/orders
method: post
operationId: placeSpotOrder
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: /spot/orders
method: put
operationId: modifySpotOrder
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: /spot/orders
method: delete
operationId: cancelSpotOrder
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: /spot/orders
method: get
operationId: listSpotActiveOrders
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /spot/orders/create
method: put
operationId: createSpotOrderQueryString
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: /spot/orders/all
method: delete
operationId: cancelAllSpotOrders
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: /spot/orders/active
method: get
operationId: getSpotActiveOrder
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /spot/wallets
method: get
operationId: getSpotWallets
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /exchange/spot/order
method: get
operationId: getSpotClosedOrders
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /exchange/spot/order/trades
method: get
operationId: getSpotTradeHistory
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /exchange/wallets/v2/depositAddress
method: get
operationId: getSpotDepositAddress
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /exchange/wallets/depositList
method: get
operationId: getSpotDepositHistory
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /exchange/wallets/withdrawList
method: get
operationId: getSpotWithdrawHistory
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api-data/spots/funds
method: get
operationId: getSpotFundsHistory
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api-data/spots/orders
method: get
operationId: getSpotOrderHistory
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api-data/spots/orders/by-order-id
method: get
operationId: getSpotOrdersByOrderId
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api-data/spots/pnls
method: get
operationId: getSpotPnls
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api-data/spots/trades
method: get
operationId: getSpotTradesHistory
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api-data/spots/trades/by-order-id
method: get
operationId: getSpotTradesByOrderId
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /assets/transfer
method: post
operationId: transferBetweenAccountTypes
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: /assets/transfer
method: get
operationId: getTransferHistory
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /assets/spots/sub-accounts/transfer
method: post
operationId: transferSpotSubAccount
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: /assets/spots/sub-accounts/transfer
method: get
operationId: getSpotSubAccountTransferHistory
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /assets/futures/sub-accounts/transfer
method: post
operationId: transferFuturesSubAccount
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: /assets/futures/sub-accounts/transfer
method: get
operationId: getFuturesSubAccountTransferHistory
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /assets/universal-transfer
method: post
operationId: universalTransfer
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: /assets/quote
method: get
operationId: getConversionQuote
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /assets/convert
method: post
operationId: executeConversion
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: /assets/convert
method: get
operationId: getConversionHistory
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none