From 1 November 2026 the API needs a free key. Calls without one work until then. Get a key · what changes
CS
EnglishУкраїнськаEspañolPortuguêsDeutschFrançaisItalianoPolskiNederlandsSvenskaDanskNorskSuomiČeštinaRomânăMagyarΕλληνικάTürkçeالعربيةעבריתفارسیहिन्दीবাংলাIndonesiaMelayuTiếng Việtไทย日本語한국어中文
Přihlásit seZískat API klíč
Domů › Dokumentace API › Rychlý start

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í:

bash
export FNA_KEY=fna_live_...

1. Vyhledávání

bash
curl -H "Authorization: Bearer $FNA_KEY" "https://freenewsapi.ai/v1/search?q=climate+summit&size=2"
odpověď
{
  "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:

bash
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:

bash
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:

bash
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

python
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

javascript
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));

Další