Rychlý start
Získejte klíč, zkopírujte řádek, spusťte ho, přečtěte JSON.
0. Získejte klíč
Vytvořte si bezplatný účet, otevřete klíče API a vytvořte jeden. Poté jej uložte do proměnné prostředí:
export FNA_KEY=fna_live_...1. Vyhledávání
curl -H "Authorization: Bearer $FNA_KEY" "https://freenewsapi.ai/v1/search?q=climate+summit&size=2"{
"took_ms": 41,
"total": 1284,
"total_is_lower_bound": false,
"size": 2,
"offset": 0,
"results": [
{
"id": "9c1f8a4b2d3e5f6071829304a5b6c7d8",
"url": "https://example-news.com/world/climate-summit-opens",
"title": "Climate summit opens with a call for binding targets",
"description": "Delegates from 190 countries gathered on Monday ...",
"published_at": "2026-08-17T09:12:00Z",
"crawled_at": "2026-08-17T10:48:31Z",
"host": "example-news.com",
"sitename": "Example News",
"country": "GB",
"country_source": "cctld",
"lang": "en",
"tld": "com"
}
]
}Tři pole v této odpovědi stojí za okamžitou pozornost. total udává, kolik článků odpovídá, nikoliv kolik jich bylo vráceno — je omezeno na 10,000 pro rychlost a total_is_lower_bound vám řekne, kdy jste dosáhli tohoto limitu. country_source říká, jak byla země určena, což má význam, protože přibližně třetina hodnot země v jakémkoli datovém souboru o zpravodajství jsou odhady, nikoliv fakta. A crawled_at je upřímné časové razítko: vydavatelé mohou backdate published_at, ale čas skenování je přiřazen pipeline.
2. Zúžte hledání
Filtry se kombinují pomocí AND mezi parametry a OR uvnitř jednoho parametru. Takže country=DE,AT&lang=de znamená „články v němčině z Německa nebo Rakouska“. To žádá o dnešní články v ukrajinštině z Ukrajiny, seřazené od nejnovějších:
curl -H "Authorization: Bearer $FNA_KEY" "https://freenewsapi.ai/v1/search?country=UA&lang=uk&date=today&sort=date&size=10"3. Získejte celý text
Výsledky vyhledávání výchoze obsahují pouze nadpis a popis, aby byly odpovědi malé. O text článku požádejte explicitně až poté, co si vyberete články, které skutečně chcete:
curl -H "Authorization: Bearer $FNA_KEY" "https://freenewsapi.ai/v1/search?q=inflation&full_text=true&size=5"Úplný text má přibližně 2,000–4,000 znaků na článek. Dvacet článků s full_text=true představuje přibližně 40,000 tokenů pro jazykový model. Nejprve vyberte, poté načtěte těla článků. Viz náklady na tokeny.
4. Počítejte místo vypisování
Často užitečnou otázkou není „jaké jsou články“, ale „je tam vůbec něco a kde to je“. Počítání odpovědí za zlomek nákladů – přibližně 200 tokenů oproti několika tisícům za stránku výsledků – to dělá z tohoto volání první volbu pro agenta rozhodujícího, zda se vyplatí vyhledávání spustit:
curl -H "Authorization: Bearer $FNA_KEY" "https://freenewsapi.ai/v1/stats?q=earthquake&date=7d"Odpověď obsahuje počty podle země, jazyka, domény, vydavatele a data, vypočtené pro celou sadu odpovídajících výsledků, nikoliv pouze pro aktuální stránku.
V Pythonu
import os, requests
HEADERS = {"Authorization": "Bearer " + os.environ["FNA_KEY"]}
r = requests.get("https://freenewsapi.ai/v1/search", headers=HEADERS, params={
"q": "semiconductor export controls",
"date": "7d",
"lang": "en",
"size": 20,
"sort": "relevance",
})
for a in r.json()["results"]:
print(a["published_at"], a["host"], a["title"])V JavaScriptu
const url = new URL("https://freenewsapi.ai/v1/search");
url.search = new URLSearchParams({ q: "central bank", date: "24h", size: "20" });
const { results } = await (await fetch(url, { headers: { Authorization: `Bearer ${FNA_KEY}` } })).json();
results.forEach(a => console.log(a.published_at, a.host, a.title));