You need a reliable way to pull the Israel 10-year government bond yield into your own models and dashboards. By the end of this guide, you’ll be able to query the Bonds API for the Israel 10Y, stream intraday snapshots, reconstruct a yield curve, compute spreads versus benchmarks, and manage historical analyses—all as JSON over HTTPS with an API key header.
What you can build with the Israel 10Y yield
The 10-year tenor is the anchor for duration, term premia, and macro expectations. With programmatic access, you can:
- Drive a portfolio risk monitor that recalculates DV01 when the IL 10Y shifts.
- Plot the IL yield curve and detect inversions across 1M to 30Y for macro signals.
- Run event studies with historical and intraday snapshots around policy decisions.
- Compute cross-market spreads versus US Treasuries for hedging and basis trades.
All examples below use the documented endpoints at https://bonds-api.com and require only a GET request with your API key in the X-API-Key header. For production keys, visit Get started with Bonds API or the Register page.
Core concepts and data conventions
- Yields are expressed in percent (e.g., 4.52 means 4.52%).
- Spreads are expressed in basis points (bps). For example, 215 means 2.15%.
- Dates are formatted as YYYY-MM-DD and represent local market dates for the country’s sovereign bond market unless explicitly noted as UTC timestamps (e.g., intraday fetched_at).
- Intraday timestamps are ISO 8601 in UTC (e.g., 2026-09-29T12:00:00Z).
- Non-trading days: Historical and latest endpoints return the most recent trading day with data available. Expect gaps on weekends and market holidays.
- Caching: For latest/curve, consider caching responses intra-day and refreshing according to your application’s staleness tolerance. Intraday snapshots are point-in-time and may update multiple times per day.
Reference documentation and service status are available at bonds-api.com. You can also explore tools via the MCP.
Endpoint: Latest yields (country and maturities)
Use this endpoint to get current yields for Israel across selected maturities, including the 10Y. It’s ideal for dashboards and quote tickers that refresh periodically.
cURL
curl -H "X-API-Key: YOUR_API_KEY" \
"https://bonds-api.com/api/v1/latest?countries=IL&maturities=2Y,10Y"
Python (requests)
import requests
resp = requests.get(
"https://bonds-api.com/api/v1/latest",
headers={"X-API-Key": "YOUR_API_KEY"},
params={"countries": "IL", "maturities": "2Y,10Y"},
timeout=15
)
data = resp.json()
# Access the Israel 10Y as:
# il_10y = data["data"]["IL"]["10Y"]["yield"]
JavaScript (fetch)
const url = new URL("https://bonds-api.com/api/v1/latest");
url.searchParams.set("countries", "IL");
url.searchParams.set("maturities", "2Y,10Y");
fetch(url.toString(), {
method: "GET",
headers: { "X-API-Key": "YOUR_API_KEY" }
})
.then(r => r.json())
.then(json => {
const il10y = json.data.IL["10Y"].yield; // percent
console.log("IL 10Y:", il10y);
});
PHP (file_get_contents)
<?php
$endpoint = "https://bonds-api.com/api/v1/latest?countries=IL&maturities=2Y,10Y";
$opts = ["http" => ["method" => "GET", "header" => "X-API-Key: YOUR_API_KEY\r\n"]];
$ctx = stream_context_create($opts);
$json = file_get_contents($endpoint, false, $ctx);
$data = json_decode($json, true);
// $data["data"]["IL"]["10Y"]["yield"] is the 10Y percent
JSON response (fields explained)
{
"success": true,
"data": {
"IL": {
"2Y": { "yield": 4.25, "date": "2026-09-29", "source": "official" },
"10Y": { "yield": 4.52, "date": "2026-09-29", "source": "official" }
}
}
}
Interpretation:
- yield: Percent (4.52 => 4.52%).
- date: Trading date for the quote (YYYY-MM-DD).
- source: “official” indicates an official market source.
Tip: When building a curve from multiple maturities, query all tenors you need in one request if possible, or use the curve endpoint below.
Endpoint: Historical (specific date)
Get Israel 10Y for a single historical date to power point-in-time backfills or event studies around a known date.
cURL
curl -H "X-API-Key: YOUR_API_KEY" \
"https://bonds-api.com/api/v1/historical?country=IL&maturity=10Y&date=2025-06-15"
Python (requests)
import requests
params = {"country": "IL", "maturity": "10Y", "date": "2025-06-15"}
r = requests.get("https://bonds-api.com/api/v1/historical",
headers={"X-API-Key": "YOUR_API_KEY"},
params=params, timeout=15)
hist = r.json()
# hist["yield"] is the 10Y percent on 2025-06-15
JavaScript (fetch)
const params = new URLSearchParams({
country: "IL",
maturity: "10Y",
date: "2025-06-15"
});
fetch("https://bonds-api.com/api/v1/historical?" + params.toString(), {
headers: { "X-API-Key": "YOUR_API_KEY" }
})
.then(r => r.json())
.then(json => {
console.log("IL 10Y on", json.date, "=", json.yield, "%");
});
PHP (file_get_contents)
<?php
$q = http_build_query(["country" => "IL", "maturity" => "10Y", "date" => "2025-06-15"]);
$url = "https://bonds-api.com/api/v1/historical?$q";
$opts = ["http" => ["method" => "GET", "header" => "X-API-Key: YOUR_API_KEY\r\n"]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
$json = json_decode($res, true);
// $json["yield"] is the percent; $json["date"] is YYYY-MM-DD
JSON response
{
"success": true,
"country": "IL",
"maturity": "10Y",
"date": "2025-06-15",
"yield": 4.38,
"source": "official"
}
Interpretation: yield is percent; date is the historical market date you requested. If the date is a holiday/weekend with no data, expect a 404 error as documented below.
Endpoint: Time series (range)
Query Israel 10Y across a date range to build charts or feed regressions and risk engines. Non-trading days are omitted; expect business-day cadence.
cURL
curl -H "X-API-Key: YOUR_API_KEY" \
"https://bonds-api.com/api/v1/timeseries?country=IL&maturity=10Y&start=2025-09-29&end=2026-09-29"
Python (requests)
import requests
p = {"country": "IL", "maturity": "10Y", "start": "2025-09-29", "end": "2026-09-29"}
resp = requests.get("https://bonds-api.com/api/v1/timeseries",
headers={"X-API-Key": "YOUR_API_KEY"},
params=p, timeout=20)
series = resp.json()["series"]
# series is a list of {"date": "YYYY-MM-DD", "yield": percent}
JavaScript (fetch)
const params = new URLSearchParams({
country: "IL",
maturity: "10Y",
start: "2025-09-29",
end: "2026-09-29"
});
fetch("https://bonds-api.com/api/v1/timeseries?" + params.toString(), {
headers: { "X-API-Key": "YOUR_API_KEY" }
})
.then(r => r.json())
.then(json => {
json.series.forEach(pt => {
// pt.date is YYYY-MM-DD; pt.yield is percent
});
});
PHP (file_get_contents)
<?php
$params = http_build_query([
"country" => "IL",
"maturity" => "10Y",
"start" => "2025-09-29",
"end" => "2026-09-29"
]);
$url = "https://bonds-api.com/api/v1/timeseries?$params";
$opts = ["http" => ["method" => "GET", "header" => "X-API-Key: YOUR_API_KEY\r\n"]];
$ctx = stream_context_create($opts);
$body = file_get_contents($url, false, $ctx);
$data = json_decode($body, true);
// $data["series"] is an array of date/yield points
JSON response
{
"success": true,
"country": "IL",
"maturity": "10Y",
"series": [
{ "date": "2025-01-02", "yield": 4.21 },
{ "date": "2025-01-03", "yield": 4.19 },
{ "date": "2025-01-06", "yield": 4.23 }
]
}
Interpretation: Each element gives the end-of-day (or official close) yield as a percent. Missing calendar days correspond to weekends/holidays.
Endpoint: Spread vs benchmark
For cross-market analysis, compute the Israel 10Y spread to a benchmark, such as the US 10Y. This is returned in basis points and includes both country and benchmark yields for transparency.
cURL
curl -H "X-API-Key: YOUR_API_KEY" \
"https://bonds-api.com/api/v1/spread?country=IL&benchmark=US&maturity=10Y"
Python (requests)
import requests
q = {"country": "IL", "benchmark": "US", "maturity": "10Y"}
r = requests.get("https://bonds-api.com/api/v1/spread",
headers={"X-API-Key": "YOUR_API_KEY"},
params=q, timeout=15)
s = r.json()
# s["spread_bps"] is integer bps; yields are percents
JavaScript (fetch)
const qs = new URLSearchParams({ country: "IL", benchmark: "US", maturity: "10Y" });
fetch("https://bonds-api.com/api/v1/spread?" + qs.toString(), {
headers: { "X-API-Key": "YOUR_API_KEY" }
})
.then(r => r.json())
.then(json => {
console.log("Spread (bps):", json.spread_bps);
});
PHP (file_get_contents)
<?php
$qs = http_build_query(["country" => "IL", "benchmark" => "US", "maturity" => "10Y"]);
$url = "https://bonds-api.com/api/v1/spread?$qs";
$opts = ["http" => ["method" => "GET", "header" => "X-API-Key: YOUR_API_KEY\r\n"]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
$json = json_decode($res, true);
// $json["spread_bps"] is basis points vs benchmark
JSON response
{
"success": true,
"country": "IL",
"benchmark": "US",
"maturity": "10Y",
"spread_bps": 215,
"country_yield": 4.52,
"benchmark_yield": 2.37
}
Interpretation: spread_bps is the IL 10Y minus benchmark 10Y in basis points. Yields are percent. Positive spread means Israel yields are above the benchmark.
Endpoint: Yield curve
Pull a full set of maturities for Israel on the latest available business day or a specified date. This is the most efficient way to build a curve for interpolation, bootstrapping, or macro screening.
cURL
curl -H "X-API-Key: YOUR_API_KEY" \
"https://bonds-api.com/api/v1/curve?country=IL"
Python (requests)
import requests
r = requests.get("https://bonds-api.com/api/v1/curve",
headers={"X-API-Key": "YOUR_API_KEY"},
params={"country": "IL"},
timeout=15)
curve = r.json()
# curve["curve"] is a dict keyed by tenor (e.g., "10Y": 4.52)
# curve["inverted"] indicates if the curve is inverted
JavaScript (fetch)
const params = new URLSearchParams({ country: "IL" });
fetch("https://bonds-api.com/api/v1/curve?" + params.toString(), {
headers: { "X-API-Key": "YOUR_API_KEY" }
})
.then(r => r.json())
.then(json => {
const il10y = json.curve["10Y"];
console.log("Curve date:", json.date, "IL 10Y:", il10y);
});
PHP (file_get_contents)
<?php
$q = http_build_query(["country" => "IL"]);
$url = "https://bonds-api.com/api/v1/curve?$q";
$opts = ["http" => ["method" => "GET", "header" => "X-API-Key: YOUR_API_KEY\r\n"]];
$ctx = stream_context_create($opts);
$body = file_get_contents($url, false, $ctx);
$data = json_decode($body, true);
// $data["curve"]["10Y"] is the 10Y yield percent
JSON response
{
"success": true,
"country": "IL",
"date": "2026-09-29",
"inverted": false,
"curve": {
"1M": 5.31, "3M": 5.27, "6M": 5.18,
"1Y": 4.98, "2Y": 4.25, "5Y": 4.39,
"10Y": 4.52, "30Y": 4.71
}
}
Interpretation: All yields in percent. inverted=true indicates short-end yields are above long-end in a manner consistent with an inverted term structure. For pricing, you can interpolate between reported tenors.
Endpoint: Intraday snapshots
Track intraday levels for Israel 10Y on a given date in UTC timestamps. Useful for backtesting intraday strategies or annotating move-by-move charts.
cURL
curl -H "X-API-Key: YOUR_API_KEY" \
"https://bonds-api.com/api/v1/intraday?country=IL&maturity=10Y&date=2026-09-29"
Python (requests)
import requests
p = {"country": "IL", "maturity": "10Y", "date": "2026-09-29"}
r = requests.get("https://bonds-api.com/api/v1/intraday",
headers={"X-API-Key": "YOUR_API_KEY"},
params=p, timeout=20)
js = r.json()
snapshots = js["snapshots"]
# Each snapshot has "yield" (percent) and "fetched_at" (UTC ISO8601)
JavaScript (fetch)
const q = new URLSearchParams({ country: "IL", maturity: "10Y", date: "2026-09-29" });
fetch("https://bonds-api.com/api/v1/intraday?" + q.toString(), {
headers: { "X-API-Key": "YOUR_API_KEY" }
})
.then(r => r.json())
.then(json => {
json.snapshots.forEach(s => {
// s.yield is percent; s.fetched_at is UTC
});
});
PHP (file_get_contents)
<?php
$q = http_build_query(["country" => "IL", "maturity" => "10Y", "date" => "2026-09-29"]);
$url = "https://bonds-api.com/api/v1/intraday?$q";
$opts = ["http" => ["method" => "GET", "header" => "X-API-Key: YOUR_API_KEY\r\n"]];
$ctx = stream_context_create($opts);
$body = file_get_contents($url, false, $ctx);
$data = json_decode($body, true);
// $data["snapshots"] is an array of intraday fixes
JSON response
{
"success": true,
"country": "IL",
"maturity": "10Y",
"date": "2026-09-29",
"snapshots": [
{ "yield": 4.51, "fetched_at": "2026-09-29T09:30:00Z", "source": "market" },
{ "yield": 4.53, "fetched_at": "2026-09-29T12:00:00Z", "source": "market" },
{ "yield": 4.52, "fetched_at": "2026-09-29T15:30:00Z", "source": "market" }
],
"count": 3,
"meta": { "timezone": "UTC" }
}
Interpretation: Timestamps are UTC. count is the number of snapshots available for that day. Use fetched_at to order points; yields are percent.
Endpoint: Fluctuation (change/min/max over a period)
Summarize Israel 10Y movement between two dates without fetching a full series. This is great for report headers and KPI panels.
cURL
curl -H "X-API-Key: YOUR_API_KEY" \
"https://bonds-api.com/api/v1/fluctuation?countries=IL&maturity=10Y&start=2025-09-29&end=2026-09-29"
Python (requests)
import requests
p = {"countries": "IL", "maturity": "10Y", "start": "2025-09-29", "end": "2026-09-29"}
r = requests.get("https://bonds-api.com/api/v1/fluctuation",
headers={"X-API-Key": "YOUR_API_KEY"},
params=p, timeout=15)
fl = r.json()["data"]["IL"]
# Keys: start_yield, end_yield, change, min, max (all percents)
JavaScript (fetch)
const params = new URLSearchParams({
countries: "IL",
maturity: "10Y",
start: "2025-09-29",
end: "2026-09-29"
});
fetch("https://bonds-api.com/api/v1/fluctuation?" + params.toString(), {
headers: { "X-API-Key": "YOUR_API_KEY" }
})
.then(r => r.json())
.then(json => {
const stats = json.data.IL;
console.log("Change:", stats.change, "Min:", stats.min, "Max:", stats.max);
});
PHP (file_get_contents)
<?php
$qs = http_build_query([
"countries" => "IL",
"maturity" => "10Y",
"start" => "2025-09-29",
"end" => "2026-09-29"
]);
$url = "https://bonds-api.com/api/v1/fluctuation?$qs";
$opts = ["http" => ["method" => "GET", "header" => "X-API-Key: YOUR_API_KEY\r\n"]];
$ctx = stream_context_create($opts);
$body = file_get_contents($url, false, $ctx);
$data = json_decode($body, true);
// $data["data"]["IL"] contains summary stats in percent
JSON response
{
"success": true,
"maturity": "10Y",
"start": "2025-09-29",
"end": "2026-09-29",
"data": {
"IL": {
"start_yield": 4.21,
"end_yield": 4.52,
"change": 0.31,
"min": 3.87,
"max": 4.76
}
}
}
Interpretation: All yields and derived values are percent. change = end_yield − start_yield (percent points), not basis points.
Error handling and operational behavior
Standardized error shapes help you build robust retries and user feedback:
- 401: Missing or invalid X-API-Key → Confirm header is set and key is active.
- 403: Account quota exceeded → Back off and re-try after your limit resets.
- 404: No data for requested country/maturity/date → Validate parameters or choose nearest business day.
- 422: Invalid parameter (date format, ISO2 code) → Check YYYY-MM-DD and ISO2 mapping (“IL” for Israel).
- 429: Rate limit exceeded → Implement exponential backoff and client-side caching.
- 500: Server error → Retry with jitter; alert if persistent.
Tip: Cache latest and curve responses for a few minutes during market hours to reduce 429s and stabilize UI rendering. Intraday should be polled according to your latency needs and rate limits.
Practical notes: maturities, curve construction, and holidays
- Maturities: Common IL tenors include bills (1M–6M) and bonds (1Y, 2Y, 5Y, 10Y, 30Y). Use the curve endpoint for a complete snapshot.
- Multiple symbols: For selective tenors only, use the latest endpoint with maturities=1Y,2Y,5Y,10Y. Merge into your curve object keyed by tenor strings.
- Business days: Israel’s trading calendar differs from US/EU calendars. Expect missing data on local holidays and weekends.
- Timezones: Dates in latest/historical/timeseries/curve are market dates (YYYY-MM-DD). Intraday uses UTC timestamps.
- Interpolation: If you need off-the-run tenors (e.g., 7Y), interpolate between reported tenors or fit a curve (e.g., piecewise-linear on yield or spline) using the curve payload.
For broader documentation, visit bonds-api.com. To test endpoints interactively, check the MCP.
Reference: Real payload example (sibling 10Y instrument)
The following is a real API-style response sample provided for a 10-year benchmark sibling instrument. It shows how percent yields, dates, currencies, and an ISO timestamp may appear in a consolidated payload. Values are illustrative of structure and should be read as percent for yields and ISO 8601 for timestamp.
{"success":true,"date":"2026-09-29","rates":{"US_10Y":5.249},"dates":{"US_10Y":"2026-09-29"},"currencies":{"US_10Y":"USD"},"meta":{"request_id":"b6008b8f-75e4-4477-9864-6e4a433be310","timestamp":"2026-09-29T10:33:51+00:00"}}
Interpretation:
- rates.US_10Y: Percent yield (5.249 => 5.249%).
- date and dates.US_10Y: Market date (YYYY-MM-DD).
- currencies.US_10Y: Quote currency for the instrument.
- meta.timestamp: UTC timestamp for when the payload was generated.
End-to-end example: build a simple IL 10Y dashboard card
This minimal workflow pulls the latest IL 10Y, computes its weekly change, and displays a sparkline based on the weekly time series:
- Query latest for IL 10Y.
- Query timeseries for the last 7 calendar days (will return business days).
- Compute change = last − first.
- Cache both results for a few minutes (e.g., 3 to 5 minutes) to avoid rate limits.
Use the endpoints documented above with one X-API-Key header and GET method only. To obtain your key, visit Register for Bonds API or the UTM-tracked Register link.
FAQ
How often are the latest Israel 10Y yields updated?
Latest is updated on business days and reflects the most recent official or market source. During market hours, consider polling at your app’s latency target and using short-lived caches to smooth updates.
What units are yields and spreads in?
Yields are in percent (e.g., 4.52 means 4.52%). Spreads are returned in basis points (e.g., 215 bps is 2.15%).
How should I handle weekends and market holidays?
Historical and time series endpoints return only days with data. If you query a holiday or weekend via the historical endpoint, expect a 404. For ranges, missing dates are normal; do not assume continuity across non-trading days.
Can I request multiple maturities for Israel at once?
Yes, with the latest endpoint using the maturities parameter (e.g., 2Y,5Y,10Y). For a complete curve across many tenors, prefer the curve endpoint.
How do I authenticate?
Send your API key in the X-API-Key request header. All endpoints are GET. Do not put the key in the query string.
Ready to integrate the Israel 10Y into your analytics pipeline? Generate an API key and start querying today: Register. Explore tools and utilities in the MCP, and see the full API at bonds-api.com.