---
title: "Get Margin Interest Rates"
method: POST
path: "/v1/margin/rates"
tags: ["Margin Trading"]
---

# Get Margin Interest Rates

`POST /v1/margin/rates`

## Request

- Base URL: `https://api.gemini.com`
- URL: `https://api.gemini.com/v1/margin/rates`
- Auth: API key in header `X-GEMINI-APIKEY` and API key in header `X-GEMINI-SIGNATURE` and API key in header `X-GEMINI-PAYLOAD`

Retrieves current margin interest rates for all borrowable assets.

Returns hourly, daily, and annual borrow rates for each currency that can be borrowed on margin. Interest is charged on borrowed amounts at the hourly rate and compounds over time.

### Roles
The API key you use to access this endpoint must have the Trader, Fund Manager or Auditor role assigned. See [Roles](/roles#roles) for more information.

The OAuth scope must have `balances:read` assigned to access this endpoint. See [OAuth Scopes](/authentication/oauth#oauth-scopes) for more information.

### Account Type
This endpoint is only available for margin trading accounts.

## Headers

- `X-GEMINI-APIKEY` string, required
- `X-GEMINI-SIGNATURE` string, required
- `X-GEMINI-PAYLOAD` string, required
- `Content-Type` string
- `Content-Length` string
- `Cache-Control` string

## Request body

- object
  - `request` string, required: The literal string "/v1/margin/rates"
  - `nonce` union, required: The nonce, as described in [Private API Invocation](/authentication/api-key#private-api-invocation)
    - union: timestamp
      - string: Gemini strongly recommends using milliseconds instead of seconds for timestamps. | Timestamp format | Example | Supported request type | |-----------------------|-----------------------|------------------------| | string (seconds) | `1495127793` | `POST` only | | string (milliseconds) | `1495127793000` | `POST` only |
      - integer: Gemini strongly recommends using milliseconds instead of seconds for timestamps. | Timestamp format | Example | Supported request type | |-----------------------------|---------------------------|------------------------| | whole number (seconds) | `1495127793` | `GET`, `POST` | | whole number (milliseconds) | `1495127793000` | `GET`, `POST` |
    - integer
  - `account` string: Required for Master API keys as described in [Private API Invocation](/authentication/api-key#private-api-invocation). The name of the account within the subaccount group.

## Response `200`

Current margin interest rates for all borrowable assets

- MarginRatesResponse
  - `rates` MarginInterestRate[], required: Array of interest rates for all borrowable currencies
    - `currency` string, required: The currency code (e.g., "BTC", "ETH", "USD")
    - `borrowRate` string, decimal, required: The hourly borrow rate as a decimal
    - `borrowRateDaily` string, decimal, required: The daily borrow rate (hourly rate × 24)
    - `borrowRateAnnual` string, decimal, required: The annualized borrow rate (daily rate × 365)
    - `lastUpdated` integer, required: Unix timestamp in milliseconds when the rate was last updated

## Other responses

- `400`: Bad request - malformed request or invalid parameters
- `401`: Unauthorized - missing or invalid authentication
- `403`: ApiKey fails IP Filtering Check
- `404`: Resource not found
- `429`: Too many requests - you have exceeded the rate limit
- `500`: Internal server error

---

[API](https://skmtc.dev/gemini/apis/rest-api.md) - [All operations](https://skmtc.dev/gemini/apis/rest-api/llms.txt) - [OpenAPI document](https://skmtc.dev/gemini/apis/rest-api/revisions/24979792d748?raw)
