curl --request GET \
--url https://astreus.ai/api/v1/countries/{iso} \
--header 'X-API-KEY: <api-key>'import requests
url = "https://astreus.ai/api/v1/countries/{iso}"
headers = {"X-API-KEY": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-KEY': '<api-key>'}};
fetch('https://astreus.ai/api/v1/countries/{iso}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://astreus.ai/api/v1/countries/{iso}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-KEY: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://astreus.ai/api/v1/countries/{iso}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-KEY", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://astreus.ai/api/v1/countries/{iso}")
.header("X-API-KEY", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://astreus.ai/api/v1/countries/{iso}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-KEY"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"country": {
"iso2": "US",
"iso3": "USA",
"name": "United States",
"officialName": "United States of America",
"region": "Americas",
"subregion": "North America",
"capital": "Washington, D.C.",
"governmentType": "Federal presidential republic",
"headOfState": "Donald J. Trump",
"headOfGovernment": "Donald J. Trump",
"description": "The United States of America is a federal republic in North America. It is made up of fifty states, a federal district — Washington, D.C., the capital — and inhabited territories in the Caribbean and …",
"profileFacts": [
{
"label": "Largest city",
"value": "New York"
},
{
"label": "Area",
"value": "9.83 million km²"
}
],
"headline": {
"population": 342909000,
"gdpUsdBn": 33010.036,
"gdpGrowth": 2.065739237553774,
"inflation": 3.7172508442689933,
"unemployment": 4.2,
"policyRate": 3.75,
"debtToGdp": 121.18773,
"currencyCode": "USD",
"currentAccountPctGdp": null
},
"headlinePeriods": {
"gdpGrowth": "2026-07-01",
"inflation": "2026-09-01",
"population": "2026-07-01",
"gdpUsdBn": "2026-07-01",
"unemployment": "2026-09-01",
"policyRate": "2026-09-01",
"debtToGdp": "2026-04-01"
},
"headlineNotes": {
"gdpGrowth": "Real GDP growth, % year on year (real GDP against the same period a year earlier)",
"inflation": "CPI inflation, % year on year"
},
"ratings": [
{
"agency": "S&P",
"rating": "AA+",
"outlook": "Stable",
"lastAction": "2011-08-05"
},
{
"agency": "Moody's",
"rating": "Aa1",
"outlook": "Stable",
"lastAction": "2023-11-10"
}
],
"yieldCurve": [
{
"tenorMonths": 1,
"tenorLabel": "1M",
"yield": 4.06
},
{
"tenorMonths": 3,
"tenorLabel": "3M",
"yield": 4.18
}
],
"yieldCurveYearAgo": [
{
"tenorMonths": 1,
"tenorLabel": "1M",
"yield": 4.06
},
{
"tenorMonths": 3,
"tenorLabel": "3M",
"yield": 3.89
}
],
"leaders": [
{
"role": "Vice President",
"name": "JD Vance",
"since": "2025-01-20"
},
{
"role": "Fed Chair",
"name": "Kevin M. Warsh",
"since": "2026-05-22"
}
],
"seriesCount": 955,
"branches": {
"economy": {
"tool": "get_economy",
"argument": "section",
"sections": [
{
"section": "growth_activity",
"title": "Growth & Activity",
"series": 124,
"modules": [
"Output and income",
"What is driving GDP"
]
},
{
"section": "labour_market",
"title": "Labour Market",
"series": 96,
"modules": [
"The jobs report",
"Early warning signs"
]
}
]
},
"central_bank": {
"tool": "get_central_bank",
"argument": "section",
"name": "Federal Reserve",
"sections": [
{
"section": "overview",
"title": "Overview"
},
{
"section": "fomc",
"title": "FOMC"
}
]
},
"government": {
"tool": "get_government",
"argument": "section",
"sections": [
{
"section": "administration",
"title": "Administration",
"calls": [
{
"path": "/api/v1/countries/US/officials",
"query": {},
"view": "officials"
},
{
"path": "/api/v1/countries/US/government/executive",
"query": {
"section": "presidential"
},
"view": "presidential_documents"
}
]
},
{
"section": "congress",
"title": "Congress",
"calls": [
{
"path": "/api/v1/countries/US/government/congress",
"query": {
"section": "members"
},
"view": "members"
},
{
"path": "/api/v1/countries/US/government/congress",
"query": {
"section": "committees"
},
"view": "committees"
}
]
}
],
"detail": "Each call is get_government(view, args): one part of the sub-tab in full, paged with offset."
},
"military": {
"tool": "get_military",
"argument": "section",
"sections": [
{
"section": "armed_forces",
"title": "Armed Forces"
},
{
"section": "conflicts",
"title": "Conflicts"
}
]
},
"foreign_relations": {
"tool": "get_foreign_relations",
"argument": "section",
"sections": [
{
"section": "partners",
"title": "Partners"
},
{
"section": "organisations",
"title": "Organisations"
}
]
}
}
},
"views": {
"catalog": "/api/v1/countries/US?view=catalog — every series without its history, filtered (q, category, section) and paged",
"economy": "/api/v1/countries/US?view=economy — the Economy sub-tabs; with section, one sub-tab's cards",
"central_bank": "/api/v1/countries/US?view=central_bank§ion=overview|statistics|financials",
"series": "/api/v1/countries/US/series?key=KEY — one series' history",
"full": "/api/v1/countries/US?view=full — the whole dashboard with every series card (about 1 MB)"
}
}{
"error": "<string>",
"code": "unknown_parameter",
"param": "<string>",
"allowed": [
"<string>"
]
}{
"error": "<string>",
"code": "unknown_parameter",
"param": "<string>",
"allowed": [
"<string>"
]
}{
"error": "<string>",
"code": "unknown_parameter",
"param": "<string>",
"allowed": [
"<string>"
]
}{
"error": "<string>",
"code": "unknown_parameter",
"param": "<string>",
"allowed": [
"<string>"
]
}Country dashboard
Country macro dashboard. By default (view=profile, 5–50 KB) the profile — headline figures with their periods, curves, leaders, facts — with seriesCount, branches (the country page’s tabs and sub-tabs the country fills) and views (where the rest is read). view=full adds every curated indicator as a card in macroSeries[] (900–1,700 cards, about 1–1.8 MB): label, units, latest (null when the series holds no print yet), yoyChange (year on year: the latest print against the same period a year earlier; a % change for levels and indexes, a change in points for rates and percents — yoyChangeUnit says which; null when no print a year back is held), yearAgo (that print), priorChange (latest minus the print before it, in the series’ own unit) and a short sparkline (the newest 12 current-vintage observations). One card per key. The full, uncapped current-vintage history of any series is GET /api/v1/countries//series?key=. Each card carries source = — its publisher and where it was retrieved.
curl --request GET \
--url https://astreus.ai/api/v1/countries/{iso} \
--header 'X-API-KEY: <api-key>'import requests
url = "https://astreus.ai/api/v1/countries/{iso}"
headers = {"X-API-KEY": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-KEY': '<api-key>'}};
fetch('https://astreus.ai/api/v1/countries/{iso}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://astreus.ai/api/v1/countries/{iso}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-KEY: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://astreus.ai/api/v1/countries/{iso}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-KEY", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://astreus.ai/api/v1/countries/{iso}")
.header("X-API-KEY", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://astreus.ai/api/v1/countries/{iso}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-KEY"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"country": {
"iso2": "US",
"iso3": "USA",
"name": "United States",
"officialName": "United States of America",
"region": "Americas",
"subregion": "North America",
"capital": "Washington, D.C.",
"governmentType": "Federal presidential republic",
"headOfState": "Donald J. Trump",
"headOfGovernment": "Donald J. Trump",
"description": "The United States of America is a federal republic in North America. It is made up of fifty states, a federal district — Washington, D.C., the capital — and inhabited territories in the Caribbean and …",
"profileFacts": [
{
"label": "Largest city",
"value": "New York"
},
{
"label": "Area",
"value": "9.83 million km²"
}
],
"headline": {
"population": 342909000,
"gdpUsdBn": 33010.036,
"gdpGrowth": 2.065739237553774,
"inflation": 3.7172508442689933,
"unemployment": 4.2,
"policyRate": 3.75,
"debtToGdp": 121.18773,
"currencyCode": "USD",
"currentAccountPctGdp": null
},
"headlinePeriods": {
"gdpGrowth": "2026-07-01",
"inflation": "2026-09-01",
"population": "2026-07-01",
"gdpUsdBn": "2026-07-01",
"unemployment": "2026-09-01",
"policyRate": "2026-09-01",
"debtToGdp": "2026-04-01"
},
"headlineNotes": {
"gdpGrowth": "Real GDP growth, % year on year (real GDP against the same period a year earlier)",
"inflation": "CPI inflation, % year on year"
},
"ratings": [
{
"agency": "S&P",
"rating": "AA+",
"outlook": "Stable",
"lastAction": "2011-08-05"
},
{
"agency": "Moody's",
"rating": "Aa1",
"outlook": "Stable",
"lastAction": "2023-11-10"
}
],
"yieldCurve": [
{
"tenorMonths": 1,
"tenorLabel": "1M",
"yield": 4.06
},
{
"tenorMonths": 3,
"tenorLabel": "3M",
"yield": 4.18
}
],
"yieldCurveYearAgo": [
{
"tenorMonths": 1,
"tenorLabel": "1M",
"yield": 4.06
},
{
"tenorMonths": 3,
"tenorLabel": "3M",
"yield": 3.89
}
],
"leaders": [
{
"role": "Vice President",
"name": "JD Vance",
"since": "2025-01-20"
},
{
"role": "Fed Chair",
"name": "Kevin M. Warsh",
"since": "2026-05-22"
}
],
"seriesCount": 955,
"branches": {
"economy": {
"tool": "get_economy",
"argument": "section",
"sections": [
{
"section": "growth_activity",
"title": "Growth & Activity",
"series": 124,
"modules": [
"Output and income",
"What is driving GDP"
]
},
{
"section": "labour_market",
"title": "Labour Market",
"series": 96,
"modules": [
"The jobs report",
"Early warning signs"
]
}
]
},
"central_bank": {
"tool": "get_central_bank",
"argument": "section",
"name": "Federal Reserve",
"sections": [
{
"section": "overview",
"title": "Overview"
},
{
"section": "fomc",
"title": "FOMC"
}
]
},
"government": {
"tool": "get_government",
"argument": "section",
"sections": [
{
"section": "administration",
"title": "Administration",
"calls": [
{
"path": "/api/v1/countries/US/officials",
"query": {},
"view": "officials"
},
{
"path": "/api/v1/countries/US/government/executive",
"query": {
"section": "presidential"
},
"view": "presidential_documents"
}
]
},
{
"section": "congress",
"title": "Congress",
"calls": [
{
"path": "/api/v1/countries/US/government/congress",
"query": {
"section": "members"
},
"view": "members"
},
{
"path": "/api/v1/countries/US/government/congress",
"query": {
"section": "committees"
},
"view": "committees"
}
]
}
],
"detail": "Each call is get_government(view, args): one part of the sub-tab in full, paged with offset."
},
"military": {
"tool": "get_military",
"argument": "section",
"sections": [
{
"section": "armed_forces",
"title": "Armed Forces"
},
{
"section": "conflicts",
"title": "Conflicts"
}
]
},
"foreign_relations": {
"tool": "get_foreign_relations",
"argument": "section",
"sections": [
{
"section": "partners",
"title": "Partners"
},
{
"section": "organisations",
"title": "Organisations"
}
]
}
}
},
"views": {
"catalog": "/api/v1/countries/US?view=catalog — every series without its history, filtered (q, category, section) and paged",
"economy": "/api/v1/countries/US?view=economy — the Economy sub-tabs; with section, one sub-tab's cards",
"central_bank": "/api/v1/countries/US?view=central_bank§ion=overview|statistics|financials",
"series": "/api/v1/countries/US/series?key=KEY — one series' history",
"full": "/api/v1/countries/US?view=full — the whole dashboard with every series card (about 1 MB)"
}
}{
"error": "<string>",
"code": "unknown_parameter",
"param": "<string>",
"allowed": [
"<string>"
]
}{
"error": "<string>",
"code": "unknown_parameter",
"param": "<string>",
"allowed": [
"<string>"
]
}{
"error": "<string>",
"code": "unknown_parameter",
"param": "<string>",
"allowed": [
"<string>"
]
}{
"error": "<string>",
"code": "unknown_parameter",
"param": "<string>",
"allowed": [
"<string>"
]
}Authorizations
Astreus API key (pk_live_...), created on the Developers page in the terminal. Also accepted as Authorization: Bearer pk_live_....
Path Parameters
ISO 3166-1 alpha-2 country code (e.g. US).
Query Parameters
profile (default): the payload without macroSeries (plus seriesCount, branches: the country page's tabs and sub-tabs, each with the MCP tool and argument that reads it, and views). full: the whole dashboard with every series card. catalog: the series as rows without histories — { series: [{ key, title, unit, category, frequency, latest, latestPeriod, stale, staleAfterDays, source }], total, offset, limit, nextOffset, categories }; stale is true when latestPeriod is older than the series' cadence allows (more than staleAfterDays days after the period's first day), null when the cadence is unknown. economy: one Economy sub-tab (section) as the page draws it — headline cards, its questions (modules) with their cards, charts and table, then the sub-tab's other series paged by limit / offset ({ total, limit, offset, hasMore, nextOffset }; next_offset is a deprecated copy of nextOffset); each card carries latest, prior and year-ago prints and change_1y; without section, the sub-tabs the country fills. central_bank: section overview | statistics | financials, built from series. government: the Government sections and the parts each is made of — per part path (the route that reads it) and query (its parameters, e.g. section=votes), plus view / args (the same part as get_government arguments). The profile leaves out the dashboard's always-empty placeholder fields (indices, fx, news, …); full keeps them.
profile, full, catalog, economy, central_bank, government economy: growth_activity, labour_market, inflation_prices, consumption_households, housing_real_estate, credit_funding, trade_external, fx, energy, tourism_transport, industry_technology, fiscal. central_bank: overview, statistics, financials. catalog: an Economy sub-tab slug, to list the series that pane draws.
catalog: words that must all appear in the title, key or publisher.
catalog: one indicator category (output, prices, labor, rates, money, …).
catalog: rows, 1–500 (default 100). economy / central_bank: other series per page, 0–200 (default 40).
catalog, economy, central_bank: rows to skip.
Response
OK
Inferred from captured responses: every field shown was returned by a real call; a field may be absent or null on other calls.