EURIBOR 1M Rate API: EURIBOR_1M as JSON

EURIBOR 1M Rate API: EURIBOR_1M as JSON

You need the current 1‑month EURIBOR inside your pricing, risk or payments code, and you don’t want to scrape, reconcile files, or guess at conventions. By the end of this article you’ll request the EURIBOR 1M benchmark as JSON using the EURIBOR_1M symbol, parse the payload safely, understand dates and units, cache it appropriately, and turn the returned value into a spread or a monthly payment in your application.

What “EURIBOR_1M” returns and when to use it

EURIBOR_1M in the Interest Rates API is the “EURIBOR 1‑Month” benchmark, expressed in EUR, with a monthly publication frequency. The documentation describes it as a monthly ECB average. If your models, loan contracts, or cash products reset monthly off EURIBOR, this is the symbol you query.

Because EURIBOR_1M is monthly, you should expect one official value for a given month. Unlike intraday or daily benchmarks, there is no point polling it minute‑by‑minute. Treat it as a monthly fixing used as a base for pricing and accrual calculations.

Endpoint and authentication

To get the current (latest) 1‑month EURIBOR, call the latest endpoint:

GET /api/v1/latest?symbols=EURIBOR_1M with your api_key query parameter.

  • HTTP method: GET
  • Endpoint: /api/v1/latest
  • Query parameters:
    • symbols=EURIBOR_1M
    • api_key=YOUR_API_KEY

On the Starter plan ($19/mo, 250 calls, 1 symbol per request, 7‑day trial), request only one symbol per call. Do not add unrelated symbols in the same query, and do not send base=USD or any other base parameter if you need EURIBOR; it is quoted in EUR by definition and does not require a base currency override.

If you’re new to the API, you can Register for a 7‑day trial, copy your api_key, and call the endpoint immediately. You can also browse the models catalog at MCP to confirm symbol names, frequency, and currency before you integrate.

Symbols catalog and selecting EURIBOR_1M

The published symbols catalog includes EURIBOR_1M with:

  • Name: “EURIBOR 1‑Month”
  • Frequency: monthly
  • Currency: EUR

In some examples elsewhere in the docs you may see different EURIBOR tenors (for example a 3‑month variant). One sample shows EURIBOR_3M with a numeric print for a specific date. That sample illustrates the response format, not the EURIBOR_1M value. Keep your code focused on symbols=EURIBOR_1M to retrieve the 1‑month tenor.

Requesting the latest 1M print via curl

Use this curl command to fetch the current month’s EURIBOR 1M value. Replace YOUR_API_KEY with your actual key from the dashboard.

{
  "symbol": "EURIBOR_1M",
  "name": "EURIBOR 1-Month",
  "category": "interbank",
  "country_code": "EU",
  "currency_code": "EUR",
  "frequency": "monthly"
}

Reading the JSON response

The JSON payload includes a success flag and a rates object containing the symbol you requested. Here is the official sample response from the documentation for illustration:

curl "https://interestratesapi.com/api/v1/latest?symbols=EURIBOR_1M&api_key=YOUR_API_KEY"

Important notes when reading this response:

  • Some official examples show EURIBOR_3M (3‑month) to demonstrate the structure. For the 1‑month tenor you will request EURIBOR_1M and read rates.EURIBOR_1M instead.
  • Look for a top‑level success field to verify the call worked before you read the numeric rate.
  • The benchmark appears under rates.SYMBOL. For EURIBOR 1M you will access rates.EURIBOR_1M.
  • If the payload includes a date or effective date field, treat it as the value’s effective date (typically end‑of‑month for a monthly average). Use this to decide whether to refresh your cache.

If success is false or the EURIBOR_1M field is missing, your code should surface an error and retry or fall back to a prior known good value according to your risk policies. Do not substitute a value from another tenor (for example 3M) for 1M logic.

Python example: fetching EURIBOR_1M safely

This Python snippet uses the same latest endpoint and reads rates.EURIBOR_1M. It also guards against error states and missing values.

import os
import requests

API_KEY = os.getenv("INTEREST_RATES_API_KEY", "YOUR_API_KEY")
URL = "https://interestratesapi.com/api/v1/latest"

params = {
    "symbols": "EURIBOR_1M",
    "api_key": API_KEY,
}

resp = requests.get(URL, params=params, timeout=10)
data = resp.json()

# Basic safety checks
if not resp.ok:
    raise SystemExit(f"HTTP error {resp.status_code}: {resp.text}")

if not data.get("success", False):
    # The API can signal failures in-band; handle accordingly
    raise SystemExit(f"API reported failure: {data}")

rates = data.get("rates", {})
euribor_1m = rates.get("EURIBOR_1M")

if euribor_1m is None:
    raise SystemExit("EURIBOR_1M missing from response.")

print(f"EURIBOR_1M: {euribor_1m}")

# Optional: read an effective date if present to manage caching
effective_date = data.get("date") or data.get("effective_date")
if effective_date:
    print(f"Effective date: {effective_date}")

How the rate is expressed, dates, and timezones

Interbank benchmarks are represented as numeric rates. Read the numeric value under rates.EURIBOR_1M as the benchmark level for the effective date returned. The API’s symbol catalog states EURIBOR_1M is a monthly ECB average, so interpret the date you receive (for example a month‑end date) as the period that average applies to.

Practical handling tips:

  • Units: Treat the returned number as a rate suitable for annualized percentage computations in your application. Convert to basis points, percent, or a periodic rate as needed for your formulas.
  • Effective dates: Use the date field (if present) to tag your downstream records and prevent mixing values from different months.
  • Timezone: For monthly values, precise intraday timezone cutovers don’t typically affect logic. If you store timestamps, use UTC consistently in your systems.

Publication frequency and business days

EURIBOR_1M is monthly. Unlike daily series, you should not expect new values on weekends or local holidays; a single value will cover the relevant month. Align scheduled refreshes with your monthly cycle (for example, pull the latest at the turn of the month or when your pipeline runs monthly accruals).

If your workflow runs on business days, you can continue to use the same EURIBOR_1M value throughout the month until the effective date changes in the API response.

Caching, retries, and resilience

Because EURIBOR_1M updates monthly, you can be conservative with caching:

  • Cache the full JSON for at least a day, or until the effective date changes.
  • If you see success=false, back off and retry with exponential delays rather than tight loops.
  • If rates.EURIBOR_1M is missing, do not substitute another tenor. Surface the issue and fall back to a last‑known‑good value only if your governance allows it, and always tag it clearly in logs and data lineage.

On the Starter plan you are limited to one symbol per request; keep your integration efficient by requesting symbols=EURIBOR_1M only and sharing the cached value across services that need it.

Turning EURIBOR_1M into a spread or monthly payment

Most lending and treasury systems combine a benchmark with a margin/spread. Here’s how to do that without relying on any hard‑coded numbers:

  • Spread computation: borrower_rate = euribor_1m + margin. Use the numeric value from rates.EURIBOR_1M and add your contract’s fixed margin (for example, 120 basis points = 0.012 if your units are decimal rates). Store both components for auditability.
  • Monthly payment for an amortizing loan (annuity formula): for principal P, annual rate R (as a decimal) and term N months, let r = R/12. Then payment = P * r / (1 - (1 + r)^(-N)). In code, compute R from rates.EURIBOR_1M + margin, convert to a monthly rate r, and apply the formula.
  • Hedging or pricing add‑ons: if you price caps/floors or swaps off EURIBOR_1M, keep the benchmark and the add‑on premium components separate for risk attribution.

Always treat the benchmark and margin as distinct fields in your database. This allows you to reprice when EURIBOR_1M updates monthly without altering contractual margins or fees.

Going live in four steps

  1. Register — Start the 7‑day trial.
  2. Copy your api_key from the dashboard.
  3. Call GET /api/v1/latest with symbols=EURIBOR_1M (only one symbol per request on Starter).
  4. Read rates.EURIBOR_1M and store the value with its effective date in your system of record.

For your documentation checklist and model catalog, see MCP. For production onboarding or plan upgrades, start from the homepage at interestratesapi.com.

Common pitfalls to avoid

  • Requesting multiple symbols on Starter: the plan is limited to one symbol per request. Use symbols=EURIBOR_1M only.
  • Sending base=USD or another base parameter: not required for EURIBOR; omit it.
  • Confusing tenors: examples in docs may use EURIBOR_3M to illustrate structure. For 1M logic always query EURIBOR_1M.
  • Polling too frequently: the frequency is monthly. Cache until the effective date changes.
  • Mismatched units: keep a single internal representation (for example decimal rates) and convert to percent or basis points at the UI edge.

Operational considerations and testing

Before you wire this into pricing or payments in production, run an integration test plan:

  • Schema stability: assert that success is true and that rates contains EURIBOR_1M.
  • Missing data drill: inject a null value for rates.EURIBOR_1M in a test to confirm your service fails fast or falls back as designed.
  • Cache rollover: mock a date change and confirm your cache refreshes and downstream quotes recompute.
  • Audit trail: log the request URL (without the api_key), the response date, and the value used in pricing decisions.

If you operate across services, centralize the fetch into one small client library or microservice and expose EURIBOR_1M internally. This keeps your caching, retries, and observability consistent.

FAQ

Is EURIBOR_1M available as historical data?
This article covers the latest endpoint. If you need history, consult the documentation for historical/time series endpoints in the catalog at MCP and select the appropriate symbol and endpoint.

What currency is EURIBOR_1M in?
The symbol catalog lists currency EUR for EURIBOR 1‑Month. Do not send a base parameter to convert it; request symbols=EURIBOR_1M and read rates.EURIBOR_1M.

How often should I refresh EURIBOR_1M?
It’s a monthly benchmark. Refresh around your monthly close or whenever you detect the effective date has changed in the response.

Can I request multiple symbols in one call?
On the Starter plan you are limited to one symbol per request. Keep the query to symbols=EURIBOR_1M.

How do I handle errors from the API?
Check the success field. If false, back off and retry later. If rates.EURIBOR_1M is missing, do not substitute another tenor; surface the error or fall back to a governed last‑known‑good value.

Ready to integrate EURIBOR 1M into your stack? Start your 7‑day trial, grab your key, and ship your first call today: Register. You can also explore the broader product surface at interestratesapi.com and confirm symbols and frequencies in MCP.

Ready to get started?

Get your API key and start validating bank data in minutes.

Get API Key