Short answer: the best financial news API depends on the agent workflow. Across 406 publishable live observations, Finlight was the strongest structured ticker news API (20/20 valid calls, relevant results in both rounds for 7 of 9 listing markets), Linkup had the broadest observed multilingual retrieval (a Web retrieval product, not a strict news feed), EODHD was the best broad-exchange ticker alternative, and Gildata and Caidazi led the Chinese-market workflows.
Key findings at a glance
| If your AI agent needs… | Use | Evidence from the live run |
|---|---|---|
| Ticker-first structured news | Finlight Financial News | 7/9 markets passed both rounds; 20/20 valid calls; clean invalid-ticker control |
| Broad exchange-coded ticker coverage | EODHD Financial News | 7/9 markets passed both rounds; provider errors on JP/IN |
| Global company & macro discovery | Linkup Search | Relevant results in 18/18 company and 12/12 macro observations |
| China / HK company news | Gildata Stock News, EODHD | Relevant results in 4/4 applicable observations |
| Chinese specialist feeds | Caidazi Hybrid Search V2, Gildata Public Opinion | 6/6 relevant rounds, 100% top-5 relevance |
| Familiar English keyword search | NewsAPI, Brave News Search | 8/10 and 5/6 relevant macro rounds |
There is no honest single winner across global discovery, strict ticker filtering, multilingual retrieval, sentiment, and regional specialist feeds. This guide keeps those product shapes separate.
What we tested: 7 financial news APIs, 406 live observations
The broad benchmark completed 406 publishable observations from 410 live API invocations across 203 tool-case cells. Every cell ran twice. Cases covered company, macro, crypto, forex, invalid input, and relevant specialist feeds across nine market regions and seven requested languages.
The ticker benchmark added 120 completed observations across nine listing markets and an invalid ticker control. Two suppliers met the multi-market ranking gate. A market counted as supported only when both rounds returned news relevant to the target company. Each supplier received its own native ticker format rather than one shared symbol dialect.
All overview visuals use one fixed seven-supplier public comparison shortlist:
Brave, Caidazi, EODHD, Finlight, Gildata, Linkup, and NewsAPI. The shortlist is
the union of suppliers that qualified in at least one published buyer scenario
in the baseline edition, including the strict ticker workflow. It is now frozen
for comparable retests: a shortlisted supplier that later performs poorly
becomes Not qualified but remains one of the seven rows. This also keeps a
specialist such as Finlight visible in the global-company view even when that
broad input does not clear the scenario gate.
“Valid API response,” “scenario returned the expected empty/non-empty shape,” and “the returned news was relevant” are different metrics. Treating them as one success rate would reward irrelevant fallback results and punish honest empty responses.
To prevent a global-search chart from hiding regional or specialist strengths,
we compare five buyer scenarios. Every overview row uses the same seven
shortlisted suppliers. Qualified means the supplier's best applicable tool cleared that
scenario's published gate; Not qualified means it was tested but fell below
the gate; N/A means no tested tool from that supplier exposed the applicable
contract. A percentage is the share of applicable live rounds that returned at
least one relevant result, with the observation count in parentheses.
Each scenario's detailed leaderboard remains narrower: it includes only qualified suppliers and only one tool per supplier. When several tools from the same supplier qualify, the representative is selected by relevant-result repeatability, then top-five relevance, applicable-case count, expected-response rate, valid-response rate, field completeness, and latency.
| Supplier | Global company discovery | China/HK company news | China specialist news | Macro/cross-asset | Multi-market ticker |
|---|---|---|---|---|---|
| Brave | Not qualified — Brave News Search, 100% (4) | N/A | N/A | Brave News Search — Qualified, 83% (6) | N/A |
| Caidazi | Caidazi Hybrid Search V2 — Qualified, 56% (18) | Caidazi Hybrid Search V2 — Qualified, 50% (4) | Caidazi Hybrid Search V2 — Qualified, 100% (6) | Caidazi Hybrid Search — Qualified, 50% (12) | N/A |
| EODHD | EODHD Financial News — Qualified, 78% (18) | EODHD Financial News — Qualified, 100% (4) | N/A | N/A | EODHD Financial News — Qualified, 7/9 markets |
| Finlight | Not qualified — Finlight Financial News, 11% (18) | Not qualified — Finlight Financial News, 0% (4) | Not qualified — Finlight Financial News, 0% (6) | Not qualified — Finlight Financial News, 33% (12) | Finlight Financial News — Qualified, 7/9 markets |
| Gildata | Gildata Public Opinion — Qualified, 89% (18) | Gildata Stock News — Qualified, 100% (4) | Gildata Public Opinion — Qualified, 100% (6) | Gildata Public Opinion — Qualified, 75% (12) | N/A |
| Linkup | Linkup Search — Qualified, 100% (18) | Linkup Search — Qualified, 100% (4) | N/A | Linkup Search — Qualified, 100% (12) | N/A |
| NewsAPI | Not qualified — NewsAPI Everything, 38% (16) | Not qualified — NewsAPI Everything, 0% (4) | N/A | NewsAPI Everything — Qualified, 80% (10) | N/A |
This is a qualification map, not a universal quality score. Below-gate entries
for shortlisted suppliers remain visible as Not qualified, while detailed
leaderboards include qualified entries only. The detailed metrics below
distinguish relevance, freshness, fields, source diversity, duplicate behavior,
sentiment coverage, latency, and negative controls.
The matrix uses each product's broad discovery or feed input. The strict ticker section is a separate suite using dedicated native ticker parameters and provider-specific symbol formats. Its results are not interchangeable with broad keyword results.
How we scored the financial news APIs: the published evaluation standard
The scoring unit is one observation: one product, one applicable test case, and one live round. A cell is one product-case pair, and an API invocation is one physical request. We report all three to keep the scoring denominator separate from the traffic volume.
| Metric | Public calculation and pass rule |
|---|---|
| Valid API response rate | Observations with a valid success envelope divided by completed observations. A valid empty result counts as an API success; a provider error does not. |
| Expected-response rate | Positive cases pass when at least one article is returned. The invalid-input control passes only when no article is returned. |
| Relevant-result round rate | Applicable live rounds returning at least one relevant top-five row divided by completed applicable rounds. |
| Top-5 relevance | Relevant rows among the first five results. A row is relevant when the requested entity or topic alias appears in its title, summary, or structured entity fields. |
| Fresh-record rate | Returned rows with a usable publication time inside the case's seven-day window divided by all returned rows; a missing time does not receive freshness credit. |
| Core-field completeness | Present values for title, URL, publication time, source, and summary divided by the expected core-field values in returned rows. |
| Observable source diversity | Distinct normalized source values per non-empty observation. Zero means no usable normalized source field, not zero upstream publishers. |
| Duplicate rate | Repeated normalized URLs or title-and-date identities divided by returned rows. |
| Sentiment coverage | Relevant rows with an exposed sentiment value divided by relevant rows. This measures availability, not sentiment accuracy. |
| Requested-language rate | Rows matching the requested language divided by rows whose language is explicit or detectable. The observation denominator is always shown. |
| Requested-country rate | Rows matching the requested country divided by rows with observable country metadata in cases requesting a concrete country. The observation denominator is always shown. |
| Median latency | Median end-to-end elapsed time across completed live observations. It is an observation from this run, not an SLA. |
| Strict ticker-market pass | A real market passes only when both rounds return news relevant to the target company through the provider's dedicated ticker or symbol input. |
| Negative-control pass | The invalid query or ticker returns no article. An irrelevant fallback is a failure, not a successful result. |
At the individual case level and in the supplier comparison matrix, N/A means
the inspected endpoint contract cannot express that request. Not qualified
means applicable cases were completed but the best supplier tool did not clear
the scenario gate. We do not convert contract-level N/A into a failure, and
we do not grant untested credit based on another endpoint from the same
supplier. Provider errors,
wrong-language output, stale or irrelevant fallback data, and unexpected empty
results remain in the underlying evaluation. Every comparison must complete
two live rounds for every applicable cell before it can be considered for
ranking.
A scenario ranking requires at least 50% valid API responses, relevant results in at least 50% of applicable rounds, and an endpoint contract covering at least 50% of that scenario's fixed cases. Only the best qualifying tool from each supplier is shown. The multi-market ticker ranking separately requires at least 50% valid calls and repeatable relevant results in at least five of the nine tested markets. These are eligibility gates, not extra points added after the test.
Ticker syntax is normalized per provider before the final run. Language claims are split into three separate facts: what the vendor documents, what the current integration exposes, and what the fixed live cases actually returned. Charts are generated from the same sanitized scorecard as the tables.
Is this evaluation scientific and accurate?
It is a controlled, reproducible product-selection benchmark, but it is not a statistically conclusive academic study or a long-term reliability certification. The fixed cases, explicit denominators, two-round completion gate, provider-native ticker formats, negative controls, and preserved run evidence make comparisons auditable and useful for choosing an API.
The main limitation is sample size and time dependence. Two rounds can confirm repeatability during the test window, but cannot estimate a provider's monthly SLA, full language inventory, or long-run recall with narrow confidence intervals. News availability also changes with the news cycle, licensing, subscription tier, and indexing delay. We therefore publish observed results with their test date and denominators, avoid a single universal score, and recommend quarterly reruns plus reruns after material integration changes.
Best financial news API by agent workflow
| Agent workflow | Best observed fit | Why |
|---|---|---|
| Structured multi-market ticker news | Finlight Financial News | 20/20 valid calls; relevant results in both rounds for 7/9 markets; clean invalid-ticker behavior |
| Global company discovery | Linkup Search | Relevant results in 18/18 observations across all nine fixed company cases |
| China/HK company news | Gildata Stock News, EODHD, and Linkup | Each returned relevant results in 4/4 applicable China/HK observations |
| Chinese specialist news | Caidazi Hybrid Search V2 and Gildata Public Opinion | Both returned relevant results in 6/6 observations with 100% top-5 relevance |
| Macro and cross-asset discovery | Linkup Search | Relevant results in 12/12 observations; NewsAPI followed at 8/10 |
| English discovery | Brave News Search | Relevant results in 5/6 macro and cross-asset observations within its tested scope |
| Multi-market ticker alternative | EODHD Financial News | Relevant results repeated in 7/9 markets |
China/HK company-news trade-offs
The table below shows one qualifying representative tool per supplier. All four tools cover both fixed China/HK company cases and returned relevant results in at least half of their live rounds.
| Product | Relevant rounds | Top-5 relevance | Fresh records | Core fields | Sources/non-empty run | Duplicate rate | Sentiment on relevant rows | Median latency | Invalid control |
|---|---|---|---|---|---|---|---|---|---|
| Caidazi Hybrid Search V2 | 2/4 | 100% | 20% | 100% | 2.0 | 0% | 0% | 1,809 ms | 0/2 |
| EODHD Financial News | 4/4 | 100% | 0% | 60% | 0.0 | 0% | 100% | 2,194 ms | 0/2 |
| Gildata Stock News | 4/4 | 100% | 0% | 60% | 0.0 | 0% | 0% | 11,056 ms | 2/2 |
| Linkup Search | 4/4 | 55% | 0% | 40% | 0.0 | 0% | 0% | 4,042 ms | 0/2 |
These numbers expose different product shapes. EODHD and Gildata Stock News
were highly relevant in these fixed company cases, while Caidazi exposed richer
observable source and core-field data. A 0.0 source count means the normalized
response did not expose a usable source value; it does not mean that the
supplier ingested zero publishers.
Chinese specialist-news trade-offs
This cohort requires coverage of at least two of the three fixed fund, industry, and organization cases, then keeps only the strongest qualifying tool from each supplier.
| Product | Observations | Relevant rounds | Top-5 relevance | Fresh records | Core fields | Sources/non-empty run | Duplicate rate | Median latency |
|---|---|---|---|---|---|---|---|---|
| Caidazi Hybrid Search V2 | 6 | 6/6 | 100% | 33% | 100% | 4.0 | 0% | 2,028 ms |
| Gildata Public Opinion | 6 | 6/6 | 100% | 53% | 48% | 0.0 | 0% | 24,739 ms |
Both representatives returned relevant results in all six observations. Their trade-off is different: Caidazi was faster and exposed more complete normalized fields and sources, while Gildata returned a higher share of records inside the freshness window.
Macro and cross-asset trade-offs
The following supplier representatives met all ranking gates in the macro, crypto, and forex scenario. Applicability still differs: NewsAPI had 10 observations, while the other rows had 6 or 12.
| Product | Observations | Relevant rounds | Top-5 relevance | Fresh records | Core fields | Sources/non-empty run | Duplicate rate | Median latency | Invalid control |
|---|---|---|---|---|---|---|---|---|---|
| Brave News Search | 6 | 5/6 | 96% | 0% | 60% | 0.0 | 0% | 1,991 ms | 0/2 |
| Caidazi Hybrid Search | 12 | 6/12 | 32% | 44% | 73% | 4.2 | 8% | 2,902 ms | 0/2 |
| Gildata Public Opinion | 12 | 9/12 | 89% | 0% | 60% | 0.0 | 0% | 15,909 ms | 2/2 |
| Linkup Search | 12 | 12/12 | 100% | 0% | 40% | 0.0 | 0% | 6,372 ms | 0/2 |
| NewsAPI Everything | 10 | 8/10 | 70% | 35% | 100% | 2.6 | 0% | 2,826 ms | 2/2 |
Freshness and field values are measured only from normalized returned rows. An invalid-control failure means the endpoint returned fallback content for the deliberately nonexistent query; it does not invalidate its positive-case results, but agents should add their own relevance guard.
Finlight: best ticker news API for structured agent workflows
Finlight completed 20/20 calls in the strict ticker suite, passed both invalid-ticker controls, and returned relevant news in both rounds for US, HK, JP, DE, FR, IN, and ES. CN and BR returned empty results in both rounds. Median latency was 1,574 ms.
A “pass” means relevant results appeared in both fixed live rounds. It is an observed benchmark result, not a permanent coverage guarantee.
Finlight also returned structured article fields useful to agents: title, URL,
publication time, source, summary, language, countries, sentiment label,
categories, and expanded company entities. Its confidence field is
classification confidence, not directional sentiment, so we did not score it
as a sentiment value.
Which languages do financial news APIs support?
Language coverage has three layers:
- what the vendor documents;
- what the current integration lets an agent request;
- what returned relevant requested-language news in live tests.
The chart preserves the same seven-supplier public comparison shortlist. Suppliers for
which we did not independently verify a vendor or integration language-control
profile remain visible as N/A; they are not treated as supporting zero
languages. The compact table lists the four verified profiles and reports
observed case results without inferring an undocumented language inventory.
| Product | Documented or exposed language control | Repeatably observed requested languages |
|---|---|---|
| Finlight Financial News | Vendor API accepts one ISO 639-1 language per request and defaults to en; current integration does not expose the parameter |
en |
| Linkup Search | No explicit language filter in the tested contract | de, en, es, ja, pt, zh; the fr case met the strict rule in 1/2 live rounds |
| NewsAPI Everything | 14 exposed codes: ar, de, en, es, fr, he, it, nl, no, pt, ru, sv, ud, zh |
en |
| Brave News Search | Current integration enumerates ar, bg, bn, ca, en, eu |
en |
Repeated relevant retrieval
14 language codes exposed
Structured ticker strength
Finlight's own documentation says that the API indexes news in many languages, filters one language per request, and defaults to English. It also documents strict ticker filtering and exchange-aware company entities. The missing language control is therefore an integration gap, not evidence that the underlying Finlight API is English-only. See the Finlight REST endpoint and multilingual query guide.
NewsAPI documents its exact language enum on the Everything endpoint.
Stock ticker lookup by market: which API resolves symbols reliably?
| Product | Markets passing both rounds | Edge-case behavior |
|---|---|---|
| Finlight Financial News | US, HK, JP, DE, FR, IN, ES | Invalid ticker returned empty in both rounds |
| EODHD Financial News | US, HK, CN, DE, FR, BR, ES | JP, IN, and invalid ticker returned provider errors |
Ticker support is not the same as keyword recall. A product can find an article
containing “Toyota” yet fail a strict 7203.T lookup, and different providers
use different suffixes for the same listing. Agents that accept user-entered
symbols should normalize symbols per provider before calling the news endpoint.
Country and requested-language results
This matrix preserves the same seven-supplier public comparison shortlist and
uses each supplier's global-company representative, whether qualified or below the gate.
Every applicable tool-case cell was called twice; N/A means the case is
outside that endpoint's tested contract, not that the test was skipped.
Each percentage is the number of passing live rounds divided by two. A round
passes only when the call has the expected response shape, returns at least one
relevant result, all language-observable top-five results match the requested
language, and any available country metadata matches the requested market.
Therefore, 50% means one of two live rounds passed the complete rule; it is
not an article-level language accuracy or a long-term provider support rate.
A 50% cell means one of two complete live rounds passed. It is not an article-level language-accuracy score.
Country tags in financial news can mean source country, company domicile, listing market, or article topic. Buyers should verify which semantic a provider uses before treating country filters as exchange filters.
How to choose a financial news API for your AI agent
Choose Finlight when your agent starts with a ticker and needs structured
entities, sentiment labels, categories, provenance, and clean negative-control
behavior. If multilingual Finlight retrieval matters, expose its native
language parameter first and rerun the same fixed cases.
Choose EODHD when broad exchange-coded ticker coverage matters and your agent can handle provider errors explicitly.
Choose Linkup when multilingual recall and citations matter more than having a strict news-feed contract. Choose Brave for English discovery within its tested scope. Choose NewsAPI when you need a familiar keyword API and explicit language selection, while accepting that declared language options do not guarantee relevant local-market results.
For China/HK company workflows, compare Gildata Stock News, EODHD, Linkup, and Caidazi Hybrid Search V2 against the response shape your agent needs. Gildata Stock News and EODHD were the most consistently relevant in the two fixed company cases; Caidazi exposed more complete normalized fields and observable source diversity; Linkup traded structure for broader retrieval.
For Chinese fund, industry, and organization workflows, Caidazi Hybrid Search V2 was faster and more structurally complete in the fixed suite. Gildata Public Opinion matched all six relevant-result rounds with stronger observed freshness, but higher latency.
For macro, crypto, and forex discovery, Linkup had the strongest relevant-result repeatability, followed by NewsAPI and Gildata Public Opinion in their applicable cases. Linkup and Brave both failed the invalid-query control, so an agent using them should validate entity/topic relevance before accepting fallback results.
Limitations
This is a dated live observation, not a permanent statement about a provider's entire inventory. News availability changes with the news cycle, subscription tier, source licensing, indexing delay, and integration schema. Empty results do not prove a market is contractually unsupported; they mean that the fixed query returned no relevant article in the tested window.
The benchmark scores the endpoints and parameters actually called. It does not transfer a capability from another endpoint owned by the same provider.
How providers can join or improve the benchmark
Providers can submit a comparable news discovery or ticker-news endpoint, document its market and language controls, and supply a test credential or QVeris integration. Inclusion and ranking cannot be purchased. Corrections to contract facts can be made from documentation; performance results change only after the fixed live suite is rerun.
Start by checking whether your product is already listed in the QVeris Provider Hub. To request a new listing, correct an endpoint contract, or schedule a comparable retest, email support@qveris.ai with “Financial News Benchmark” in the subject.
For the fastest retest, provide:
- the exact endpoint and stable schema;
- supported ticker formats and exchanges;
- language codes and whether the filter is article-level or source-level;
- country-field semantics;
- source, licensing, and freshness constraints;
- invalid-input and empty-result behavior.
FAQ: financial news APIs for AI agents
What is the best financial news API for an AI agent?
There is no single winner. In this benchmark, Finlight was the best structured ticker news API, Linkup the strongest for multilingual and macro discovery, EODHD the best broad-exchange ticker alternative, and Gildata and Caidazi the best for Chinese-market coverage. Pick by workflow, not by an overall score.
Can I search financial news by stock ticker?
Yes. Several tested integrations exposed dedicated ticker or symbol inputs,
but only Finlight and EODHD met the published multi-market ranking gate. Market
coverage and ticker syntax differ, so normalize the user's symbol to the
provider's dialect (for example 7203.T versus TYO:7203).
Which API had the broadest observed language coverage?
Linkup repeated relevant results in six requested languages. The French case met the strict rule in 1/2 live rounds. It is a Web retrieval product, not a strict structured financial news feed. Among explicit news APIs in the tested integrations, English was the only language repeated in our fixed company cases.
Which financial news APIs return sentiment?
Finlight exposed a sentiment label alongside structured entities, categories and provenance. Sentiment coverage here measures availability on relevant rows, not sentiment accuracy.
Is there a free financial news API for AI agents?
Several tested providers offer free or trial tiers, but the results above were measured on the plans we tested. Free tiers usually reduce source licensing, history depth and rate limits, so rerun the fixed cases on the exact plan you intend to ship.
How fast are these APIs?
Median end-to-end latency in this run ranged from about 1.6 s (Finlight ticker lookups) to roughly 16 s (Gildata Public Opinion). Treat these as observations from the test window, not as an SLA.
How often should these results be rerun?
Quarterly, and after any material endpoint, source, plan, schema, language, or ticker-routing change. Keep the test cases stable so score changes reflect the product rather than a rewritten benchmark.
