From 1 November 2026 the API needs a free key. Calls without one work until then. Get a key · what changes
FR
EnglishУкраїнськаEspañolPortuguêsDeutschFrançaisItalianoPolskiNederlandsSvenskaDanskNorskSuomiČeštinaRomânăMagyarΕλληνικάTürkçeالعربيةעבריתفارسیहिन्दीবাংলাIndonesiaMelayuTiếng Việtไทย日本語한국어中文
Se connecterObtenir la clé API
Accueil › Documentation API › Démarrage rapide

Démarrage rapide

Obtenez une clé, copiez la ligne, exécutez-la, lisez le JSON.

0. Obtenez une clé

Créez un compte gratuit, ouvrez les clés API et en générez une. Ensuite, conservez-la dans une variable d'environnement :

bash
export FNA_KEY=fna_live_...

1. Recherchez

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

Trois champs de cette réponse méritent une attention immédiate. total indique le nombre d'articles correspondants, et non le nombre retourné — il est limité à 10,000 pour des raisons de performance, et total_is_lower_bound vous informe lorsque ce plafond est atteint. country_source précise comment le pays a été déterminé, ce qui est important car environ un tiers des valeurs de pays dans tout jeu de données d'actualités sont des inférences plutôt que des faits. Et crawled_at est l'horodatage honnête : les éditeurs peuvent remonter la date de leurs published_at, mais l'heure de crawl est attribuée par le pipeline.

2. Affinez votre recherche

Les filtres se combinent avec AND entre les paramètres et OR au sein d'un même paramètre. Ainsi, country=DE,AT&lang=de se lit comme « articles en langue allemande provenant d'Allemagne ou d'Autriche ». Voici une requête pour les articles en langue ukrainaine d'Ukraine, du plus récent au plus ancien :

bash
curl -H "Authorization: Bearer $FNA_KEY" "https://freenewsapi.ai/v1/search?country=UA&lang=uk&date=today&sort=date&size=10"

3. Obtenez le texte complet

Les résultats de la recherche excluent le corps de l'article par défaut pour réduire la taille des réponses. Demandez-le explicitement une fois que vous avez sélectionné les articles qui vous intéressent réellement :

bash
curl -H "Authorization: Bearer $FNA_KEY" "https://freenewsapi.ai/v1/search?q=inflation&full_text=true&size=5"

Le texte intégral fait environ 2,000 à 4,000 caractères par article. Vingt articles avec full_text=true représentent environ 40,000 jetons pour un modèle de langage. Sélectionnez d'abord, puis récupérez les corps d'articles. Voir les coûts en jetons.

4. Comptez au lieu de lister

Souvent, la question utile n'est pas « quels sont les articles » mais « y a-t-il quoi que ce soit ici, et où se trouve-t-il ». Compter les réponses pour une fraction du coût — environ 200 jetons contre plusieurs milliers pour une page de résultats — en fait le premier appel idéal pour un agent qui décide si une recherche vaut la peine d'être exécutée :

bash
curl -H "Authorization: Bearer $FNA_KEY" "https://freenewsapi.ai/v1/stats?q=earthquake&date=7d"

La réponse fournit des comptes par pays, langue, zone de domaine, éditeur et jour, calculés sur l'ensemble des résultats correspondants plutôt que sur la page courante.

En Python

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"])

En JavaScript

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

Suivant