Skip to main content
POST
/
swap
/
execute
Execute Swap
curl --request POST \
  --url https://api.coinvoyage.io/v3/swap/execute \
  --header 'Content-Type: application/json' \
  --header 'X-API-KEY: <api-key>' \
  --data '
{
  "amount": "100.0",
  "destination": {
    "currency": {
      "address": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
      "chain_id": 30000000000001
    },
    "recipient": "0x1234...abcd"
  },
  "metadata": {
    "items": [
      {
        "currency": "USD",
        "description": "High-quality widget with extra features",
        "image": "https://example.com/images/widget.png",
        "name": "Premium Widget",
        "quantity": 2,
        "unit_price": 49.99
      }
    ],
    "refund": {
      "additional_info": "Item was never shipped",
      "currency": "USD",
      "name": "Order Cancellation",
      "reason": "Customer requested refund",
      "refund_amount": 99.98
    }
  },
  "source": {
    "currency": {
      "address": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
      "chain_id": 30000000000001
    },
    "sender_address": "0x1234...abcd",
    "slippage_bps": 50
  },
  "trade_type": "EXACT_OUTPUT"
}
'
{
  "data": {
    "destination_tx_hash": "0x5678...efgh",
    "estimated_duration_seconds": 120,
    "expires_at": "2023-01-01T00:00:00Z",
    "fee_tx_hash": "0xfee1...fee2",
    "input": {
      "amount": {
        "raw": "100000000",
        "ui": "100.0",
        "value_usd": 100
      },
      "balance": {
        "raw": "100000000",
        "ui": "100.0",
        "value_usd": 100
      },
      "breakdown": {
        "base": {
          "raw": "100000000",
          "ui": "100.0",
          "value_usd": 100
        },
        "fees": {
          "custom_fee": {
            "raw": "100000000",
            "ui": "100.0",
            "value_usd": 100
          },
          "protocol_fee": {
            "raw": "100000000",
            "ui": "100.0",
            "value_usd": 100
          },
          "relayer_fee": {
            "raw": "100000000",
            "ui": "100.0",
            "value_usd": 100
          },
          "total_fee": {
            "raw": "100000000",
            "ui": "100.0",
            "value_usd": 100
          }
        },
        "gas": {
          "raw": "100000000",
          "ui": "100.0",
          "value_usd": 100
        },
        "total": {
          "raw": "100000000",
          "ui": "100.0",
          "value_usd": 100
        }
      },
      "currency": {
        "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
        "chain_id": 1,
        "decimals": 6,
        "id": "1:0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
        "name": "USD Coin",
        "price_usd": 1,
        "symbol": "USDC"
      }
    },
    "output": {
      "amount": {
        "raw": "100000000",
        "ui": "100.0",
        "value_usd": 100
      },
      "amount_out_minimum": {
        "raw": "100000000",
        "ui": "100.0",
        "value_usd": 100
      },
      "currency": {
        "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
        "chain_id": 1,
        "decimals": 6,
        "id": "1:0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
        "name": "USD Coin",
        "price_usd": 1,
        "symbol": "USDC"
      }
    },
    "payment_rail": "CRYPTO",
    "recipient": "0x1234...abcd",
    "refund": {
      "address": "0x1234...abcd",
      "reason": "execution failed: provider error",
      "tx_hash": "0x9abc...ijkl"
    },
    "source_tx_hash": "0x1234...abcd",
    "steps": [
      {
        "deposit_address": "5xVt9ovu6g6E4gvz9K9eV4kxY7yQZ8h3kZ2vY8xZ5xVt",
        "kind": "deposit",
        "rail": "CRYPTO"
      }
    ]
  }
}

Authorizations

X-API-KEY
string
header
required

Headers

X-API-KEY
string
required

API key for authentication

Body

application/json
trade_type
enum<string>
required

Whether the source or destination amount is fixed.

Available options:
EXACT_INPUT,
EXACT_OUTPUT
Example:

"EXACT_OUTPUT"

amount
string
required
Example:

"100.0"

source
object
required
Example:
{
  "currency": {
    "address": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
    "chain_id": 30000000000001
  },
  "sender_address": "0x1234...abcd",
  "slippage_bps": 50
}
destination
object
required
Example:
{
  "currency": {
    "address": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
    "chain_id": 30000000000001
  },
  "recipient": "0x1234...abcd"
}
metadata
object
Example:
{
  "items": [
    {
      "currency": "USD",
      "description": "High-quality widget with extra features",
      "image": "https://example.com/images/widget.png",
      "name": "Premium Widget",
      "quantity": 2,
      "unit_price": 49.99
    }
  ],
  "refund": {
    "additional_info": "Item was never shipped",
    "currency": "USD",
    "name": "Order Cancellation",
    "reason": "Customer requested refund",
    "refund_amount": 99.98
  }
}

Response

Swap order created; fund the deposit

order_id
string
required
status
enum<string>
required
Available options:
PENDING,
EXPIRED,
FAILED,
AWAITING_PAYMENT,
OPTIMISTIC_CONFIRMED,
AWAITING_CONFIRMATION,
EXECUTING_ORDER,
COMPLETED,
REFUNDED,
PARTIAL_PAYMENT
data
object
required
Example:
{
  "destination_tx_hash": "0x5678...efgh",
  "estimated_duration_seconds": 120,
  "expires_at": "2023-01-01T00:00:00Z",
  "fee_tx_hash": "0xfee1...fee2",
  "input": {
    "amount": {
      "raw": "100000000",
      "ui": "100.0",
      "value_usd": 100
    },
    "balance": {
      "raw": "100000000",
      "ui": "100.0",
      "value_usd": 100
    },
    "breakdown": {
      "base": {
        "raw": "100000000",
        "ui": "100.0",
        "value_usd": 100
      },
      "fees": {
        "custom_fee": {
          "raw": "100000000",
          "ui": "100.0",
          "value_usd": 100
        },
        "protocol_fee": {
          "raw": "100000000",
          "ui": "100.0",
          "value_usd": 100
        },
        "relayer_fee": {
          "raw": "100000000",
          "ui": "100.0",
          "value_usd": 100
        },
        "total_fee": {
          "raw": "100000000",
          "ui": "100.0",
          "value_usd": 100
        }
      },
      "gas": {
        "raw": "100000000",
        "ui": "100.0",
        "value_usd": 100
      },
      "total": {
        "raw": "100000000",
        "ui": "100.0",
        "value_usd": 100
      }
    },
    "currency": {
      "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
      "chain_id": 1,
      "decimals": 6,
      "id": "1:0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
      "name": "USD Coin",
      "price_usd": 1,
      "symbol": "USDC"
    }
  },
  "output": {
    "amount": {
      "raw": "100000000",
      "ui": "100.0",
      "value_usd": 100
    },
    "amount_out_minimum": {
      "raw": "100000000",
      "ui": "100.0",
      "value_usd": 100
    },
    "currency": {
      "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
      "chain_id": 1,
      "decimals": 6,
      "id": "1:0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
      "name": "USD Coin",
      "price_usd": 1,
      "symbol": "USDC"
    }
  },
  "payment_rail": "CRYPTO",
  "recipient": "0x1234...abcd",
  "refund": {
    "address": "0x1234...abcd",
    "reason": "execution failed: provider error",
    "tx_hash": "0x9abc...ijkl"
  },
  "source_tx_hash": "0x1234...abcd",
  "steps": [
    {
      "deposit_address": "5xVt9ovu6g6E4gvz9K9eV4kxY7yQZ8h3kZ2vY8xZ5xVt",
      "kind": "deposit",
      "rail": "CRYPTO"
    }
  ]
}