Chile 10 Year Bond Yield

Chile 10 Year Bond Yield

You need the Chile 10-year government bond yield inside your models and dashboards, with reproducible requests, predictable units, and clear handling of trading days and intraday updates. By the end of this guide, you will query, parse, and cache Chile’s 10Y yield from the Bonds API, pull time series and spreads, assemble a full Chilean curve, and integrate the data into production systems with robust error handling.

What you get from Bonds API for Chile’s 10Y

Bonds API serves sovereign bond yields as JSON over HTTPS, authenticated via an X-API-Key header. For Chile (ISO2 code: CL), you can retrieve:

Illustration: Chile 10 Year Bond Yield
  • Latest 10Y yield and other maturities.
  • Historical and time-series values (business-day aware).
  • Intraday snapshots for a specified date (UTC timestamps).
  • Spreads versus benchmarks such as the U.S. Treasury (in basis points).
  • A country yield curve in one request (with inversion flag).
  • Fluctuation metrics over a period (change, min, max).

All yields are returned as percentages unless otherwise noted; spreads are returned in basis points (1 bp = 0.01%). Dates are Y-m-d. Intraday timestamps are ISO 8601 in UTC.

To start building, obtain an API key at Register and explore the MCP for live testing. You can also visit the homepage: bonds-api.com.

Key concepts for Chile’s sovereign yields

Chile’s 10Y yield reflects the market-implied cost of long-term CLP-denominated financing for the Chilean government. It is used in macro research, fair-value models, fixed-income risk, ALM, and relative value versus global benchmarks.

  • Yield units: percent (e.g., 4.52 means 4.52%).
  • Spreads: basis points versus a benchmark (e.g., +215 bps = 2.15% over benchmark).
  • Business days: Chile market holidays and weekends lead to missing dates; the API returns only available days.
  • Updates: Latest yields typically reflect the most recent market session; intraday snapshots show multiple points within a day.
  • Caching: Cache per endpoint semantics. Latest endpoints may update intra-session; time series are stable historically.

Endpoint: Latest yield for Chile (CL) 10Y

Use this to fetch the current 10Y yield, optionally alongside other Chilean maturities. Yields are expressed in percent; “date” is the market date of the quote.

cURL

curl -s "https://bonds-api.com/api/v1/latest?countries=US&maturities=10Y&api_key=YOUR_API_KEY"

JSON response

{
"success": true,
"date": "2026-10-09",
"rates": {
"US_10Y": 5.24
},
"dates": {
"US_10Y": "2026-10-09"
},
"currencies": {
"US_10Y": "USD"
},
"meta": {
"request_id": "bd6e1224-ba48-4931-a578-fe8ddb9f5c05",
"timestamp": "2026-10-11T00:05:55+00:00"
}
}

Fields:

  • success: boolean request status.
  • data.CL.10Y.yield: 10-year Chile yield in percent.
  • data.CL.10Y.date: Y-m-d for the market date.
  • source: origin of the data (e.g., “official”).

Python (requests)

import requests

resp = requests.get(
"https://bonds-api.com/api/v1/latest",
headers={"X-API-Key": "YOUR_API_KEY"},
params={"countries": "CL", "maturities": "2Y,10Y"}
)
data = resp.json()
cl_10y = data["data"]["CL"]["10Y"]["yield"]
cl_10y_date = data["data"]["CL"]["10Y"]["date"]
print("Chile 10Y:", cl_10y, "on", cl_10y_date)

JavaScript (fetch)

const url = "https://bonds-api.com/api/v1/latest?countries=CL&maturities=2Y,10Y";
fetch(url, { headers: { "X-API-Key": "YOUR_API_KEY" } })
.then(r => r.json())
.then(json => {
const cl10 = json.data.CL["10Y"].yield;
const d = json.data.CL["10Y"].date;
console.log(`Chile 10Y: ${cl10}% on ${d}`);
});

PHP (file_get_contents)

<?php
$context = stream_context_create([
"http" => [
"method" => "GET",
"header" => "X-API-Key: YOUR_API_KEY\r\n"
]
]);
$url = "https://bonds-api.com/api/v1/latest?countries=CL&maturities=2Y,10Y";
$json = file_get_contents($url, false, $context);
$data = json_decode($json, true);
$cl10 = $data["data"]["CL"]["10Y"]["yield"];
$date = $data["data"]["CL"]["10Y"]["date"];
echo "Chile 10Y: {$cl10}% on {$date}\n";

Official sample block (format illustration)

The following official sample illustrates an alternate JSON layout you may encounter in format demos. Copy verbatim if you need to reproduce this sample response for testing parsers.

Endpoint: Historical yield for a specific date

Request Chile’s 10Y yield for a single market date. Useful for point-in-time backfills and end-of-period valuation.

cURL

JSON response

Interpretation: yield is percent on the requested Y-m-d. If the date is a non-trading day, the API may return the nearest available business day’s data only if documented; otherwise expect a 404 for missing combinations.

Python

import requests

params = {"country": "CL", "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)
j = r.json()
print(j["yield"], j["date"])

JavaScript

const u = new URL("https://bonds-api.com/api/v1/historical");
u.search = new URLSearchParams({ country: "CL", maturity: "10Y", date: "2025-06-15" });
fetch(u, { headers: { "X-API-Key": "YOUR_API_KEY" } })
.then(r => r.json())
.then(j => console.log(j.yield, j.date));

PHP (Guzzle)

<?php
require 'vendor/autoload.php';
$client = new \GuzzleHttp\Client(['base_uri' => 'https://bonds-api.com/api/v1/']);
$res = $client->request('GET', 'historical', [
'headers' => ['X-API-Key' => 'YOUR_API_KEY'],
'query' => ['country' => 'CL', 'maturity' => '10Y', 'date' => '2025-06-15']
]);
$body = json_decode($res->getBody(), true);
echo $body['yield'] . " on " . $body['date'] . PHP_EOL;

Endpoint: Time series for Chile 10Y

Pull a continuous daily series between two dates. Only business days with data are included. Use for charting, risk, and regressions.

cURL

JSON response

The series array is ordered by date. Yields are percent. Dates are Y-m-d in the local market calendar context; missing weekends/holidays are normal.

Python

import requests

q = {"country": "CL", "maturity": "10Y", "start": "2025-10-11", "end": "2026-10-11"}
j = requests.get("https://bonds-api.com/api/v1/timeseries",
headers={"X-API-Key": "YOUR_API_KEY"}, params=q).json()
points = [(p["date"], p["yield"]) for p in j["series"]]
print(points[:3])

JavaScript

const qs = new URLSearchParams({ country: "CL", maturity: "10Y", start: "2025-10-11", end: "2026-10-11" });
fetch(`https://bonds-api.com/api/v1/timeseries?${qs}`, { headers: { "X-API-Key": "YOUR_API_KEY" } })
.then(r => r.json())
.then(j => console.log(j.series.length, "observations"));

PHP (file_get_contents)

<?php
$q = http_build_query([
"country" => "CL",
"maturity" => "10Y",
"start" => "2025-10-11",
"end" => "2026-10-11"
]);
$ctx = stream_context_create(["http" => ["header" => "X-API-Key: YOUR_API_KEY\r\n"]]);
$raw = file_get_contents("https://bonds-api.com/api/v1/timeseries?$q", false, $ctx);
$data = json_decode($raw, true);
echo count($data["series"]) . " data points\n";

Endpoint: Spread versus benchmark (e.g., US 10Y)

Compute the Chile 10Y spread against a benchmark government bond, returned in basis points. This is useful for relative-value dashboards, FX-hedged carry, and cross-market risk.

cURL

JSON response

Interpretation:

  • spread_bps: basis points, positive if Chile’s yield is higher than the benchmark.
  • country_yield and benchmark_yield: both in percent.

Python

import requests

j = requests.get("https://bonds-api.com/api/v1/spread",
headers={"X-API-Key": "YOUR_API_KEY"},
params={"country": "CL", "benchmark": "US", "maturity": "10Y"}).json()
print("Spread (bps):", j["spread_bps"])

JavaScript

const p = new URLSearchParams({ country: "CL", benchmark: "US", maturity: "10Y" });
fetch(`https://bonds-api.com/api/v1/spread?${p}`, { headers: { "X-API-Key": "YOUR_API_KEY" } })
.then(r => r.json())
.then(j => console.log(`CL 10Y vs US 10Y: ${j.spread_bps} bps`));

PHP (Guzzle)

<?php
$g = new \GuzzleHttp\Client(['base_uri' => 'https://bonds-api.com/api/v1/']);
$res = $g->get('spread', [
'headers' => ['X-API-Key' => 'YOUR_API_KEY'],
'query' => ['country' => 'CL', 'benchmark' => 'US', 'maturity' => '10Y']
]);
$b = json_decode($res->getBody(), true);
echo $b['spread_bps'] . " bps\n";

Endpoint: Full Chile yield curve

Get the whole Chilean curve for a single date (defaults to the latest available day). Use these points to build a curve, interpolate missing tenors, and compute term premia.

cURL

JSON response

Fields:

  • curve: maturity to yield mapping, yields in percent.
  • inverted: boolean indicating whether short rates exceed long rates across key tenors.
  • date: Y-m-d for the curve snapshot.

Available maturities snapshot

MaturityExample yield field
1Mcurve["1M"]
3Mcurve["3M"]
6Mcurve["6M"]
1Ycurve["1Y"]
2Ycurve["2Y"]
5Ycurve["5Y"]
10Ycurve["10Y"]
30Ycurve["30Y"]

Python

import requests

j = requests.get("https://bonds-api.com/api/v1/curve",
headers={"X-API-Key": "YOUR_API_KEY"},
params={"country": "CL"}).json()
tenors = ["1M","3M","6M","1Y","2Y","5Y","10Y","30Y"]
yc = [(t, j["curve"].get(t)) for t in tenors]
print(yc)

JavaScript

fetch("https://bonds-api.com/api/v1/curve?country=CL", { headers: { "X-API-Key": "YOUR_API_KEY" } })
.then(r => r.json())
.then(j => console.log("Curve date:", j.date, "10Y:", j.curve["10Y"]));

PHP (file_get_contents)

<?php
$ctx = stream_context_create(["http" => ["header" => "X-API-Key: YOUR_API_KEY\r\n"]]);
$raw = file_get_contents("https://bonds-api.com/api/v1/curve?country=CL", false, $ctx);
$j = json_decode($raw, true);
echo "Inverted? " . ($j["inverted"] ? "yes" : "no") . "\n";

Endpoint: Intraday snapshots for Chile 10Y

For a given calendar date, retrieve intraday snapshots with UTC timestamps. Useful for high-frequency monitoring and end-of-day reconciliation.

cURL

JSON response

Interpretation:

  • snapshots: array of intraday points, yields in percent.
  • fetched_at: ISO 8601 UTC timestamp (Z suffix).
  • count: snapshot count; meta.timezone: “UTC”.

Python

import requests, statistics

j = requests.get("https://bonds-api.com/api/v1/intraday",
headers={"X-API-Key": "YOUR_API_KEY"},
params={"country": "CL", "maturity": "10Y", "date": "2026-10-11"}).json()
vals = [p["yield"] for p in j["snapshots"]]
print("Avg intraday:", statistics.mean(vals))

JavaScript

const p = new URLSearchParams({ country: "CL", maturity: "10Y", date: "2026-10-11" });
fetch(`https://bonds-api.com/api/v1/intraday?${p}`, { headers: { "X-API-Key": "YOUR_API_KEY" } })
.then(r => r.json())
.then(j => j.snapshots.forEach(s => console.log(s.fetched_at, s.yield)));

PHP (Guzzle)

<?php
$c = new \GuzzleHttp\Client(['base_uri' => 'https://bonds-api.com/api/v1/']);
$r = $c->get('intraday', [
'headers' => ['X-API-Key' => 'YOUR_API_KEY'],
'query' => ['country' => 'CL', 'maturity' => '10Y', 'date' => '2026-10-11']
]);
$j = json_decode($r->getBody(), true);
echo "Snapshots: " . $j['count'] . PHP_EOL;

Endpoint: Fluctuation metrics for Chile 10Y

Get change, min, and max over a period. Use for drawdown analysis, VaR inputs, and performance dashboards.

cURL

JSON response

All yields and change are in percent. Use change as an absolute percentage-point move (e.g., +0.31 = +31 bps).

Python

import requests

j = requests.get("https://bonds-api.com/api/v1/fluctuation",
headers={"X-API-Key": "YOUR_API_KEY"},
params={"countries": "CL", "maturity": "10Y",
"start": "2025-10-11", "end": "2026-10-11"}).json()
stats = j["data"]["CL"]
print(stats["change"], stats["min"], stats["max"])

JavaScript

const q = new URLSearchParams({ countries: "CL", maturity: "10Y", start: "2025-10-11", end: "2026-10-11" });
fetch(`https://bonds-api.com/api/v1/fluctuation?${q}`, { headers: { "X-API-Key": "YOUR_API_KEY" } })
.then(r => r.json())
.then(j => console.log(j.data.CL));

PHP (file_get_contents)

<?php
$qs = http_build_query([
"countries" => "CL",
"maturity" => "10Y",
"start" => "2025-10-11",
"end" => "2026-10-11"
]);
$ctx = stream_context_create(["http" => ["header" => "X-API-Key: YOUR_API_KEY\r\n"]]);
$j = json_decode(file_get_contents("https://bonds-api.com/api/v1/fluctuation?$qs", false, $ctx), true);
print_r($j["data"]["CL"]);

Building a Chile 10Y-centric curve and analytics

When your application needs more than a single tenor—term structure analytics, forward curves, or interpolations—use /curve to get all available points. If you want to control tenor selection explicitly, you can also call /latest with maturities specified.

  • Curve assembly: prefer /curve for a coherent snapshot across tenors on the same date.
  • Interpolation: for missing off-the-run tenors, use cubic spline or Nelson-Siegel fitted to the point set from /curve.
  • Spread ladders: combine /curve for CL with /curve for US (or use /spread for a single tenor) to build a term-by-term spread curve.
  • Caching: cache /curve by country+date key; refresh when the market day rolls over or intraday if your workflow requires it.

Operational details: business days, updates, and caching

Market holidays and weekends: Daily endpoints return data for trading days with available observations in Chile. It is normal to see gaps on weekends and local holidays.

Update frequency: The “latest” and “intraday” endpoints can change during the session. Consider conservative cache TTLs intraday (e.g., minutes) and a longer TTL after market close.

Timestamps and timezones: Intraday timestamps use ISO 8601 with Z suffix (UTC). Daily dates use Y-m-d and represent the market date.

Error handling: Implement retries and conditional logic for common HTTP errors. For example, 404 for unavailable date/tenor; 401 for missing/invalid key; 429 for rate limiting.

Error responses and handling patterns

Common error shape: success=false with an error message string. Typical status codes:

  • 401: Missing or invalid X-API-Key.
  • 403: Account quota exceeded.
  • 404: No data for requested country/maturity/date combination.
  • 422: Invalid parameter (e.g., wrong date format).
  • 429: Rate limit exceeded; back off before retrying.
  • 500: Server error; retry with jitter.

Production tip: surface the API’s error message in logs, and normalize errors into your monitoring system. Combine exponential backoff with idempotent GET retries.

Use cases for Chile 10Y in applications

  • Financial dashboards: display CL 10Y latest, daily changes, and intraday moves alongside FX and equities.
  • Portfolio risk: use /timeseries for historical volatility; /fluctuation for stress windows; /spread for relative exposure.
  • Economic research: analyze term structure shifts using /curve; regress macro variables on 10Y; track inversion flags.
  • Pricing and ALM: bootstrap discount curves from /curve and interpolate as needed for cash flow projections.

Putting it together: a minimal Chile 10Y monitor

Python snippet

import requests, time

API = "https://bonds-api.com/api/v1/latest"
HEAD = {"X-API-Key": "YOUR_API_KEY"}
PARAMS = {"countries": "CL", "maturities": "10Y"}

def fetch_cl10():
r = requests.get(API, headers=HEAD, params=PARAMS, timeout=10)
j = r.json()
y = j["data"]["CL"]["10Y"]["yield"]
d = j["data"]["CL"]["10Y"]["date"]
return d, y

if __name__ == "__main__":
d, y = fetch_cl10()
print(f"Chile 10Y: {y}% on {d}")

Practical notes that save time

  • Units: yields are in percent; spread_bps is basis points. Do not multiply yields by 100 again.
  • Date parsing: daily “date” fields are Y-m-d; intraday “fetched_at” is ISO 8601 UTC.
  • Maturities: strings like 1M, 3M, 6M, 1Y, 2Y, 5Y, 10Y, 30Y. Always treat them as strings.
  • Consistency: build yield curves using a single endpoint (/curve) for cross-tenor coherence on the same date.
  • Caching: separate caches per endpoint; do not mix intraday snapshots with daily closes.

FAQ

Q: Are Chile 10Y yields returned as decimals or percentages?
A: Percentages. For example, 4.52 means 4.52%.

Q: What timezone are intraday timestamps in?
A: UTC, expressed as ISO 8601 with Z (e.g., 2026-10-11T12:00:00Z).

Q: How do I handle non-trading days when building a daily series?
A: Expect gaps on weekends and holidays. Use /timeseries and rely on business-day observations only; avoid forward-filling unless your model requires it.

Q: Can I compute Chile–US spreads across the curve?
A: For a single tenor, use /spread. For a term-by-term ladder, call /curve for CL and US separately and compute differences in percent, then convert to bps if needed.

Q: What is the best endpoint to build a real-time Chile 10Y widget?
A: Use /latest for a single quote and /intraday for sub-daily updates. Cache conservatively intraday.

Get an API key and start integrating Chile’s 10Y yield now: Register. Explore live requests in the MCP and review the docs at bonds-api.com.

Start building with bond data today

Get your API key and access sovereign bond yields across 60+ countries. 7-day free trial, no credit card required.