OpenSea Swap Endpoints API
Swap endpoints for getting token swap quotes with executable transaction data
Swap endpoints for getting token swap quotes with executable transaction data
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/opensea-swap-endpoints-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: OpenSea Account Endpoints Swap Endpoints API
description: The API for OpenSea
contact:
name: OpenSea
url: https://www.opensea.io
email: contact@opensea.io
version: 2.0.0
servers:
- url: https://api.opensea.io
description: Production server
security:
- ApiKeyAuth: []
tags:
- name: Swap Endpoints
description: Swap endpoints for getting token swap quotes with executable transaction data
paths:
/api/v2/swap/execute:
post:
tags:
- Swap Endpoints
summary: Execute a token swap
description: Get executable transactions for token-to-token swaps. Supports same-chain and cross-chain swaps with multiple from/to assets.
operationId: post_swap_execute
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SwapExecuteRequest'
required: true
responses:
'200':
description: Swap execution data retrieved successfully
content:
'*/*':
schema:
$ref: '#/components/schemas/SwapExecuteResponse'
'400':
$ref: '#/components/responses/BadRequest'
'500':
$ref: '#/components/responses/InternalError'
/api/v2/swap/quote:
get:
tags:
- Swap Endpoints
summary: Get swap quote
description: Get a quote for swapping tokens, including price details and executable transaction data.
operationId: get_swap_quote
parameters:
- name: from_chain
in: query
description: Chain of the token to swap from
required: true
schema:
type: string
example: ethereum
- name: from_address
in: query
description: Contract address of the token to swap from
required: true
schema:
type: string
example: '0x0000000000000000000000000000000000000000'
- name: to_chain
in: query
description: Chain of the token to swap to
required: true
schema:
type: string
example: ethereum
- name: to_address
in: query
description: Contract address of the token to swap to
required: true
schema:
type: string
example: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48'
- name: quantity
in: query
description: Amount to swap in the smallest unit of the token (e.g. wei for ETH)
required: true
schema:
type: string
example: 1000000000000000000
- name: address
in: query
description: Wallet address executing the swap
required: true
schema:
type: string
example: '0x1234567890abcdef1234567890abcdef12345678'
- name: slippage
in: query
description: 'Slippage tolerance (0.0 to 0.5, default: 0.01)'
required: false
schema:
type: number
format: double
default: 0.01
example: 0.01
- name: recipient
in: query
description: Recipient address (defaults to sender address)
required: false
schema:
type: string
example: '0x1234567890abcdef1234567890abcdef12345678'
responses:
'200':
description: OK
content:
'*/*':
schema:
$ref: '#/components/schemas/SwapQuoteResponse'
'400':
$ref: '#/components/responses/BadRequest'
'500':
$ref: '#/components/responses/InternalError'
components:
schemas:
SwapExecuteResponse:
type: object
description: Response containing quote details and executable swap transactions
properties:
quote:
$ref: '#/components/schemas/SwapQuoteDetails'
description: Price and fee details for the swap
transactions:
type: array
description: Ordered list of transactions to execute the swap
items:
$ref: '#/components/schemas/SwapTransactionResponse'
required:
- quote
- transactions
SwapTransactionResponse:
type: object
description: A transaction to be submitted onchain to execute a swap
properties:
chain:
type: string
description: The blockchain for this transaction
example: ethereum
to:
type: string
description: The destination address for the transaction
data:
type: string
description: 'The transaction data. For EVM chains: hex-encoded calldata. For SVM chains: comma-separated instructions in programId:data format.'
value:
type: string
description: The native token value to send with the transaction
required:
- chain
- data
SwapPriceImpact:
type: object
description: Price impact of the swap
properties:
usd:
type: string
description: Price impact in USD (negative means user loses value)
example: -1.5
percent:
type: string
description: Price impact as a percentage (negative means user loses value)
example: -0.08
required:
- percent
- usd
SwapCostResponse:
type: object
description: A cost component of the swap
properties:
type:
type: string
description: The type of cost
enum:
- GAS
- PROVIDER
- PROTOCOL
- SWAP
- MARKETPLACE
- CREATOR
- MEV_PROTECTION
example: GAS
usd:
type: string
description: Cost amount in USD
example: 0.5
required:
- type
- usd
SwapQuoteDetails:
type: object
description: Price and fee details for a swap quote
properties:
total_price_usd:
type: number
format: double
description: Total value of tokens received in USD
example: 1850.5
total_cost_usd:
type: number
format: double
description: Total cost of tokens sent in USD
example: 1869
slippage_tolerance:
type: number
format: double
description: Slippage tolerance as a decimal (e.g. 0.01 = 1%)
example: 0.01
estimated_duration_ms:
type: integer
format: int64
description: Estimated swap duration in milliseconds
example: 30000
marketplace_fee_bps:
type: integer
format: int32
description: Marketplace fee in basis points
example: 50
price_impact:
$ref: '#/components/schemas/SwapPriceImpact'
description: Price impact of the swap (null if unavailable)
swap_provider:
type: string
description: The swap provider that fulfilled this quote (null if unavailable)
example: RELAY
recommended_slippage:
type: number
format: double
description: Recommended slippage tolerance based on volatility analysis (null if unavailable)
example: 2
costs:
type: array
description: Breakdown of costs for the swap
items:
$ref: '#/components/schemas/SwapCostResponse'
route_errors:
type: array
description: Errors encountered for individual swap routes
items:
$ref: '#/components/schemas/SwapRouteErrorResponse'
required:
- costs
- estimated_duration_ms
- marketplace_fee_bps
- route_errors
- slippage_tolerance
- total_cost_usd
- total_price_usd
SwapAssetInput:
type: object
description: An asset to swap with chain, contract address, and amount
properties:
chain:
type: string
description: Chain slug (e.g. ethereum, base, solana)
example: ethereum
contract:
type: string
description: Contract address of the token
example: '0x0000000000000000000000000000000000000000'
amount:
type: string
description: Amount in the smallest unit of the token (e.g. wei for ETH). Use "0" for to_assets to receive the market rate.
example: 1000000000000000000
required:
- amount
- chain
- contract
SwapExecuteRequest:
type: object
description: Request body for executing a token swap
properties:
from_assets:
type: array
description: Tokens to swap from (at least one required)
items:
$ref: '#/components/schemas/SwapAssetInput'
to_assets:
type: array
description: Tokens to swap to (at least one required)
items:
$ref: '#/components/schemas/SwapAssetInput'
address:
type: string
description: Wallet address executing the swap
example: '0x1234567890abcdef1234567890abcdef12345678'
recipient:
type: string
description: Recipient address (defaults to sender address)
slippage_tolerance:
type: number
format: double
description: 'Slippage tolerance as a decimal (0.0 to 0.5, default: 0.01)'
example: 0.01
required:
- address
- from_assets
- to_assets
SwapQuoteResponse:
type: object
description: Swap quote with price details and executable transactions
properties:
quote:
$ref: '#/components/schemas/SwapQuoteDetails'
description: Price and fee details for the swap
transactions:
type: array
description: Transactions to execute the swap
items:
$ref: '#/components/schemas/SwapTransactionResponse'
required:
- quote
- transactions
SwapRouteErrorResponse:
type: object
description: An error encountered for a specific swap route
properties:
type:
type: string
description: The error type
example: INSUFFICIENT_FUNDS
required:
- type
responses:
InternalError:
description: Internal server error. Please open a support ticket so OpenSea can investigate.
BadRequest:
description: For error reasons, review the response data.
securitySchemes:
ApiKeyAuth:
type: apiKey
description: API key required for authentication
name: x-api-key
in: header
x-tagGroups:
- name: Data & Discovery
tags:
- Chain Endpoints
- Account Endpoints
- Collection Endpoints
- NFT Endpoints
- Contract Endpoints
- Token Endpoints
- Search Endpoints
- name: Marketplace & Trading
tags:
- Listing Endpoints
- Offer Endpoints
- Order Endpoints
- Swap Endpoints
- Drops Endpoints
- name: Analytics & Events
tags:
- Analytics Endpoints
- name: Tools [Beta]
tags:
- Tool Endpoints [Beta]
- name: Transactions
tags:
- Transaction Endpoints