curl --request GET \
--url https://astreus.ai/api/v1/countries/{iso}/policy-text/documents \
--header 'X-API-KEY: <api-key>'import requests
url = "https://astreus.ai/api/v1/countries/{iso}/policy-text/documents"
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}/policy-text/documents', 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}/policy-text/documents",
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}/policy-text/documents"
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}/policy-text/documents")
.header("X-API-KEY", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://astreus.ai/api/v1/countries/{iso}/policy-text/documents")
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{
"items": [
{
"documentId": 84316,
"externalId": "stmt-20261028a",
"docType": "fomc_statement",
"title": "Federal Reserve issues FOMC statement",
"eventDate": "2026-10-28",
"meetingDate": "2026-10-28",
"speaker": null,
"district": null,
"sourceUrl": "https://www.federalreserve.gov/newsevents/pressreleases/monetary20261028a.htm",
"venue": null,
"subtype": null,
"unscheduled": false,
"observationCount": 0,
"byteSize": 1527
},
{
"documentId": 81310,
"externalId": "speech-bowman20261014a",
"docType": "fed_speech",
"title": "Supervisory Modernization After Silicon Valley Bank",
"eventDate": "2026-10-14",
"meetingDate": null,
"speaker": "Vice Chair for Supervision Michelle W. Bowman",
"district": null,
"sourceUrl": "https://www.federalreserve.gov/newsevents/speech/bowman20261014a.htm",
"venue": "At the Bangkok Economic Festival, Reinventing Bretton Woods Committee, Bangkok, Thailand",
"subtype": null,
"unscheduled": null,
"observationCount": 0,
"byteSize": 13587
}
],
"total": 4663,
"facets": {
"years": [
2026,
2025
],
"speakers": [
"Chair Janet L. Yellen",
"Chair Jerome H. Powell"
],
"districts": [
"National Summary",
"Boston"
],
"subtypes": [
"bs",
"lrg"
]
},
"limit": 2,
"offset": 0,
"hasMore": true,
"nextOffset": 2
}{
"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>"
]
}Policy documents
Policy document index.
curl --request GET \
--url https://astreus.ai/api/v1/countries/{iso}/policy-text/documents \
--header 'X-API-KEY: <api-key>'import requests
url = "https://astreus.ai/api/v1/countries/{iso}/policy-text/documents"
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}/policy-text/documents', 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}/policy-text/documents",
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}/policy-text/documents"
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}/policy-text/documents")
.header("X-API-KEY", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://astreus.ai/api/v1/countries/{iso}/policy-text/documents")
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{
"items": [
{
"documentId": 84316,
"externalId": "stmt-20261028a",
"docType": "fomc_statement",
"title": "Federal Reserve issues FOMC statement",
"eventDate": "2026-10-28",
"meetingDate": "2026-10-28",
"speaker": null,
"district": null,
"sourceUrl": "https://www.federalreserve.gov/newsevents/pressreleases/monetary20261028a.htm",
"venue": null,
"subtype": null,
"unscheduled": false,
"observationCount": 0,
"byteSize": 1527
},
{
"documentId": 81310,
"externalId": "speech-bowman20261014a",
"docType": "fed_speech",
"title": "Supervisory Modernization After Silicon Valley Bank",
"eventDate": "2026-10-14",
"meetingDate": null,
"speaker": "Vice Chair for Supervision Michelle W. Bowman",
"district": null,
"sourceUrl": "https://www.federalreserve.gov/newsevents/speech/bowman20261014a.htm",
"venue": "At the Bangkok Economic Festival, Reinventing Bretton Woods Committee, Bangkok, Thailand",
"subtype": null,
"unscheduled": null,
"observationCount": 0,
"byteSize": 13587
}
],
"total": 4663,
"facets": {
"years": [
2026,
2025
],
"speakers": [
"Chair Janet L. Yellen",
"Chair Jerome H. Powell"
],
"districts": [
"National Summary",
"Boston"
],
"subtypes": [
"bs",
"lrg"
]
},
"limit": 2,
"offset": 0,
"hasMore": true,
"nextOffset": 2
}{
"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
Document group: overview, decisions, statements, press-conferences, minutes, speeches, beige-book (Fed); base-rate-decisions, press-releases, public-statements, financial-stability, annual-reports, periodic-reports, research (CBUAE). Others are a 400.
Document type: fomc_statement, fomc_minutes, fomc_press_conference, fed_speech, beige_book, cbuae_base_rate_decision, cbuae_press_release, cbuae_public_statement, cbuae_financial_stability_report, cbuae_annual_report, cbuae_periodic_report, cbuae_research_paper. Others are a 400.
Calendar year, 1900–2100; any other value is a 400.
1900 <= x <= 2100Speaker name, exactly as stored (the page's picker).
Words of the speaker's name, any order (e.g. Powell).
Beige Book district.
Words in the title or speaker line only.
Words in the documents' own text. Reads the newest documents passing the other filters, within a per-request budget, and answers { items (each with matchedIn, occurrences, snippets), scan: { candidates, offset, scanned, nextOffset, newest, oldest, unreadable, stoppedAtLimit } }; pass scan.nextOffset as offset to search older documents.
1 = only documents with extracted observations.
1 Default 50, max 200; with text, default 20, max 50. Above the max is a 400.
1 <= x <= 200Default 0. The list answers limit, offset, hasMore and nextOffset; a text scan answers scan.nextOffset.
x >= 0Only documents of this subtype, as listed on each document (subtype).