OpenSea Agentic Access
OpenSea exposes 83 API operations that an AI agent could call, of which 22 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: 61 read, 14 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 | /api/v2/assets/transfer | physical | conditional |
| POST | /api/v2/drops/deploy | physical | conditional |
| POST | /api/v2/listings/cross_chain_fulfillment_data | physical | conditional |
| POST | /api/v2/listings/fulfillment_data | physical | conditional |
| POST | /api/v2/offers/fulfillment_data | physical | conditional |
| POST | /api/v2/orders/chain/{chain}/protocol/{protocol_address}/{order_hash}/cancel | physical | conditional |
| POST | /api/v2/orders/{chain}/{protocol}/listings | physical | conditional |
| POST | /api/v2/orders/{chain}/{protocol}/offers | physical | conditional |
Source
Agentic Access
generated: '2026-07-15'
method: generated
source: openapi/opensea-api.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: 83
by_action_class:
acting: 22
connected: 61
by_consequence:
write: 14
physical: 8
read: 61
human_in_the_loop_required: 0
operations:
- path: /api/v2/transactions/receipt
method: post
operationId: get_transaction_receipt
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/v2/tools/usage
method: post
operationId: report_tool_usage
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/v2/tokens/batch
method: post
operationId: get_tokens_batch
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/v2/swap/execute
method: post
operationId: post_swap_execute
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/v2/orders/{chain}/{protocol}/offers
method: post
operationId: post_offer
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/v2/orders/{chain}/{protocol}/listings
method: post
operationId: post_listing
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/v2/orders/chain/{chain}/protocol/{protocol_address}/{order_hash}/cancel
method: post
operationId: cancel_order
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/v2/offers
method: post
operationId: post_criteria_offer_v2
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/v2/offers/fulfillment_data
method: post
operationId: generate_offer_fulfillment_data_v2
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/v2/offers/build
method: post
operationId: build_offer_v2
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/v2/nfts/batch
method: post
operationId: get_nfts_batch
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/v2/listings/sweep
method: post
operationId: sweep_collection
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/v2/listings/fulfillment_data
method: post
operationId: generate_listing_fulfillment_data_v2
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/v2/listings/cross_chain_fulfillment_data
method: post
operationId: generate_cross_chain_listing_fulfillment_data
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/v2/listings/actions
method: post
operationId: create_listing_actions
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/v2/drops/{slug}/mint
method: post
operationId: build_drop_mint_transaction
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/v2/drops/deploy
method: post
operationId: deploy_drop_contract
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/v2/collections/batch
method: post
operationId: get_collections_batch
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/v2/chain/{chain}/contract/{address}/nfts/{identifier}/validate-metadata
method: post
operationId: validate_nft_metadata
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/v2/chain/{chain}/contract/{address}/nfts/{identifier}/refresh
method: post
operationId: refresh_nft_metadata
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/v2/auth/keys
method: post
operationId: create_instant_api_key
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/v2/assets/transfer
method: post
operationId: transfer_assets
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/v2/traits/{slug}
method: get
operationId: get_collection_traits
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v2/tools
method: get
operationId: list_tools
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v2/tools/{registry_chain}/{registry_addr}/{tool_id}
method: get
operationId: get_tool
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v2/tools/search
method: get
operationId: search_tools
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v2/tokens/trending
method: get
operationId: get_trending_tokens
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v2/tokens/top
method: get
operationId: get_top_tokens
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v2/token-groups
method: get
operationId: get_token_groups
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v2/token-groups/{slug}
method: get
operationId: get_token_group
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v2/swap/quote
method: get
operationId: get_swap_quote
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v2/search
method: get
operationId: search
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v2/orders/chain/{chain}/protocol/{protocol_address}/{order_hash}
method: get
operationId: get_order
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v2/offers/collection/{slug}
method: get
operationId: get_offers_collection
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v2/offers/collection/{slug}/traits
method: get
operationId: get_offers_collection_trait
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v2/offers/collection/{slug}/nfts/{identifier}
method: get
operationId: get_offers_nft
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v2/offers/collection/{slug}/nfts/{identifier}/best
method: get
operationId: get_best_offer_nft
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v2/offers/collection/{slug}/all
method: get
operationId: list_offers_collection_all
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v2/metadata/{chain}/{contractAddress}/{tokenId}
method: get
operationId: get_nft_metadata
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v2/listings/collection/{slug}/nfts/{identifier}/best
method: get
operationId: get_best_listing_nft
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v2/listings/collection/{slug}/best
method: get
operationId: get_best_listings_collection
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v2/listings/collection/{slug}/all
method: get
operationId: list_listings_collection_all
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v2/events
method: get
operationId: list_events
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v2/events/collection/{slug}
method: get
operationId: list_events_by_collection
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v2/events/chain/{chain}/contract/{address}/nfts/{identifier}
method: get
operationId: list_events_by_nft
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v2/events/accounts/{address}
method: get
operationId: list_events_by_account
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v2/drops
method: get
operationId: get_drops
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v2/drops/{slug}
method: get
operationId: get_drop_by_slug
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v2/drops/deploy/{chain}/{tx_hash}/receipt
method: get
operationId: get_deploy_contract_receipt
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v2/collections
method: get
operationId: list_collections
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v2/collections/{slug}
method: get
operationId: get_collection
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v2/collections/{slug}/stats
method: get
operationId: get_collection_stats
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v2/collections/{slug}/offer_aggregates
method: get
operationId: get_collection_offer_aggregates
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v2/collections/{slug}/holders
method: get
operationId: get_collection_holders
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v2/collections/{slug}/floor_prices
method: get
operationId: get_collection_floor_prices
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v2/collections/trending
method: get
operationId: get_trending_collections
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v2/collections/top
method: get
operationId: get_top_collections
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v2/collection/{slug}/nfts
method: get
operationId: get_nfts_by_collection
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v2/chains
method: get
operationId: get_chains
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v2/chain/{chain}/token/{address}
method: get
operationId: get_token
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v2/chain/{chain}/token/{address}/price_history
method: get
operationId: get_token_price_history
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v2/chain/{chain}/token/{address}/ohlcv
method: get
operationId: get_token_ohlcv
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v2/chain/{chain}/token/{address}/liquidity-pools
method: get
operationId: get_token_liquidity_pools
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v2/chain/{chain}/token/{address}/holders
method: get
operationId: get_token_holders
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v2/chain/{chain}/token/{address}/activity
method: get
operationId: get_token_activity
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v2/chain/{chain}/payment_token/{address}
method: get
operationId: get_payment_token
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v2/chain/{chain}/contract/{address}
method: get
operationId: get_contract
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v2/chain/{chain}/contract/{address}/nfts
method: get
operationId: get_nfts_by_contract
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v2/chain/{chain}/contract/{address}/nfts/{identifier}
method: get
operationId: get_nft
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v2/chain/{chain}/contract/{address}/nfts/{identifier}/owners
method: get
operationId: get_nft_owners
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v2/chain/{chain}/contract/{address}/nfts/{identifier}/collection
method: get
operationId: get_nft_collection
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v2/chain/{chain}/contract/{address}/nfts/{identifier}/analytics
method: get
operationId: get_nft_analytics
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v2/chain/{chain}/account/{address}/nfts
method: get
operationId: get_nfts_by_account
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v2/accounts/{address_or_username}
method: get
operationId: get_account
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v2/accounts/resolve/{identifier}
method: get
operationId: resolve_account
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v2/account/{address}/tokens
method: get
operationId: get_token_balances_by_account
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v2/account/{address}/portfolio
method: get
operationId: get_portfolio_stats
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v2/account/{address}/portfolio/history
method: get
operationId: get_portfolio_history
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v2/account/{address}/offers_received
method: get
operationId: get_profile_offers_received
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v2/account/{address}/offers
method: get
operationId: get_profile_offers
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v2/account/{address}/listings
method: get
operationId: get_profile_listings
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v2/account/{address}/favorites
method: get
operationId: get_profile_favorites
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/v2/account/{address}/collections
method: get
operationId: get_profile_collections
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none