> For the complete documentation index, see [llms.txt](https://bluegamma.io/documentation/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://bluegamma.io/documentation/integrations/api/how-to-guides/fetching-fixing-rates.md).

# Fetching Fixing Rates

Fixings are the **official published rates** for benchmark indices—the actual rates that reset floating-rate instruments. Use the `/fixing` endpoint to retrieve the latest or historical fixing for any supported index, or `/historical_fixings` to pull a whole date range in one request.

***

## Example: Get Latest Fixing

```python
import requests

url = "https://api.bluegamma.io/v1/fixing"
headers = {"x-api-key": "your_api_key"}

params = {
    "index": "SOFR"
}

response = requests.get(url, headers=headers, params=params)
print(response.json())
```

```bash
curl -X GET "https://api.bluegamma.io/v1/fixing?index=SOFR" \
  -H "x-api-key: your_api_key_here"
```

**Response:**

```json
{
  "index": "SOFR",
  "valuation_date": "2025-12-17",
  "fixing_rate": 4.35,
  "fixing_date": "2025-12-16"
}
```

| Field            | Description                                        |
| ---------------- | -------------------------------------------------- |
| `index`          | The benchmark index requested                      |
| `valuation_date` | The date you requested (or today if not specified) |
| `fixing_rate`    | The published rate as a percentage                 |
| `fixing_date`    | The date the fixing was actually published         |

{% hint style="info" %}
**Why are `valuation_date` and `fixing_date` different?** Fixings are typically published one business day after the rate is observed. If you request the fixing for a Monday, the `fixing_date` might be the previous Friday. For per-index timing, see [When Are Fixings Available?](/documentation/reference/when-are-fixings-available.md)
{% endhint %}

***

## Historical Fixings

Add `valuation_date` to retrieve the fixing as of a specific date:

```python
params = {
    "index": "SOFR",
    "valuation_date": "2024-06-30"
}

response = requests.get(url, headers=headers, params=params)
print(response.json())
```

```bash
curl -X GET "https://api.bluegamma.io/v1/fixing?index=SOFR&valuation_date=2024-06-30" \
  -H "x-api-key: your_api_key_here"
```

**Response:**

```json
{
  "index": "SOFR",
  "valuation_date": "2024-06-30",
  "fixing_rate": 5.33,
  "fixing_date": "2024-06-28"
}
```

***

## Available Fixing Indices

### Overnight Risk-Free Rates (RFRs)

| Index   | Currency | Description                          |
| ------- | -------- | ------------------------------------ |
| `SOFR`  | USD      | Secured Overnight Financing Rate     |
| `SONIA` | GBP      | Sterling Overnight Index Average     |
| `ESTR`  | EUR      | Euro Short-Term Rate                 |
| `CORRA` | CAD      | Canadian Overnight Repo Rate Average |
| `SARON` | CHF      | Swiss Average Rate Overnight         |
| `TONAR` | JPY      | Tokyo Overnight Average Rate         |

### Term Rates (IBORs)

| Index        | Currency | Description                         |
| ------------ | -------- | ----------------------------------- |
| `1M EURIBOR` | EUR      | 1-Month Euro Interbank Offered Rate |
| `3M EURIBOR` | EUR      | 3-Month Euro Interbank Offered Rate |
| `6M EURIBOR` | EUR      | 6-Month Euro Interbank Offered Rate |

### Central Bank Policy Rates

| Index                       | Currency | Description                          |
| --------------------------- | -------- | ------------------------------------ |
| `Fed Funds`                 | USD      | Federal Funds Target Rate            |
| `ECB Main Refinancing Rate` | EUR      | ECB Main Refinancing Operations Rate |
| `BOE Bank Rate`             | GBP      | Bank of England Official Bank Rate   |

For a complete list, see [Available Indices](/documentation/integrations/available-indices.md).

***

## Use Cases

### Verifying a Loan Reset

Check what rate your floating-rate loan reset at on a specific date:

```python
# What was 6M EURIBOR on the reset date?
params = {
    "index": "6M EURIBOR",
    "valuation_date": "2024-09-15"
}

response = requests.get(url, headers=headers, params=params)
fixing = response.json()
print(f"Loan reset at {fixing['fixing_rate']}% on {fixing['fixing_date']}")
```

```bash
curl -X GET "https://api.bluegamma.io/v1/fixing?index=6M%20EURIBOR&valuation_date=2024-09-15" \
  -H "x-api-key: your_api_key_here"
```

### Building a Fixing History

Use the `/historical_fixings` endpoint to pull a benchmark's published fixings over a date range in a single request, instead of looping through individual `/fixing` calls:

```python
url = "https://api.bluegamma.io/v1/historical_fixings"

params = {
    "index": "SONIA",
    "start_date": "2025-01-01",
    "end_date": "2025-12-31"
}

response = requests.get(url, headers=headers, params=params)
data = response.json()

print(f"{data['count']} fixings")
for point in data["fixings"]:
    print(f"{point['date']}  {point['rate']:.4f}")
```

```bash
curl -X GET "https://api.bluegamma.io/v1/historical_fixings?index=SONIA&start_date=2025-01-01&end_date=2025-12-31" \
  -H "x-api-key: your_api_key_here"
```

**Response (abbreviated):**

```json
{
  "index": "SONIA",
  "start_date": "2025-01-01",
  "end_date": "2025-12-31",
  "count": 253,
  "truncated": false,
  "fixings": [
    {"date": "2025-01-02", "rate": 4.7},
    {"date": "2025-01-03", "rate": 4.7},
    {"date": "2025-01-06", "rate": 4.7}
  ]
}
```

| Field       | Description                                                                             |
| ----------- | --------------------------------------------------------------------------------------- |
| `count`     | Number of fixings returned                                                              |
| `truncated` | `true` when the range matched more than 10,000 rows and the response was cut at the cap |
| `fixings`   | One row per published print, oldest first                                               |

A few behaviours to be aware of:

* Only published prints are returned. Weekends and holidays have no row, so a full calendar year of a daily benchmark returns roughly 250 fixings, not 365. There is no forward-fill; for "what rate applied on this date" use `/fixing`, which looks back to the most recent print.
* `end_date` is optional and defaults to today.
* A small set of licensing-restricted benchmarks is not available over this endpoint and returns a 403. Contact <support@bluegamma.io> if you need one of them.

***

## Common Questions

### What's the difference between a fixing and a forward rate?

* **Fixing:** The actual published rate for a past or current date
* **Forward rate:** A market-implied rate for a future period, derived from the swap curve

### Why is my fixing rate different from what I see elsewhere?

Fixings are typically published at a specific time each day. Small differences may occur due to:

* Rounding conventions
* Publication time differences
* Source data timing

### Can I get intraday fixings?

No. Fixings are official end-of-day rates published by benchmark administrators. For intraday data, use forward rates or swap rates with `valuation_time`.

***

**Need an API key?**\
📩 <support@bluegamma.io> | 📅 [Book a call](https://app.lemcal.com/@alivohra/website-demo?back=1)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://bluegamma.io/documentation/integrations/api/how-to-guides/fetching-fixing-rates.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
