Les actualités API sont généralement vendues à la demande, verrouillées derrière une clé et limitées à cent appels par jour sur l'offre gratuite. Free News API ne fait rien de tout cela : 21,5 millions d'articles sur une fenêtre glissante de 90 jours, plus de 25 000 éditeurs, aucune clé, aucun inscription, aucun quota, usage commercial autorisé. Voici l'intégralité de la surface — recherche, statistiques, tendances, marchés, flux et MCP — ainsi qu'un compte rendu honnête des erreurs de données.
La forme du problème
Demandez à un agent IA ce qui se passe dans le monde en ce moment et il a trois mauvaises options. Il peut scraper directement les éditeurs, ce qui est fragile, lent et juridiquement flou. Il peut appeler un service d'actualités API commercial, ce qui implique un compte, une clé, une facture mensuelle et — sur chaque offre gratuite du marché — une centaine de demandes par jour et des articles retardés de vingt-quatre heures. Ou il peut deviner à partir de données d'entraînement qui datent de plusieurs mois.
Free News API supprime le prix et la paperasse de l'option intermédiaire sans enlever sa capacité. Une seule requête GET, sans identifiants, sur un corpus qui, au moment de la rédaction, contient 21 557 044 articles provenant de plus de vingt-cinq mille éditeurs, conservés sur une fenêtre glissante de quatre-vingt-dix jours et actualisés en continu — le dernier article indexé a généralement moins de deux minutes.
Quatre points de terminaison de base, et plus encore
Le cœur du service repose sur quatre points de terminaison GET, tous sous https://freenewsapi.ai, renvoyant tous du texte UTF-8 JSON avec Access-Control-Allow-Origin: * afin que le code du navigateur puisse les appeler directement, et indiquant tous le temps serveur dans took_ms.
| Point de terminaison | Ce à quoi il répond |
|---|---|
GET /v1/search | Recherche en texte intégral avec filtres. Le point de terminaison que vous utiliserez 95 % du temps. |
GET /v1/stats | Comptages agrégés pour n'importe quelle tranche — par pays, langue, TLD, éditeur et jour. |
GET /v1/article | Un article par sa URL exacte, incluant le texte intégral. |
GET /health | Liveness (disponibilité) ainsi que le nombre actuel de documents. Assez peu coûteux pour être interrogé régulièrement. |
Autour de ce noyau se trouvent quatre autres familles, chacune pouvant être un produit à part entière ailleurs : trends (regroupement d'actualités en temps réel par pays), markets (séries de prix alignées sur le volume de couverture), crypto sentiment (un bloc Bitcoin à sept points de terminaison) et syndication (la même recherche rendue sous forme de RSS, Atom ou flux JSON). Tous sont détaillés ci-dessous.
curl "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"
}
]
}Trois champs de cette réponse méritent une attention immédiate, car ils reflètent l'honnêteté de l'ensemble du jeu de données. total_is_lower_bound vous indique lorsque le nombre de correspondances a atteint son plafond de 10 000 et a cessé de compter. country_source vous indique comment le pays a été déterminé — car dans tout jeu de données d'actualités, une grande partie des valeurs de pays sont des inférences, et non des faits. Et crawled_at est l'horodatage fiable : les éditeurs datent régulièrement leurs articles avec la date de publication (published_at), mais l'heure de crawl est attribuée par le pipeline et ne fait qu'avancer.
Recherche : chaque paramètre qui compte
Tous les paramètres sont facultatifs. Un appel sans paramètre renvoie les articles les plus récents de l'index.
La requête
- q Mis en correspondance avec le titre (pondération 3), la description (pondération 2) et le corps de l'article. Sémantique ET — chaque terme doit être présent, donc ajouter un mot restreint plutôt qu'élargir le champ. Maximum de 500 caractères.
opec production cut fonctionne. what did OPEC decide about oil ne renvoie rien.Les filtres
Les filtres se combinent par ET entre les paramètres et OR au sein d'un même paramètre. Ainsi, country=DE,AT&lang=de s'interprète comme « articles en langue allemande provenant d'Allemagne ou d'Autriche ». Chaque filtre accepte une liste de valeurs séparées par des virgules, jusqu'à cinquante valeurs maximum.
| Filtre | Format | Remarques |
|---|---|---|
country | ISO 3166-1 alpha-2, en majuscules | Pays de l'éditeur. Déduit, non déclaré — voir country_source et strict_country. |
lang | ISO 639-1, en minuscules | Détecté à partir du document lui-même. Couverture de 99,9 %. |
tld | sans point | Zone de domaine de l'éditeur. tld=ua est un fait ; country=UA est une inférence. |
host | noms d'hôte exacts | Tels qu'ils apparaissent dans URL — incluez www. si l'éditeur l'utilise. |
date | aujourd'hui · hier · 24h · 48h · 7j · 30j | Période prédéfinie, évaluée par rapport à published_at. |
from / to | Dates ISO | Fenêtre explicite où les préréglages ne conviennent pas. |
strict_country | true/false | Ne compter que les articles dont le pays est un fait avéré et non une inférence. |
Contrôle de sortie
| Paramètre | Valeurs | Effet |
|---|---|---|
sort | date · date_asc · crawled · crawled_asc · relevance | Trier par crawled lors de l'interrogation pour de nouveaux articles — les éditeurs antidatent les heures de publication ; l'heure de crawl n'avançant que vers l'avant. |
size | 1–100 | Résultats par page. |
offset | 0–9900 | Décalage de pagination. |
full_text | true/false | Inclure le corps de l'article. Désactivé par défaut. |
highlight | true/false | Renvoyer les extraits correspondants. |
fields | CSV | Réduire la réponse aux seuls champs que vous utilisez effectivement. |
curl "https://freenewsapi.ai/v1/search?country=UA&lang=uk&date=today&sort=date&size=10"curl "https://freenewsapi.ai/v1/search?q=merger&country=DE&date=48h&sort=date&size=20"Compter avant de rechercher
L'extrémité (endpoint) la moins exploitée du service est /v1/stats. 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 répond à cette question pour une fraction du coût — environ deux cents jetons contre plusieurs milliers pour une page de résultats — ce qui en fait l'appel initial recommandé pour un agent qui doit décider si une recherche vaut la peine d'être exécutée.
curl "https://freenewsapi.ai/v1/stats?q=earthquake&date=7d"Il renvoie des comptes par pays, langue, TLD, éditeur et jour, calculés sur l'ensemble des résultats correspondants plutôt que sur la page actuelle. C'est également ainsi que vous mesurez la couverture avant de lui faire confiance. L'instantané non filtré au moment de la rédaction :
Pays leaders
| Pays | Articles |
|---|---|
| Inde | 2,286,014 |
| États-Unis | 2,180,797 |
| Turquie | 1,499,897 |
| Russie | 1,436,556 |
| Italie | 1,057,479 |
| Argentine | 826,947 |
| Espagne | 812,347 |
| Ukraine | 662,041 |
| Brésil | 551,013 |
| Allemagne | 543,132 |
| France | 502,846 |
| Grèce | 460,372 |
| Japon | 437,209 |
| Vietnam | 408,934 |
| Mexique | 402,320 |
| Corée du Sud | 362,945 |
| Roumanie | 354,229 |
| Royaume-Uni | 334,379 |
| Iran | 291,782 |
| Pologne | 255,599 |
Langues principales
Anglais 5 513 650 · Espagnol 2 699 457 · Russe 1 785 796 · Turc 1 501 004 · Italien 992 200 · Allemand 733 677 · Français 689 136 · Arabe 664 016 · Portugais 637 607 · Hindi 560 840 · Grec 466 504 · Japonais 427 085 · Vietnamien 385 719 · Roumain 358 766 · Chinois 352 720 · Ukrainien 345 809 · Coréen 335 079 · Persan 268 126 · Polonais 238 904 · Bulgare 183 204.
Cette répartition mérite qu’on s’y attarde un instant, car elle est à l’opposé de ce que la plupart des API d’actualités vous proposent. Le corpus habituel, centré sur l’anglais et les États-Unis, n’est pas celui-ci : l’Inde devance les États-Unis, le turc devance l’allemand, et le grec, le vietnamien, le persan et le bulgare comptent tous plus de 100 000 entrées. Si votre question porte sur la presse non anglophone, il s’agit d’un jeu de données nettement différent.
Volume
La courbe quotidienne dans by_day couvre la fenêtre complète de quatre-vingt-dix jours. Les jours récents se situent dans une fourchette d’environ 400 000 à 700 000 articles par jour ; plus tôt dans la fenêtre, avant l’ajout de la couche RSS en parallèle de l’ingestion des archives, le volume quotidien s’établissait entre 130 000 et 230 000. Ces deux chiffres sont visibles dans la même réponse, ce qui est l’essentiel : le service vous montre sa propre progression plutôt que de citer une moyenne marketing.
Tendances : ce dont la presse parle vraiment en ce moment
La recherche répond à « qu’a-t-on écrit sur X ». Les tendances répondent à une question différente et souvent plus pertinente : « qu’est-il en train de se passer », sans qu’il soit nécessaire de définir un X.
Un robot regroupe les articles en histoires par pays et les maintient à jour. Toutes les cinq minutes, de nouveaux articles sont rattachés aux histoires connues grâce à leurs mots identifiants, sans aucun appel de modèle ; toutes les quelques heures, un pays subit un passage complet où un modèle de langage lit les titres et nomme les histoires à partir de zéro. Au moment de la rédaction, la couche de tendances couvre 115 pays, chacun étant recalculé au cours des dernières minutes.
curl "https://freenewsapi.ai/v1/trends?country=US&window=24h&size=5"{
"window": "24h",
"filters": { "country": ["US"], "min_publishers": 1 },
"trends": [
{
"title": "Hurricane Marie threatens Labor Day weather",
"slug": "hurricane-marie-threatens-labor-day-weather",
"country": "US",
"category": "weather",
"articles": 57,
"publishers": 24,
"first_seen": "2026-09-05T19:24:36Z",
"latest": "2026-09-06T19:00:04Z",
"url": "https://freenewsapi.ai/trends/us/hurricane-marie-…",
"headlines": [ … ]
}
]
}Deux compteurs accompagnent chaque histoire et ont des significations différentes. articles représente la loudness ; publishers représente la portée. Une histoire avec 200 articles provenant de 4 organes de presse est l’obsession d’une seule rédaction. Une histoire avec 60 articles provenant de 40 organes de presse est un événement. Le tri par défaut se fait par publishers, et min_publishers / min_articles vous permettent de fixer vous-même le seuil.
Les actualités sont classées selon une catégorie issue d’un ensemble fixe : politics, business, markets, tech, sport, health, science, culture, crime, conflict, weather, society.
La fenêtre temporelle est un choix du lecteur, pas celui du robot
Il s’agit d’une décision de conception vraiment élégante. Chaque article est stocké avec son heure de publication et associé à son actualité, de sorte que n’importe quelle fenêtre — quinze minutes, une heure, une journée, une date précise du calendrier — correspond simplement à une requête de plage sur les mêmes données stockées. Un seul calcul suffit pour toutes les fenêtres simultanément. Les requêtes window=15m, window=1h, window=24h, date=2026-09-01, ou une paire explicite since/until fonctionnent toutes sur le même index sans nécessiter de recalcul.
Mots-clés : les mots sur lesquels l’information est construite
curl "https://freenewsapi.ai/v1/trends/keywords?country=US&size=8"Chaque mot-clé est retourné avec le nombre d’actualités distinctes qui le contiennent, le nombre d’articles que ces actualités regroupent, et — le plus intéressant — le nombre de presses nationales qui l’utilisent. Ce dernier chiffre fait la différence entre un événement mondial et un événement domestique. Un mot qui apparaît dans soixante-dix pays est une nouvelle mondiale ; un mot qui domine la presse d’un seul pays est une nouvelle domestique, aussi bruyante soit-elle sur place.
Pays en direct
curl "https://freenewsapi.ai/v1/trends/countries"Retourne tous les pays suivis avec leur nombre d’actualités en direct et le nombre de minutes écoulées depuis leur dernier recalcul — la Turquie, la Russie, l’Iran, la Grèce, l’Inde, l’Italie, l’Ukraine, la Roumanie, l’Argentine, l’Allemagne et le Brésil comptent tous actuellement des milliers d’actualités en direct, recalculées au cours des dix dernières minutes. Et /v1/trends/{cc}/{slug} permet d’ouvrir n’importe quelle actualité avec sa liste complète d’articles.
Marchés vs. Couverture : le prix sur un axe, l’attention sur l’autre
C’est la fonctionnalité la plus inhabituelle du service, et elle existe parce que le corpus rend sa création quasi gratuite. Superposez une série de prix à la quantité d’écrits mondiaux sur ce sujet pendant les mêmes heures, sur une seule chronologie.
curl "https://freenewsapi.ai/v1/markets"Quatorze instruments sont suivis, répartis sur quatre classes d’actifs :
| Classe | Instruments | Granularité | Source |
|---|---|---|---|
| Crypto | Bitcoin, Ethereum, Solana, XRP, BNB, Dogecoin | heure | Binance |
| Métaux | Or (USD/oz) | heure | Binance |
| FX | EUR/USD, USD/JPY, USD/TRY, USD/INR, USD/BRL, USD/PLN | jour | BCE |
| Énergie | Prix de l'électricité en Allemagne (EUR/MWh) | heure | Energy-Charts |
curl "https://freenewsapi.ai/v1/markets/usd-try?window=30d"Cette seule requête vous fournit le taux du lire face au dollar ainsi que le volume de la couverture de la presse turque sur la même période, alignée heure par heure. La presse turque constitue le troisième plus grand segment de ce corpus, ce qui explique précisément pourquoi cette association produit des résultats pertinents plutôt que du bruit.
Et un bloc complet de sentiment sur le Bitcoin
Bitcoin dispose de sa propre famille de sept points de terminaison, car c'est le seul actif dont le ton des actualités et les mouvements de prix sont constamment débattus et rarement mesurés :
| Point de terminaison | Retours |
|---|---|
/v1/btc/summary | Dernier cours, mouvements récents et le ton de la couverture médiatique du jour. |
/v1/btc/price | Bougies BTC/USDT par intervalle. |
/v1/btc/sentiment | Ton des actualités par période. |
/v1/btc/series | Prix et ton alignés sur une seule chronologie. |
/v1/btc/correlation | Corrélation entre le ton et le mouvement de prix par décalage temporel — la couverture précède-t-elle le prix ou le suit-elle ? |
/v1/btc/news | Articles de cryptomonnaie avec leur étiquette de sentiment, filtrables par étiquette, hôte, langue et requête. |
/v1/btc/sources | Quels médias traitent de la cryptomonnaie et quelle est leur orientation. |
Les étiquettes de sentiment sont générées par un modèle de langage qui analyse les articles cryptos frais toutes les cinq minutes, en les confrontant à une liste de pièces calibrée. L'endpoint /v1/btc/correlation avec un paramètre max_shift est celui à privilégier si vous souhaitez tester la affirmation « l'actualité provoque le mouvement » plutôt que de la répéter sans la vérifier.
La même recherche, sous forme de flux
Trois endpoints supplémentaires utilisent les mêmes paramètres de recherche et restituent les résultats sous forme de formats de syndication au lieu de JSON :
GET /v1/rss— RSS 2.0GET /v1/atom— Atom 1.0GET /v1/feed.json— JSON Feed 1.1
https://freenewsapi.ai/v1/rss?q=semiconductor+export+controls&lang=en&date=7d&sort=dateCela signifie que n'importe quelle recherche enregistrée devient un flux que vous pouvez coller dans un lecteur, un nœud n8n, une intégration Slack, un déclencheur Zapier ou un générateur de site statique — sans code et sans clé. C'est une petite fonctionnalité qui supprime discrètement toute une couche d'intégration pour les non-développeurs.
MCP : Vingt-huit outils, deux couches
Le serveur MCP est accessible via une seule URL, utilise le protocole HTTP Streamable (JSON-RPC 2.0 via POST, version du protocole 2025-06-18), prend en charge le groupement de requêtes et — comme tout le reste ici — ne nécessite aucune étape d'autorisation ni d'identifiant de session.
claude mcp add --transport http freenewsapi https://freenewsapi.ai/mcpIl expose 28 outils répartis en deux couches délibérées.
Couche 1 : six raccourcis qui répondent à une question complète en un seul appel
| Outil | Pour |
|---|---|
search_news | « Qu'a-t-on écrit sur X » — recherche en texte intégral, résultats épurés. |
get_trends | "Ce qui se passe" — des histoires regroupées plutôt qu'une simple liste d'articles. |
trend_keywords | Les mots sur lesquels l'actualité est construite en ce moment, avec le nombre d'histoires et la répartition par pays. |
find_publishers | Recherchez des médias : nom, domaine, pays, langue, nombre d'articles par jour. |
list_countries | Quels pays publient des actualités en direct, combien, et leur actualité. |
market_vs_news | Une série de prix à côté du volume de couverture. Appelez sans instrument pour voir ce qui existe. |
Couche deux : chaque point de terminaison, généré à partir du service lui-même
Sous les raccourcis, chaque point de terminaison brut est exposé en tant qu'outil distinct avec tous les paramètres que API accepte — news_get_search, news_get_stats, news_get_article, news_get_trends, news_get_trends_keywords, news_get_markets_slug, toute la famille news_get_btc_*, les rendus de flux et news_get_health. Ces outils sont générés à partir du service en direct, ils ne peuvent donc pas diverger de ce que API accepte réellement.
Deux outils métas ferment la boucle : news_list_endpoints renvoie le catalogue de tout ce qui existe, et news_get effectue un appel brut GET sur n'importe quel chemin — afin qu'un agent qui rencontre un point de terminaison non couvert par sa liste d'outils puisse tout de même y accéder.
curl "https://freenewsapi.ai/mcp?format=json"Un seul GET, sans poignée de main, et vous disposez de tout le catalogue lisible par machine : serveur, transport, protocole, nombre d'outils, chaque outil avec sa description, et chaque point de terminaison avec sa liste de paramètres.
Conçu pour être lu par des machines
La documentation n'est pas une réflexion après coup ajoutée au API — c'est une sortie de premier ordre de celui-ci. Le site propose 665 pages statiques, dont plusieurs existent spécifiquement pour qu'un modèle n'ait jamais à lire du HTML :
- /openapi.json Le schéma OpenAPI complet.
- /llms.txt Un fichier d'orientation court : ce qu'est le service, les points de terminaison, comment effectuer des requêtes efficacement, ainsi que les erreurs.
- /llms-full.txt L'intégralité de la documentation sous forme d'un seul fichier texte brut, dépassant largement les cent kilooctets, afin qu'un agent puisse ingérer l'ensemble du manuel en une seule requête.
- /agents Trente-neuf pages conçues spécifiquement pour les développeurs d'agents : définitions de fonctions OpenAI prêtes à l'emploi, définitions d'outils pour Anthropic, invites système pour la récupération d'actualités, recettes RAG, tableaux des coûts en tokens et recettes pour agents.
- /agents/models Code d'appel d'outils par famille de modèles — Qwen, DeepSeek, MiniMax, Kimi, GLM, Doubao, Hunyuan, ERNIE, Yi, Step, GPT, Claude, Gemini, Grok, Mistral, Llama, Command, Nova, Phi, Jamba, Sonar, OpenRouter, Ollama, vLLM.
- /data Le contenu du corpus, la méthodologie, le schéma d'indexation, ainsi qu'une page intitulée Qualité des données qui documente les erreurs du jeu de données.
- /sources Un catalogue consultable de 11 668 éditeurs, filtrable par pays, langue et zone de domaine.
- /compare Des pages de comparaison côte à côte avec NewsAPI.org, GNews.io, NewsData.io, Mediastack, Currents, TheNewsAPI, NewsCatcher, WorldNewsAPI, Perigon, APITube et FreeNewsAPI.io.
Plus de 168 pages par pays, 121 pages par langue et 275 pages par extension de domaine — une surface de navigation par tranche du corpus, chacune affichant son contenu réel.
Origine des articles
Deux pipelines d'ingestion alimentent le même index, et la différence entre les deux a de l'importance.
Le pipeline d'archivage
Toutes les dix minutes, un job vérifie l'archive CC-NEWS de Common Crawl à la recherche de nouveaux fichiers WARC et traite tout ce qu'il n'a pas encore vu, en utilisant quarante workers en parallèle. L'extraitteur extrait chaque article du crawl brut à l'aide d'une cascade documentée par champ — et les cascades ont été mesurées sur des données réelles plutôt que supposées :
| Champ | Cascade | Couverture |
|---|---|---|
| description | JSON-LD → meta → OpenGraph → Twitter card → articleBody → paragraphe d'introduction | 98.1% |
| language | <html lang> → JSON-LD inLanguage → og:locale | 99.9% |
| country | ccTLD → JSON-LD addressCountry → langue-région → og:locale | 79.1% |
| date | JSON-LD datePublished → meta → trafilatura → heure du crawl | 100% |
Ce chiffre par pays est celui de la source honnête, et c’est pourquoi country_source est exposé sur chaque article : environ un cinquième des enregistrements ne dispose d’aucun signal de pays fiable, et environ un tiers des valeurs existantes sont des inférences plutôt que des faits. L’API indique clairement ce qui est quoi, au lieu de le faire passer pour autre chose.
Le chemin en temps réel
Un second robot interroge les flux RSS des éditeurs toutes les cinq minutes, dans une rotation avec des requêtes conditionnelles : un flux qui répond 304 Not Modified coûte presque rien, et l’intervalle d’interrogation de chaque flux est ajusté selon la fréquence à laquelle il publie réellement. Un média qui publie cinq articles par jour n’est pas sollicité toutes les quinze minutes.
Il ne récupère également que ce que l’éditeur a placé dans le flux : le titre, l’incipit et le texte intégral lorsque le flux le contient. Il ne se rend pas sur le site de l’éditeur pour récupérer plus d’informations. Il s’agit d’une limite volontaire, et c’est la raison pour laquelle le service peut tenir les engagements qu’il affiche sur sa page juridique destinée aux éditeurs.
Et les mécanismes qui les entourent
Autour des deux chemins d’ingestion se trouvent une douzaine d’autres robots planifiés : découverte et synchronisation des sources, résolution du pays par domaine, construction et audit des tendances, remplissage de mots-clés, sentiment crypto, récupérations de marché, catalogue de taxonomie, rétention (la fenêtre de quatre-vingt-dix jours est appliquée par une requête nocturne sur published_at, et non par l’âge de l’index), vérification des jours, recontrôles des articles vides, et un garde de santé qui redémarre tout ce qui s’est arrêté. Le corpus est hébergé sur un cluster Elasticsearch dédié.
Ce que ce jeu de données fait mal
Le service publie ses propres limites, ce qui est le moyen le plus rapide de juger s’il convient à votre problème.
- Le pays est inféré Lisez
country_sourcesur chaque article, et ajoutezstrict_country=truelorsque vous comptez par pays plutôt que lorsque vous naviguez. - published_at est fourni par l’éditeur La modification de la date de publication est courante. Triez par
crawledlorsque vous interrogez pour voir ce qui est nouveau. - total est limité à 10 000 Pour la vitesse.
total_is_lower_boundvous indique lorsque vous atteignez le plafond. - Pas d’extraction de sentiment ou d’entités En dehors du bloc Bitcoin, les articles ne portent aucun score de sentiment ni aucune entité nommée. Cela n’entre pas dans le périmètre.
- Cinquante-neuf jours et pas plus Il n’existe pas d’archive plus ancienne. Si vous avez besoin de données de 2019, ce n’est pas l’outil qu’il vous faut.
- Pas de SLA C’est gratuit. Le service est également surveillé et protégé, mais aucune garantie n’est donnée par écrit.
- Le texte appartient aux éditeurs Chaque réponse inclut l’URL d’origine, et les utilisateurs sont invités à y faire un lien retour.
Bien l’utiliser : coûts, pagination et erreurs
Discipline des jetons
Pour un agent, la taille de la réponse est le véritable coût. La forme documentée de celui-ci :
| Appel | Coût approximatif en jetons | Quand |
|---|---|---|
/v1/stats | ~200 | D’abord. Décidez si la recherche vaut vraiment la peine d’être exécutée. |
/v1/search uniquement les métadonnées | quelques milliers par page | Analysez et sélectionnez. |
/v1/search?full_text=true | ~900 par article | Uniquement pour la poignée que vous avez réellement choisie. |
Vingt articles avec full_text=true représentent environ 40 000 tokens. Le modèle recommandé est toujours le même : comptez, analysez, puis récupérez les corps des textes pour les quelques-uns dont vous avez besoin.
Pagination au-delà du plafond
offset s'arrête à 9 900. Pour parcourir un grand ensemble, ne luttez pas contre ce plafond — découpez plutôt par période. Itérez jour par jour, ou heure par heure pour une requête très sollicitée, avec from/to et sort=date. La documentation consacre une page dédiée au parcours d'une journée entière.
Erreurs
Le contrat est clair et facile à implémenter : 4xx signifie que la requête est incorrecte — corrigez-la, ne la réessayez pas. 5xx signifie que le service est indisponible — reculez. 429 signifie ralentir et réessayer. Les paramètres de requête inconnus sont ignorés plutôt que rejetés, l'ajout d'un champ ne peut donc jamais casser un appelant existant.
Identifiez-vous (facultatif et véritablement facultatif)
Sans clé, il est impossible de joindre un appelant. La courtoisie suggérée consiste à utiliser un en-tête indiquant votre agent, le framework qu'il utilise et le modèle qui le pilote :
X-Agent: agent_name=<agent>; software=<langchain|llamaindex|n8n|claude-desktop|cursor|openai-assistants|crewai|custom>; model=<model>; version=<v>; purpose=<rag|monitoring|research|digest>; contact=<url or mailto>
User-Agent: <agent>/<version> (+<contact url>)Les mêmes valeurs fonctionnent en tant que paramètres de requête simples, ce qui est généralement plus pratique :
https://freenewsapi.ai/v1/search?q=climate&agent_name=newsbot&software=langchain&model=gpt-4oLes clés inconnues sont ignorées, l'envoi de clés supplémentaires est donc toujours sûr. Rien n'est validé, rien n'est limité en cas d'omission, et la consigne est ferme : ne placez jamais de données personnelles des utilisateurs finaux dans ces champs.
Contre les nouvelles payées API
Les pages de comparaison du site couvrent onze concurrents individuellement. Les différences structurelles qui subsistent chez tous :
100 requêtes/jour, délai de 24 heures
La forme standard d’une offre gratuite news-API : un seau à jetons si petit qu’il sert de démo, avec les articles récents réservés aux abonnés payants.
- Clé requise
- Plafond quotidien
- Articles en attente
- Usage non commercial uniquement
Pas de plafond, pas de délai, pas de clé
La seule limite est de 20 requêtes/seconde par adresse IP. Le dernier article a généralement moins de deux minutes, et l’usage commercial est autorisé.
- Pas de clé, pas d’inscription
- Pas de plafond quotidien ou mensuel
- Actualisation continue
- Usage commercial autorisé
Priorité à l’anglais, aux États-Unis
La plupart des corpus sont construits à partir d'une liste de fournisseurs anglophones, au reste du monde ajouté en annexe.
- Prédominance de l'anglais
- Couverture des langues non latines insuffisante
Inde > États-Unis, turc > allemand
Environ 100 langues avec des volumes à six chiffres en grec, vietnamien, persan, ukrainien et bulgare.
- 100 pays
- ~100 langues
- 11 668 sources répertoriées
Ce que les services payants vous offrent encore et ce que celui-ci ne fait pas : les scores de sentiment et l'extraction d'entités en tant que champs standard, des archives remontant à plusieurs années, et un contrat assorti d'un SLA. Ce sont des éléments réels, et si vous en avez besoin, vous devez les acheter.
Recettes
Un moniteur de pays en temps réel
curl "https://freenewsapi.ai/v1/search?country=UA&lang=uk&date=today&sort=crawled&size=50"Cette nouvelle est-elle mondiale ou nationale ?
curl "https://freenewsapi.ai/v1/trends/keywords?size=30"
# read `countries` on each keyword: 1 country = domestic, 70 = world eventAncrer un modèle dans la couverture actuelle, à moindre coût
# 1. count first
curl "https://freenewsapi.ai/v1/stats?q=semiconductor+export+controls&date=7d"
# 2. scan metadata
curl "https://freenewsapi.ai/v1/search?q=semiconductor+export+controls&date=7d&lang=en&size=20&sort=relevance"
# 3. fetch bodies for the three you picked
curl "https://freenewsapi.ai/v1/article?url=<exact-url>&full_text=true"La couverture précède-t-elle le prix ?
curl "https://freenewsapi.ai/v1/btc/correlation?interval=hour&max_shift=12"Transformer une recherche enregistrée en flux
https://freenewsapi.ai/v1/rss?q=central+bank+rate&lang=en&date=24h&sort=date&size=50Identifiez les médias qui comptent sur un marché
curl "https://freenewsapi.ai/v1/stats?country=BR&date=30d&top=50"
# the `hosts` block is a ranked publisher list for that sliceLe résumé
Free News API est un moteur de recherche en texte intégral couvrant 21,5 millions d'articles d'actualités provenant de plus de 25 000 éditeurs dans 100 pays et environ 100 langues, sur une fenêtre glissante de quatre-vingt-dix jours, actualisé en continu, sans clé API, sans inscription et sans quota au-delà d'une limite de débit par adresse IP. Au-dessus de cette recherche se superposent le regroupement en temps réel des actualités par pays sur 115 pays, l'analyse des mots-clés qui distingue les événements mondiaux des événements nationaux, quatorze instruments de marché tracés par rapport au volume de couverture, un bloc de sentiment Bitcoin à sept points de terminaison, la syndication de n'importe quelle requête via RSS/Atom/JSON, et un serveur MCP de 28 outils généré à partir du service lui-même.
Il documente ses propres taux d'erreur, expose comment chaque valeur de pays a été dérivée et publie une page expliquant ce que les données peuvent avoir d'incorrect. Pour un agent qui doit savoir ce que le monde dit — en turc, en grec, en hindi, en temps réel — cette combinaison est difficile à trouver à n'importe quel prix, et celle-ci est gratuite.
La recherche fonctionne avec un ET sur tous les termes. Utilisez 2 à 5 mots-clés, pas une question en langage naturel.
Free News API, sur la façon de bien l'interroger
Commencez ici : freenewsapi.ai · MCP sur freenewsapi.ai/mcp · le manuel complet en un seul fichier sur /llms-full.txt.