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",
    "estimatedFundingRate": "0.000010960225996",
    "lastSettlementRate": "0.00001250",
    "lastSettlementTime": 1735689600000,
    "nextFundingTime": 1735693200000,
    "fundingInterval": 3600000
  },
  "request_id": "5ccf215d37e3ae6d"
}

Funding Rate Object

FieldTypeDescription
symbolstringTrading pair symbol (e.g., "BTC-USDT")
estimatedFundingRatestringEstimated funding rate for the next settlement period (1-hour rolling TWAP, not annualized)
lastSettlementRatestringThe actual funding rate from the most recent settlement (what users were charged)
lastSettlementTimeintegerUnix milliseconds timestamp of when the last funding settlement occurred
nextFundingTimeintegerUnix milliseconds timestamp of the next funding settlement
fundingIntervalintegerFunding interval in milliseconds (typically 3600000 for 1 hour)

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

Understanding the Fields:

  • estimatedFundingRate: The predicted rate for the upcoming settlement, calculated as a rolling 1-hour TWAP. This is what traders should use to estimate their next funding payment.
  • lastSettlementRate: The rate that was actually applied at the last settlement. Use this for historical analysis or to verify past funding payments.

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