Skip to content

Get Funding Rate

Retrieve current funding rates for perpetual markets. This is a public endpoint that returns market-wide funding rate information without requiring authentication.

Endpoint

POST https://papi.synthetix.io/v1/info

Request

Request Format

{
  "params": {
    "action": "getFundingRate",
    "symbol": "BTC-USDT"
  }
}

Request Parameters

ParameterTypeRequiredDescription
params.actionstringYesMust be "getFundingRate"
params.symbolstringYesTrading pair symbol (e.g., "BTC-USDT")

Example Request

cURL

curl -X POST https://papi.synthetix.io/info \
  -H "Content-Type: application/json" \
  -d '{
    "params": {
      "action": "getFundingRate",
      "symbol": "BTC-USDT"
    }
  }'

JavaScript

const response = await fetch('https://papi.synthetix.io/info', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    params: {
      action: 'getFundingRate',
      symbol: 'BTC-USDT'
    }
  })
});
 
const data = await response.json();
console.log(data);

Python

import requests
 
response = requests.post('https://papi.synthetix.io/info',
    json={
        "params": {
            "action": "getFundingRate",
            "symbol": "BTC-USDT"
        }
    }
)
 
data = response.json()
print(data)

Response

Success Response

{
  "status": "ok",
  "response": {
    "symbol": "BTC-USDT",
    "fundingRate": "0.00001250",
    "fundingTimestamp": 1735689600000,
    "nextFundingTime": 1735693200000,
    "fundingInterval": 3600000
  },
  "request_id": "5ccf215d37e3ae6d"
}

Funding Rate Object

FieldTypeDescription
symbolstringTrading pair symbol
fundingRatestringCurrent funding rate (1-hour rate, not annualized)
fundingTimestampintegerUnix milliseconds timestamp when funding rate was last updated
nextFundingTimeintegerUnix milliseconds timestamp of next funding payment
fundingIntervalintegerFunding interval in milliseconds (typically 3600000 for 1 hour)
nextFundingRatestringPredicted next funding rate (WebSocket only)

Note: Funding rates are expressed as 1-hour rates.

Funding Rate Calculation

The funding rate is calculated using:

  • Premium Rate: Difference between perpetual and spot prices
  • Interest Rate: Typically 0.01% per 1-hour period
  • Dampening Factor: Applied to smooth rate changes

Formula: Funding Rate = Premium Rate + clamp(Interest Rate - Premium Rate, -0.05%, 0.05%)

Understanding Funding Payments

  • Positive funding rate: Long positions pay short positions
  • Negative funding rate: Short positions pay long positions
  • Payment frequency: Every 1 hour (hourly basis)
  • Rate basis: 1-hour rate (multiply by 24 for daily, 1095 for annual)

:::info Rate Limits The Synthetix API enforces rate limits to ensure fair usage and system stability:

  • Order Placement: 100 orders per second per subaccount
  • WebSocket Connections: 100 connections per IP address
  • WebSocket Subscriptions: 1000 subscriptions per IP address

See Rate Limits for detailed information and best practices. :::

Error Responses

ErrorDescription
Invalid signatureEIP-712 signature validation failed
Invalid market symbolMarket symbol not recognized
Nonce already usedNonce must be greater than previous value
Rate limit exceededToo many requests in time window
Request expiredexpiresAfter timestamp has passed

Endpoint-Specific Errors

Error CodeError TypeDescriptionSolution
40002INVALID_SYMBOLInvalid or unsupported trading symbolUse valid symbol from getMarkets
50003FUNDING_DATA_UNAVAILABLEFunding rate data temporarily unavailableRetry request or check system status

Use Cases

Real-Time Funding Monitoring

// Monitor funding rates for risk management
const symbols = ['BTC-USDT', 'ETH-USDT', 'SOL-USDT'];
const fundingRates = await Promise.all(
  symbols.map(symbol => getFundingRate(symbol))
);

Funding Rate Alerts

// Set up alerts for extreme funding rates
if (Math.abs(parseFloat(fundingRate)) > 0.01) {
  console.log(`High funding rate alert: ${symbol} at ${fundingRate}`);
}

Related Endpoints