River Markets Agentic Access
River Markets exposes 48 API operations that an AI agent could call, of which 24 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: 24 read, 16 write, and 8 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 | /v1/complex-orders | physical | conditional |
| POST | /v1/complex-orders/cancel-all | physical | conditional |
| DELETE | /v1/complex-orders/{complex_order_id} | physical | conditional |
| POST | /v1/orders | physical | conditional |
| POST | /v1/orders/cancel-all | physical | conditional |
| DELETE | /v1/orders/{order_id} | physical | conditional |
| PATCH | /v1/orders/{order_id} | physical | conditional |
| PUT | /v1/watchlists/{watchlist_id}/members/order | physical | conditional |
Source
Agentic Access
generated: '2026-07-21'
method: generated
source: openapi/river-markets-openapi-original.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: 48
by_action_class:
connected: 24
acting: 24
by_consequence:
read: 24
physical: 8
write: 16
human_in_the_loop_required: 0
operations:
- path: /v1/complex-orders
method: get
operationId: list_complex_orders_v1_complex_orders_get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/complex-orders
method: post
operationId: create_complex_order_v1_complex_orders_post
x-agentic-access:
action-class: acting
consequence: physical
subject: required
audience: null
token:
max-ttl: 300
exchange: true
purpose-required: true
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /v1/complex-orders/cancel-all
method: post
operationId: cancel_all_complex_orders_v1_complex_orders_cancel_all_post
x-agentic-access:
action-class: acting
consequence: physical
subject: required
audience: null
token:
max-ttl: 300
exchange: true
purpose-required: true
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /v1/complex-orders/{complex_order_id}
method: get
operationId: get_complex_order_v1_complex_orders__complex_order_id__get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/complex-orders/{complex_order_id}
method: delete
operationId: cancel_complex_order_v1_complex_orders__complex_order_id__delete
x-agentic-access:
action-class: acting
consequence: physical
subject: required
audience: null
token:
max-ttl: 300
exchange: true
purpose-required: true
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /v1/fair-values
method: get
operationId: list_fair_values_v1_fair_values_get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/fair-values
method: post
operationId: set_fair_value_v1_fair_values_post
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /v1/fair-values/{subaccount_id}/{river_id}
method: delete
operationId: delete_fair_value_v1_fair_values__subaccount_id___river_id__delete
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /v1/fills
method: get
operationId: get_fills_v1_fills_get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/generic-assets
method: get
operationId: list_generic_assets_v1_generic_assets_get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/generic-assets
method: post
operationId: create_generic_asset_v1_generic_assets_post
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /v1/generic-assets/{generic_asset_id}
method: get
operationId: get_generic_asset_v1_generic_assets__generic_asset_id__get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/generic-assets/{generic_asset_id}
method: patch
operationId: update_generic_asset_v1_generic_assets__generic_asset_id__patch
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /v1/generic-assets/{generic_asset_id}
method: delete
operationId: delete_generic_asset_v1_generic_assets__generic_asset_id__delete
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /v1/generic-assets/{generic_asset_id}/members
method: post
operationId: add_generic_asset_members_v1_generic_assets__generic_asset_id__members_post
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /v1/generic-assets/{generic_asset_id}/members
method: delete
operationId: remove_generic_asset_members_v1_generic_assets__generic_asset_id__members_delete
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /v1/balance/exchange
method: get
operationId: get_exchange_balance_v1_balance_exchange_get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/markets/search
method: get
operationId: search_markets_v1_markets_search_get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/markets/lookup
method: get
operationId: lookup_markets_v1_markets_lookup_get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/markets/match
method: get
operationId: match_market_v1_markets_match_get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/markets/match/batch
method: post
operationId: match_markets_batch_v1_markets_match_batch_post
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /v1/orderbooks/generic-asset/{generic_asset_id}
method: get
operationId: get_generic_asset_orderbook_v1_orderbooks_generic_asset__generic_asset_id__get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/orderbooks/{river_id}
method: get
operationId: get_orderbook_v1_orderbooks__river_id__get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/orders
method: post
operationId: create_order_v1_orders_post
x-agentic-access:
action-class: acting
consequence: physical
subject: required
audience: null
token:
max-ttl: 300
exchange: true
purpose-required: true
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /v1/orders
method: get
operationId: list_orders_v1_orders_get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/orders/{order_id}
method: get
operationId: get_order_v1_orders__order_id__get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/orders/{order_id}
method: delete
operationId: cancel_order_v1_orders__order_id__delete
x-agentic-access:
action-class: acting
consequence: physical
subject: required
audience: null
token:
max-ttl: 300
exchange: true
purpose-required: true
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /v1/orders/{order_id}
method: patch
operationId: edit_order_v1_orders__order_id__patch
x-agentic-access:
action-class: acting
consequence: physical
subject: required
audience: null
token:
max-ttl: 300
exchange: true
purpose-required: true
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /v1/orders/{order_id}/queue-position
method: get
operationId: get_order_queue_position_v1_orders__order_id__queue_position_get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/orders/cancel-all
method: post
operationId: cancel_all_orders_v1_orders_cancel_all_post
x-agentic-access:
action-class: acting
consequence: physical
subject: required
audience: null
token:
max-ttl: 300
exchange: true
purpose-required: true
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /v1/positions
method: get
operationId: get_positions_v1_positions_get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/prices/{river_id}/volume
method: get
operationId: get_volume_v1_prices__river_id__volume_get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/prices/volume
method: get
operationId: get_volume_batch_v1_prices_volume_get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/prices/{river_id}
method: get
operationId: get_prices_v1_prices__river_id__get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/subaccounts
method: get
operationId: list_subaccounts_v1_subaccounts_get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/subaccounts
method: post
operationId: create_subaccount_v1_subaccounts_post
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /v1/subaccounts/{subaccount_id}
method: get
operationId: get_subaccount_v1_subaccounts__subaccount_id__get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/subaccounts/{subaccount_id}
method: patch
operationId: update_subaccount_v1_subaccounts__subaccount_id__patch
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /v1/subaccounts/{subaccount_id}
method: delete
operationId: delete_subaccount_v1_subaccounts__subaccount_id__delete
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /v1/tradeprints
method: get
operationId: get_tradeprints_v1_tradeprints_get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/watchlists
method: get
operationId: list_watchlists_v1_watchlists_get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/watchlists
method: post
operationId: create_watchlist_v1_watchlists_post
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /v1/watchlists/{watchlist_id}
method: get
operationId: get_watchlist_v1_watchlists__watchlist_id__get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /v1/watchlists/{watchlist_id}
method: patch
operationId: update_watchlist_v1_watchlists__watchlist_id__patch
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /v1/watchlists/{watchlist_id}
method: delete
operationId: delete_watchlist_v1_watchlists__watchlist_id__delete
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /v1/watchlists/{watchlist_id}/members
method: post
operationId: add_watchlist_members_v1_watchlists__watchlist_id__members_post
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /v1/watchlists/{watchlist_id}/members
method: delete
operationId: remove_watchlist_members_v1_watchlists__watchlist_id__members_delete
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /v1/watchlists/{watchlist_id}/members/order
method: put
operationId: reorder_watchlist_members_v1_watchlists__watchlist_id__members_order_put
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