Exchange Rate

Retrieve exchange rates for cryptocurrency pairs with fixed or floating rates

Endpoint

GET/v1/rate

This endpoint does not require authentication

Purpose

The exchange rate endpoint allows you to retrieve current exchange rates between any two supported cryptocurrencies. You can choose between fixed rates (locked for a period) or floating rates (real-time market rates).

Fixed vs Float Rates

Fixed Rate

  • • Rate is locked for 15 minutes
  • • Higher fee (typically 1%)
  • • Guaranteed exchange amount
  • • Best for users who want certainty
  • • Rate expires if not used

Float Rate

  • • Real-time market rate
  • • Lower fee (typically 0.5%)
  • • Final amount may vary
  • • Best for users who want best rate
  • • Rate updates continuously

Query Parameters

ParameterRequiredDescription
fromYesSource currency code (e.g., BTC, USDT, BNB)
toYesDestination currency code
from_networkYes*Source network (required for tokens, e.g., ERC20, TRC20)
to_networkYes*Destination network (required for tokens)
amountYesAmount to exchange (numeric)
rate_typeNoRate type: "fixed" or "float" (default: "float")
directionNo"from" (default) or "to" - direction of amount calculation

* Network parameters are required for ERC20, TRC20, BEP20 tokens. Not required for native currencies like BTC, ETH.

Direction Parameter

The direction parameter determines how the amount is interpreted:

direction=from (Default)

Calculate how much you'll receive when sending a specific amount:

GET /v1/rate?from=BTC&to=USDT&amount=0.1&direction=from

Response: {
  "rate": 83134.00,
  "from_amount": 0.1,
  "to_amount": 8313.40,
  "fee": 83.13,
  "fee_percent": 1.0
}

"If I send 0.1 BTC, how much USDT will I receive?"

direction=to

Calculate how much you need to send to receive a specific amount:

GET /v1/rate?from=BTC&to=USDT&amount=1000&direction=to

Response: {
  "rate": 83134.00,
  "from_amount": 0.01204,
  "to_amount": 1000.00,
  "fee": 10.00,
  "fee_percent": 1.0
}

"How much BTC do I need to send to receive 1000 USDT?"

Request Examples

Basic Rate Query

curl -X GET "https://api.mintmove.io/v1/rate?from=BTC&to=USDT&amount=0.1&rate_type=fixed" \
  -H "Content-Type: application/json"

With Networks

curl -X GET "https://api.mintmove.io/v1/rate?from=USDT&from_network=ERC20&to=USDT&to_network=TRC20&amount=1000" \
  -H "Content-Type: application/json"

Response Example

{
  "success": true,
  "data": {
    "rate": 831.34,
    "from": "BNB",
    "from_network": "BEP20",
    "to": "USDT",
    "to_network": "ERC20",
    "from_amount": 1.202887,
    "to_amount": 1000.00,
    "rate_type": "fixed",
    "fee": 10.00,
    "fee_percent": 1.0,
    "expires_at": "2025-01-27T11:40:00Z",
    "min_amount": 0.01,
    "max_amount": 1000.0
  }
}

Response Fields

FieldDescription
rateExchange rate (1 from = rate to)
from_amountAmount to send (in source currency)
to_amountAmount to receive (in destination currency)
feeExchange fee amount
fee_percentExchange fee percentage
expires_atRate expiration time (ISO 8601, fixed rates only)
min_amount / max_amountMinimum and maximum exchange amounts

Error Responses

Invalid Currency Pair

{
  "error": true,
  "error_code": "INVALID_PAIR",
  "message": "Currency pair BTC/INVALID is not supported"
}

Amount Out of Range

{
  "error": true,
  "error_code": "AMOUNT_OUT_OF_RANGE",
  "message": "Amount must be between 0.01 and 1000.0",
  "min_amount": 0.01,
  "max_amount": 1000.0
}

Network Mismatch

{
  "error": true,
  "error_code": "NETWORK_MISMATCH",
  "message": "Network TRC20 is not supported for currency BTC"
}