Notus API
De fi

Create Swap

This endpoint provides a real-time quote for a token swap, detailing the estimated destination token amount, fees, and other relevant parameters.

POST
/api/v1/crypto/swap

Authorization

x-api-key<token>

In: header

Request Body

application/jsonRequired
amountInRequiredstring

The amount to be swapped, expressed as a decimal string. Example: "1.2".

chainIdInRequirednumber

The blockchain network where the swap originates. Supported chains:

  • Arbitrum One: 42161
  • Avalanche: 43114
  • Base: 8453
  • BNB Smart Chain: 56
  • Ethereum: 1
  • OP Mainnet: 10
  • Polygon: 137
  • Gnosis: 100
chainIdOutRequirednumber

The blockchain network where the swapped asset will be sent to. Supported chains:

  • Arbitrum One: 42161
  • Avalanche: 43114
  • Base: 8453
  • BNB Smart Chain: 56
  • Ethereum: 1
  • OP Mainnet: 10
  • Polygon: 137
  • Gnosis: 100
swapProvidersarray<string>

Optional array of providers for the quote process. - Scenario 1: If not provided and the swap is within the same chain, the default provider will be "PARASWAP". - Scenario 2: If not provided and the swap is cross-chain, the default provider will be "XY". - Scenario 3: If an array is provided (e.g., ["XY", "LIFI", "PARASWAP"]), a quote will be performed for each specified provider.

gasFeePaymentMethodRequiredstring

Defines how the fee will be paid: "ADD_TO_AMOUNT" adds it to the input amount, while "DEDUCT_FROM_AMOUNT" subtracts it from the input amount.

Value in: "ADD_TO_AMOUNT" | "DEDUCT_FROM_AMOUNT"
payGasFeeTokenRequiredstring

The token address (in hexadecimal format) used to pay the transaction fee.

Pattern: "^0x[a-fA-F0-9]{40}$"
tokenInRequiredstring

The address (in hexadecimal format) of the token being swapped from.

Pattern: "^0x[a-fA-F0-9]{40}$"
tokenOutRequiredstring

The address (in hexadecimal format) of the token being swapped to.

Pattern: "^0x[a-fA-F0-9]{40}$"
walletAddressRequiredstring

The wallet address (in hexadecimal format) initiating the swap.

Pattern: "^0x[a-fA-F0-9]{40}$"
toAddressRequiredstring

The address (in hexadecimal format) receiving the swap.

Pattern: "^0x[a-fA-F0-9]{40}$"
transactionFeePercentnumber

Percentage fee to be charged (0 to 99%). The fee is deducted from the input token and sent to the treasuryAddress if configured.

Minimum: 0Maximum: 99.99
slippagenumber

Optional parameter controlling the maximum deviation allowed of the expected price of a trade and the actual price at which the trade is executed, with a minimum value of 0.5 and a maximum value of 99, default is 0.5, where 1 unit equals 1%.

Default: 0.5Minimum: 0.5Maximum: 99
metadataobject

Custom metadata for the transaction. Key-value pairs with string values. Max 1KB size.

curl -X POST "https://api.notus.team/api/v1/crypto/swap" \
  -H "x-api-key: <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "amountIn": "string",
    "chainIdIn": 0,
    "chainIdOut": 0,
    "swapProviders": [
      "PARASWAP"
    ],
    "gasFeePaymentMethod": "ADD_TO_AMOUNT",
    "payGasFeeToken": "string",
    "tokenIn": "string",
    "tokenOut": "string",
    "walletAddress": "string",
    "toAddress": "string",
    "transactionFeePercent": 0,
    "slippage": 0.5,
    "metadata": {
      "property1": "string",
      "property2": "string"
    }
  }'

{
  "quotes": [
    {
      "metadata": {
        "key": "value"
      },
      "quoteId": "string",
      "walletAddress": "string",
      "tokenIn": "string",
      "amountIn": "string",
      "tokenOut": "string",
      "chainIn": 0,
      "chainOut": 0,
      "minAmountOut": "string",
      "estimatedGasFees": {
        "payGasFeeToken": "string",
        "maxGasFeeToken": "string",
        "gasFeeTokenAmount": "string",
        "gasFeeTokenAmountUSD": "string",
        "maxGasFeeNative": "string"
      },
      "estimatedCollectedFee": {
        "collectedFeeToken": "string",
        "collectedFee": "string"
      },
      "amountInUSD": "string",
      "amountOutUSD": "string",
      "tokenInPrice": "string",
      "swapProvider": "PARASWAP",
      "expiresAt": 0
    }
  ]
}