Skip to main content
POST
/
v1
/
swap
/
odos
Python (SDK)
from compass_api_sdk import CompassAPI, models


with CompassAPI(
    api_key_auth="<YOUR_API_KEY_HERE>",
) as compass_api:

    res = compass_api.swap.swap_odos(token_in="0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", token_out="0xdac17f958d2ee523a2206206994597c13d831ec7", amount=1.5, max_slippage_percent=0.5, chain=models.OdosSwapRequestChain.ARBITRUM, sender="0x29F20a192328eF1aD35e1564aBFf4Be9C5ce5f7B", estimate_gas=True)

    # Handle response
    print(res)
{
  "transaction": {
    "chainId": "<string>",
    "data": "<string>",
    "from": "<string>",
    "gas": "<string>",
    "to": "<string>",
    "value": "<string>",
    "nonce": "<string>",
    "maxFeePerGas": "<string>",
    "maxPriorityFeePerGas": "<string>"
  },
  "amount_out_quote": "<string>"
}

Authorizations

x-api-key
string
header
required

Your Compass API Key. Get your key here.

Body

application/json
token_in
string
required

The symbol or address of the token that is to be sold.

Examples:

"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"

token_out
string
required

The symbol or address of the token that is to be bought.

Examples:

"0xdac17f958d2ee523a2206206994597c13d831ec7"

amount
required

The amount of token_in to be sold.

Required range: x > 0
Examples:

1.5

max_slippage_percent
number
required

The maximum slippage allowed in percent. e.g. 1 means 1% slippage allowed.

Required range: 0 <= x <= 10
Examples:

0.5

chain
enum<string>
required
Available options:
arbitrum,
base,
ethereum
sender
string
required

The address of the transaction sender.

Examples:

"0x29F20a192328eF1aD35e1564aBFf4Be9C5ce5f7B"

action_type
string
default:ODOS_SWAP
Allowed value: "ODOS_SWAP"
estimate_gas
boolean
default:true

Determines whether to estimate gas costs for transactions, also verifying that the transaction can be successfully executed.

Response

Successful Response

transaction
object
required

The unsigned transaction data. User must sign and broadcast to network.

  • UnsignedTransaction
  • UserOperationResponse
amount_out_quote
string
required

The estimated amount out for the transaction. The actual output amount for this transaction is guaranteed be within the acceptable threshold, defined by the max_slippage_percent, relative to this quote.