Nieuws APIs worden meestal per verzoek verkocht, afgeschermd door een sleutel, en beperkt tot honderd verzoeken per dag in de gratis versie. Free News API is geen van dat alles: 21,5 miljoen artikelen in een lopende venster van 90 dagen, meer dan 25.000 uitgevers, geen sleutel, geen registratie, geen quota, commercieel gebruik toegestaan. Hier is het volledige overzicht — zoekopdrachten, statistieken, trends, markten, feeds en MCP — en een eerlijk overzicht van waar de data fouten maakt.
De vorm van het probleem
Vraag een AI-agent wat de wereld momenteel schrijft en hij heeft drie slechte opties. Hij kan rechtstreeks artikelen van uitgevers scrapen, wat kwetsbaar, traag en juridisch vaag is. Hij kan een commerciële nieuws API aanroepen, wat betekent dat je een account, een sleutel, een maandelijkse rekening nodig hebt en — in elke gratis versie op de markt — honderd verzoeken per dag en artikelen die twintig uur vertraging oplopen. Of hij kan raden op basis van trainingsgegevens die al maanden oud zijn.
Free News API verwijdert de prijs en het papierwerk van de middelste optie, zonder de mogelijkheden te verliezen. Eén GET-verzoek, geen inloggegevens, over een corpus dat op het moment van schrijven 21.557.044 artikelen omvat van meer dan 25.000 uitgevers, bewaard in een lopend venster van 90 dagen en continu vernieuwd — het nieuwste artikel in de index is doorgaans minder dan twee minuten oud.
Vier kern-API-eindpunten, en nog meer
De kern van de dienst bestaat uit vier GET-eindpunten, allemaal onder https://freenewsapi.ai, die allemaal UTF-8 JSON retourneren met Access-Control-Allow-Origin: * zodat browsercode ze direct kan aanroepen, en die allemaal de servertijd rapporteren in took_ms.
| Eindpunt | Vraag beantwoord |
|---|---|
GET /v1/search | Tekstzoekopdracht met filters. Het eindpunt dat je 95% van de tijd zult gebruiken. |
GET /v1/stats | Geaggregeerde tellingen voor elke verdeling — per land, taal, TLD, uitgever en dag. |
GET /v1/article | Eén artikel bij zijn exacte URL, inclusief de volledige tekst. |
GET /health | Liveness plus het huidige documentaantal. Goedkoop genoeg om te poll-en. |
Rond die kern zitten nog vier andere families, die elk elders een eigen product zouden zijn: trends (live story-clustering per land), markets (prijsreeksen gekoppeld aan de dekkingsgraad), crypto sentiment (een Bitcoin-block met zeven eindpunten) en syndication (dezelfde zoekopdracht weergegeven als RSS, Atom of JSON Feed). Allemaal worden ze hieronder behandeld.
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"
}
]
}Drie velden in die respons verdienen directe aandacht, omdat ze de eerlijkheid van de hele dataset coderen. total_is_lower_bound geeft aan wanneer het aantal treffers de plafond van 10.000 bereikte en ophield met tellen. country_source vertelt je hoe het land is bepaald — omdat in elke nieuwsdataset een groot deel van de landwaarden inferenties zijn, geen feiten. En crawled_at is het vertrouwde tijdstip: publishers dateren published_at regelmatig terug, maar de crawltijd wordt toegewezen door de pipeline en gaat alleen maar vooruit.
Zoeken: elke parameter die er toe doet
Alle parameters zijn optioneel. Een simpele call retourneert de nieuwste artikelen in de index.
De query
- q Gematcht tegen de titel (gewicht 3), de beschrijving (gewicht 2) en de artikeltekst. AND-semantiek — elke term moet aanwezig zijn, dus het toevoegen van een woord maakt de zoekopdracht smaller in plaats van breder. Maximaal 500 tekens.
opec production cut werkt. what did OPEC decide about oil retourneert niets.De filters
Filters combineren met AND over parameters en OR binnen één parameter. Dus country=DE,AT&lang=de leest als "Duitstalige artikelen uit Duitsland of Oostenrijk". Elk accepteert een door komma's gescheiden lijst van maximaal vijftig waarden.
| Filter | Formaat | Opmerkingen |
|---|---|---|
country | ISO 3166-1 alpha-2, hoofdletters | Land van de uitgever. Afgeleid, niet opgegeven — zie country_source en strict_country. |
lang | ISO 639-1, kleine letters | Gedetecteerd vanuit het document zelf. Dekking van 99,9%. |
tld | geen punt | Domeinextensie van de uitgever. tld=ua is een feit; country=UA is een conclusie. |
host | exacte hostnamen | Zoals weergegeven in URL — neem www. op als de uitgever dit gebruikt. |
date | vandaag · gisteren · 24u · 48u · 7d · 30d | Vooraf ingestelde periode, geëvalueerd op basis van published_at. |
from / to | ISO-datums | Expliciet venster waarin de voorinstellingen niet passen. |
strict_country | true/false | Alleen artikelen tellen waarvan het land een vaststaand feit is en geen afleiding. |
Uitvoercontrole
| Parameter | Waarden | Effect |
|---|---|---|
sort | datum · datum_asc · gecrawld · gecrawld_asc · relevantie | Sorteer op crawled bij het ophalen van nieuwe artikelen — uitgevers stellen publicatietijden terug in de tijd; de crawltijd verloopt alleen vooruit. |
size | 1–100 | Resultaten per pagina. |
offset | 0–9900 | Pagineringsoffset. |
full_text | waar/onwaar | De artikeltekst opnemen. Standaard uitgeschakeld. |
highlight | waar/onwaar | Gevonden fragmenten retourneren. |
fields | CSV | De respons beperken tot de velden die je daadwerkelijk gebruikt. |
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"Tellen voordat je zoekt
Het meest ondergebruikte eindpunt van de service is /v1/stats. Vaak is de nuttige vraag niet "wat zijn de artikelen", maar "is er hier überhaupt iets te vinden, en waar". Tellende antwoorden voor een fractie van de kosten — ongeveer tweehonderd tokens tegen enkele duizenden voor een pagina met resultaten — wat het de juiste eerste aanroep maakt voor een agent die beslist of een zoekopdracht de moeite waard is.
curl "https://freenewsapi.ai/v1/stats?q=earthquake&date=7d"Het retourneert tellingen per land, taal, TLD, uitgever en dag, berekend over de volledige matchende set in plaats van de huidige pagina. Dit is ook hoe je de dekking meet voordat je het vertrouwt. De ongefilterde snapshot op het moment van schrijven:
Toplanden
| Land | Artikelen |
|---|---|
| India | 2,286,014 |
| Verenigde Staten | 2,180,797 |
| Turkije | 1,499,897 |
| Rusland | 1,436,556 |
| Italië | 1,057,479 |
| Argentinië | 826,947 |
| Spanje | 812,347 |
| Oekraïne | 662,041 |
| Brazilië | 551,013 |
| Duitsland | 543,132 |
| Frankrijk | 502,846 |
| Griekenland | 460,372 |
| Japan | 437,209 |
| Vietnam | 408,934 |
| Mexico | 402,320 |
| Zuid-Korea | 362,945 |
| Roemenië | 354,229 |
| Verenigd Koninkrijk | 334,379 |
| Iran | 291,782 |
| Polen | 255,599 |
Talen
Engels 5.513.650 · Spaans 2.699.457 · Russisch 1.785.796 · Turks 1.501.004 · Italiaans 992.200 · Duits 733.677 · Frans 689.136 · Arabisch 664.016 · Portugees 637.607 · Hindi 560.840 · Grieks 466.504 · Japans 427.085 · Vietnamees 385.719 · Roemeens 358.766 · Chinees 352.720 · Oekraïens 345.809 · Koreaans 335.079 · Perzisch 268.126 · Pools 238.904 · Bulgaars 183.204.
Die verdeling is de moeite waard om even goed te bekijken, omdat het het tegenovergestelde is van wat de meeste nieuwsAPIs je bieden. De gebruikelijke Engelstalige, VS-gerichte corpus is hier niet van toepassing: India scoort hoger dan de Verenigde Staten, Turks scoort hoger dan Duits, en Grieks, Vietnamees, Perzisch en Bulgaars hebben allemaal een representatie in de zescijfers. Als je vraag gaat over een niet-Engelse pers, dan is dit een aanzienlijk andere dataset.
Volume
De dagelijkse curve in by_day beslaat het volledige venster van negentig dagen. De recente dagen liggen in het bereik van ongeveer 400.000 tot 700.000 artikelen per dag; eerder in het venster, voordat de RSS-laag werd toegevoegd naast de archiefinvoer, liep het dagelijkse volume rond de 130.000–230.000. Beide cijfers zijn zichtbaar in dezelfde respons, wat het punt is — de dienst toont je zijn eigen opschaling in plaats van een marketinggemiddelde te citeren.
Trends: Wat de pers momenteel echt behandelt
Zoekopdrachten beantwoorden "wat er over X is geschreven". Trends beantwoordt een andere en vaak betere vraag: "wat gebeurt er" — zonder dat er een X nodig is.
Een robot groepeert artikelen in verhalen per land en houdt deze bij. Elke vijf minuten worden nieuwe artikelen aan bekende verhalen gekoppeld op basis van hun identificerende woorden, helemaal zonder modelaanroep; elke paar uur gaat een land een volledige doorloop door waarbij een taalmodel de koppen leest en de verhalen opnieuw benoemt. Op het moment van schrijven dekt de trendlaag 115 landen, elk binnen de afgelopen paar minuten opnieuw berekend.
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": [ … ]
}
]
}Elk verhaal komt met twee tellingen en ze betekenen verschillende dingen. articles is luidheid; publishers is breedte. Een verhaal met 200 artikelen van 4 uitgeverijen is de obsessie van één redactie. Een verhaal met 60 artikelen van 40 uitgeverijen is een gebeurtenis. De standaard sortering is op uitgevers, en min_publishers / min_articles stellen je in staat de lat zelf te bepalen.
Berichten dragen een categorie uit een vaste set: politics, business, markets, tech, sport, health, science, culture, crime, conflict, weather, society.
Het venster is de keuze van de lezer, niet van de robot
Dit is een werkelijk elegant ontwerpbesluit. Elk artikel wordt opgeslagen met de publicatietijd en gekoppeld aan het verhaal, zodat elk venster — vijftien minuten, een uur, een dag, een specifieke kalenderdatum — gewoon een bereikquery is over dezelfde opgeslagen gegevens. Eén berekening dient elk venster tegelijk. window=15m, window=1h, window=24h, date=2026-09-01 of een expliciete since/until-paren werken allemaal tegen dezelfde index zonder herberekening.
Trefwoorden: de woorden waar het nieuws op is gebouwd
curl "https://freenewsapi.ai/v1/trends/keywords?country=US&size=8"Elk trefwoord wordt geretourneerd met het aantal unieke verhalen dat het draagt, het aantal artikelen die die verhalen bevatten, en — het interessante — hoeveel nationale persorganen het gebruiken. Dat laatste aantal maakt het verschil tussen een wereldwijd en een nationaal evenement. Een woord dat in zeventig landen voorkomt, is een wereldverhaal; een woord dat de pers van één land domineert, is een nationaal verhaal, hoe luid het daar ook is.
Welke landen zijn live
curl "https://freenewsapi.ai/v1/trends/countries"Retourneert elk gevolgd land met het aantal live verhalen en hoeveel minuten geleden het is herberekend — Turkije, Rusland, Iran, Griekenland, India, Italië, Oekraïne, Roemenië, Argentinië, Duitsland en Brazilië hebben allemaal momenteel duizenden live verhalen elk, herberekend binnen de laatste tien minuten. En /v1/trends/{cc}/{slug} opent elk afzonderlijk verhaal met de volledige lijst van artikelen.
Markten vs. Dekking: Prijs op één As, Aandacht op de Andere
Dit is het meest ongewone aan de dienst, en het bestaat omdat de corpus het bijna gratis maakt om te bouwen. Zet een prijsreeks naast hoeveel de wereld over dat ding schreef in dezelfde uren, op één tijdlijn.
curl "https://freenewsapi.ai/v1/markets"Veertien instrumenten worden gevolgd, over vier activaklassen:
| Klasse | Instrumenten | Korrelgrootte | Bron |
|---|---|---|---|
| Crypto | Bitcoin, Ethereum, Solana, XRP, BNB, Dogecoin | uur | Binance |
| Metalen | Goud (USD/oz) | uur | Binance |
| FX | EUR/USD, USD/JPY, USD/TRY, USD/INR, USD/BRL, USD/PLN | dag | ECB |
| Energie | Duitse elektriciteitsprijs (EUR/MWh) | uur | Energy-Charts |
curl "https://freenewsapi.ai/v1/markets/usd-try?window=30d"Die ene aanroep geeft je de lira tegen de dollar én het volume van de Turkse persberichten over dezelfde periode, uuruur gewijzigd. De Turkse pers vormt de op twee na grootste groep in deze corpus, precies daarom levert die combinatie iets betekenisvols op in plaats van ruis.
En een volledig Bitcoin-sentimentblok
Bitcoin krijgt zijn eigen familie van zeven eindpunten, omdat het het enige instrument is waarbij de toon van het nieuws en de koersontwikkeling constant worden besproken en zelden worden gemeten:
| Eindpunt | Returns |
|---|---|
/v1/btc/summary | Laatste koers, recente bewegingen en de toon van het huidige nieuws. |
/v1/btc/price | BTC/USDT-kaarsen per interval. |
/v1/btc/sentiment | Nieuwstoon per periode. |
/v1/btc/series | Koers en toon op één tijdlijn. |
/v1/btc/correlation | Correlatie tussen toon en koersbeweging met tijdsverschuiving — leidt de berichtgeving de prijs, of volgt hij deze? |
/v1/btc/news | Crypto-artikelen met hun sentimentlabel, filterbaar op label, host, taal en zoekopdracht. |
/v1/btc/sources | Welke nieuwsbronnen dekken de cryptomarkt en hoe staat elke bron hierin. |
De sentimentlabels worden gegenereerd door een taalmodel dat elke vijf minuten verse cryptonieuwsartikelen scant, tegen een gekalibreerde muntlijst. /v1/btc/correlation met een max_shift-parameter is de endpoint die je moet gebruiken als je de stelling "het nieuws veroorzaakt de koersbeweging" wilt testen in plaats van hem alleen maar te herhalen.
Dezelfde zoekopdracht, als feed
Drie andere endpoints nemen dezelfde zoekparameters over en presenteren de resultaten als syndicatieformaten in plaats van 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=dateDit betekent dat elke opgeslagen zoekopdracht een feed wordt die je kunt plakken in een feedreader, een n8n-node, een Slack-integratie, een Zapier-trigger of een generator voor statische websites — zonder code en zonder API-sleutel. Het is een klein feature dat op subtiele wijze een hele integratielaag voor niet-programmeurs overbodig maakt.
MCP: Achtentwintig tools, twee lagen
De MCP-server bevindt zich op één URL, gebruikt Streamable HTTP (JSON-RPC 2.0 via POST, protocolversie 2025-06-18), ondersteunt batching en — net als alles wat hier wordt aangeboden — kent geen autorisatiestap en geen sessie-id.
claude mcp add --transport http freenewsapi https://freenewsapi.ai/mcpHet biedt 28 tools in twee bewuste lagen.
Laag één: zes snelkoppelingen die een volledige vraag in één aanroep beantwoorden
| Tool | Voor |
|---|---|
search_news | "Wat er over X is geschreven" — fulltextzoekopdracht, met geknipte resultaten. |
get_trends | "Wat er speelt" — gegroepeerde verhalen in plaats van een lijst met artikelen. |
trend_keywords | De woorden waar het nieuws nu op is gebaseerd, inclusief het aantal verhalen en de spreiding over landen. |
find_publishers | Zoek naar media: naam, domein, land, taal en aantal artikelen per dag. |
list_countries | Welke landen live verhalen hebben, hoeveel en hoe recent. |
market_vs_news | Een prijsreeks naast de dekkingvolume. Roep aan zonder instrument om te zien wat er beschikbaar is. |
Laag twee: elk eindpunt, gegenereerd vanuit de dienst zelf
Onder de snelkoppelingen wordt elk ruw eindpunt blootgelegd als een apart gereedschap met alle parameters die API accepteert — news_get_search, news_get_stats, news_get_article, news_get_trends, news_get_trends_keywords, news_get_markets_slug, de hele news_get_btc_*-familie, de feed-renderers en news_get_health. Deze zijn gegenereerd vanuit de actieve dienst, dus ze kunnen niet afwijken van wat API daadwerkelijk accepteert.
Twee meta-gereedschappen sluiten de cirkel: news_list_endpoints retourneert de catalogus van alles wat er bestaat, en news_get voert een ruwe GET uit op elk pad — zodat een agent die een eindpunt tegenkomt dat niet door zijn gereedschapslijst wordt gedekt, dit toch kan bereiken.
curl "https://freenewsapi.ai/mcp?format=json"Eén GET, geen handdruk, en je hebt de volledige machine-leesbare catalogus: server, transport, protocol, aantal gereedschappen, elk gereedschap met zijn beschrijving, en elk eindpunt met zijn parameterlijst.
Gebouwd om door machines gelezen te worden
De documentatie is geen naslagwerk dat aan API is vastgeplakt — het is een eersteklas output ervan. De site bevat 665 statische pagina's, en er zijn er meerdere die specifiek bestaan zodat een model geen HTML hoeft te lezen:
- /openapi.json Het volledige OpenAPI-schema.
- /llms.txt Een kort oriëntatiebestand — wat de dienst is, de eindpunten, hoe je er goed mee kunt werken en de foutmeldingen.
- /llms-full.txt De volledige documentatie als één plattekstbestand, meer dan honderd kilobyte groot, zodat een agent de hele handleiding in één keer kan verwerken.
- /agents Negenentwintig pagina’s specifiek voor ontwikkelaars van agents: kant-en-klare OpenAI-functiedefinities, definitie van hulpmiddelen voor Anthropic, systeemprompts voor het ophalen van nieuws, RAG-recipes, tabellen met tokenkosten en recepten voor agents.
- /agents/models Code voor het aanroepen van hulpmiddelen per modelfamilie — 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 Wat er in de corpus zit, de methodologie, het indexeschema en een pagina met de titel Datakwaliteit die documenteert waar de dataset fouten bevat.
- /sources Een doorzoekbaar overzicht van 11.668 uitgevers, filterbaar op land, taal en domeinextensie.
- /compare Vergelijkende pagina’s met NewsAPI.org, GNews.io, NewsData.io, Mediastack, Currents, TheNewsAPI, NewsCatcher, WorldNewsAPI, Perigon, APITube en FreeNewsAPI.io.
Plus 168 landpagina's, 121 taelpagina's en 275 TLD-pagina's — één doorzoekbaar oppervlak per segment van de corpus, waarbij wordt getoond wat er daadwerkelijk in zit.
Waar de artikelen vandaan komen
Twee inhaalpaden voeden dezelfde index, en het verschil tussen hen doet ertoe.
Het archiefpad
Elke tien minuten controleert een taak de CC-NEWS-archief van Common Crawl op nieuwe WARC-bestanden en verwerkt alles wat het nog niet heeft gezien, met veertig parallelle workers. De extractor haalt elk artikel uit de ruwe crawl met een gedocumenteerde cascade per veld — en de cascades zijn gemeten tegen echte data in plaats van aangenomen:
| Veld | Cascade | Dekking |
|---|---|---|
| beschrijving | JSON-LD → meta → OpenGraph → Twitter-kaart → articleBody → inleidende alinea | 98.1% |
| taal | <html lang> → JSON-LD inLanguage → og:locale | 99.9% |
| land | ccTLD → JSON-LD addressCountry → taal-regio → og:locale | 79.1% |
| datum | JSON-LD datePublished → meta → trafilatura → crawltijd | 100% |
Die landcijfer is de eerlijke, en daarom wordt country_source bij elk artikel blootgelegd: ongeveer een vijfde van de records heeft helemaal geen betrouwbaar landsignaal, en ongeveer een derde van de bestaande waarden zijn inferenties in plaats van feiten. De API geeft aan wat wat is, in plaats van te doen alsof.
Het live pad
Een tweede robot pollt uitgever RSS-feeds elke vijf minuten, in een rotatie met conditionele requests — een feed die 304 Not Modified antwoordt, kost bijna niets, en de pollfrequentie van elke feed is afgestemd op hoe vaak deze daadwerkelijk publiceert. Een publicatie dat vijf verhalen per dag uitbrengt, wordt niet elke vijftien minuten onder vuur gelegd.
Het neemt ook alleen mee wat de uitgever in de feed heeft geplaatst: titel, inleiding en volledige tekst wanneer de feed deze bevat. Het loopt niet de website van de uitgever op om meer op te halen. Dat is een bewuste grens, en dat is de reden waarom de dienst de beloftes kan doen die ze op haar juridische pagina voor uitgevers doet.
En de machines eromheen
Rond de twee ingest-paden zitten een dozijn andere robots op schema's: bronontdekking en synchronisatie, landresolutie per domein, trendopbouw en audit, keyword backfill, crypto sentiment, marktpulls, een taxonomiekatalogis, retentie (het venster van negentig dagen wordt afgedwongen door een nachtelijke query op published_at, niet door indexleeftijd), dagverificatie, hercontroles van lege artikelen, en een health guard die alles opnieuw start wat is gestopt. De corpus leeft op een dedicated Elasticsearch-cluster.
Wat deze dataset verkeerd heeft
De dienst publiceert haar eigen beperkingen, wat de snelste manier is om te beoordelen of deze past bij uw probleem.
- Land is geïnfereerd Lees
country_sourcebij elk artikel, en voegstrict_country=truetoe wanneer u telt per land in plaats van browsen. - published_at is door de uitgever verstrekt Terugdatums komen veel voor. Sorteer op
crawledwanneer u pollt voor wat nieuw is. - total is beperkt tot 10.000 Voor snelheid.
total_is_lower_boundvertelt u wanneer u de plafondwaarde bereikt. - Geen sentiment- of entiteitsextractie Buiten de Bitcoin-block dragen artikelen geen sentiment-score en geen named entities. Dat valt niet binnen het bereik.
- Negenentwintig dagen en niet meer Er is geen dieper archief. Als je 2019 nodig hebt, is dit het verkeerde hulpmiddel.
- Geen SLA Het is gratis. Het wordt wel bewaakt en beschermd, maar er wordt niets schriftelijk gegarandeerd.
- De tekst is eigendom van de uitgevers Elk antwoord bevat de originele URL, en gebruikers worden verwacht hierop te linken.
Goed gebruik: kosten, paginering en fouten
Token-discipline
Voor een agent is de responsgrootte de werkelijke kosten. De gedocumenteerde vorm daarvan:
| Aanroep | Geschatte tokenkosten | Wanneer |
|---|---|---|
/v1/stats | ~200 | Eerst: bepaal of de zoekopdracht het waard is om te worden uitgevoerd. |
/v1/search alleen metadata | een paar duizend per pagina | Scannen en selecteren. |
/v1/search?full_text=true | ~900 per artikel | Alleen voor de handvol artikelen die je daadwerkelijk hebt gekozen. |
Twintig artikelen met full_text=true is ongeveer 40.000 tokens. Het aanbevolen patroon is altijd hetzelfde: tellen, scannen en vervolgens de inhoud ophalen voor de weinige artikelen die je nodig hebt.
Pagineren voorbij het plafond
offset stopt bij 9.900. Om een grote verzameling te doorzoeken, kun je het beste niet tegen het plafond aan vechten, maar in plaats daarvan filteren op tijd. Loop dag voor dag, of uur voor uur bij een drukke query, met from/to en sort=date. De documentatie bevat een aparte pagina over het doorzoeken van een volledige dag.
Fouten
De overeenkomst is helder en eenvoudig te verwerken: 4xx betekent dat de request onjuist is — los het op, probeer het niet opnieuw. 5xx betekent dat de service niet beschikbaar is — wacht even. 429 betekent dat je moet vertragen en het opnieuw moet proberen. Onbekende queryparameters worden genegeerd in plaats van afgewezen, dus het toevoegen van een veld kan een bestaande client nooit breken.
Identificeer jezelf (Optioneel en echt optioneel)
Zonder sleutel is er geen manier om een client te bereiken. De aanbevolen beleefdheid is een header met de naam van je agent, het framework waar het doorheen loopt en het model dat het aanstuurt:
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>)Dezelfde waarden werken ook als gewone queryparameters, wat meestal makkelijker is:
https://freenewsapi.ai/v1/search?q=climate&agent_name=newsbot&software=langchain&model=gpt-4oOnbekende sleutels worden genegeerd, dus extra sleutels zijn altijd veilig om te versturen. Er wordt niets gevalideerd, er wordt niet gethoord voor het achterwege laten ervan, en de ene instructie is strikt: plaats nooit persoonlijke gegevens van eindgebruikers in deze velden.
Tegen de Betaalde Nieuws APIs
De vergelijkingspagina's op de site behandelen elf concurrenten individueel. De structurele verschillen die bij allemaal overblijven:
100 verzoeken per dag, 24 uur vertraging
De standaardindeling van een gratis API-abonnement: een tokenbucket die klein genoeg is voor een demo, met verse artikelen die achtergehouden worden voor betalende klanten.
- Sleutel vereist
- Dagelijkse limiet
- Vertraagde artikelen
- Alleen niet-commercieel gebruik
Geen limiet, geen vertraging, geen sleutel
20 verzoeken per seconde per IP-adres is de enige limiet. Het nieuwste artikel is doorgaans minder dan twee minuten oud en commercieel gebruik is toegestaan.
- Geen sleutel, geen registratie
- Geen dagelijkse of maandelijkse limiet
- Voortdurende vernieuwing
- Commercieel gebruik toegestaan
Engels als eerste taal, VS als eerste regio
De meeste corpora zijn opgebouwd uit een lijst met Engelstalige uitgevers, waaraan de rest van de wereld is toegevoegd.
- Engels dominant
- Dunne dekking van niet-Latijnse talen
India > VS, Turks > Duits
Ongeveer 100 talen met volumes in de vijf- en zescijferige regio's voor Grieks, Vietnamees, Perzisch, Oekraïens en Bulgaars.
- 100 landen
- ~100 talen
- 11.668 gecatalogiseerde bronnen
Wat de betaalde diensten nog steeds bieden en dit niet: sentiment scores en entiteitsextractie als standaardvelden, archieven die jaren terug gaan, en een contract met een SLA erachter. Die zijn echt, en als je ze nodig hebt, moet je ze kopen.
Recepten
Een live landmonitor
curl "https://freenewsapi.ai/v1/search?country=UA&lang=uk&date=today&sort=crawled&size=50"Is dit verhaal globaal of binnenlands?
curl "https://freenewsapi.ai/v1/trends/keywords?size=30"
# read `countries` on each keyword: 1 country = domestic, 70 = world eventEen model goedkoop verankeren in het huidige nieuws
# 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"Leidt dekking de prijs?
curl "https://freenewsapi.ai/v1/btc/correlation?interval=hour&max_shift=12"Een opgeslagen zoekopdracht omzetten in een feed
https://freenewsapi.ai/v1/rss?q=central+bank+rate&lang=en&date=24h&sort=date&size=50Vind de outlets die er toe doen in een markt
curl "https://freenewsapi.ai/v1/stats?country=BR&date=30d&top=50"
# the `hosts` block is a ranked publisher list for that sliceDe korte versie
Free News API is een full-text zoekmachine voor meer dan 21,5 miljoen nieuwsartikelen van meer dan 25.000 uitgevers in 100 landen en ongeveer 100 talen, binnen een dynamisch venster van negentig dagen, continu ververst, zonder sleutel, zonder registratie en zonder quota, behalve een per-IP rate limit. Bovenop de zoekfunctie zitten live per-land story clustering over 115 landen, trefwoordanalyse die wereldgebeurtenissen van binnenlandse scheidt, veertig marktinstrumenten afgezet tegen de dekkingsgraad, een blok voor Bitcoin-sentiment met zeven eindpunten, RSS/Atom/JSON syndicatie van elke query, en een 28-tools MCP server gegenereerd vanuit de dienst zelf.
Het documenteert zijn eigen foutmarges, maakt inzichtelijk hoe elke landwaarde is afgeleid en publiceert een pagina over waar de data fout gaat. Voor een agent die moet weten wat de wereld zegt — in het Turks, in het Grieks, in het Hindi, op dit moment — is die combinatie tegen elke prijs moeilijk te vinden, en deze is gratis.
De zoekopdracht gebruikt AND voor alle termen. Gebruik 2–5 trefwoorden, geen vraag in natuurlijke taal.
Free News API, over hoe je er goed mee kunt werken
Begin hier: freenewsapi.ai · MCP op freenewsapi.ai/mcp · de volledige handleiding als één bestand op /llms-full.txt.