<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Oleksyj Mokrousov</title>
    <description>The latest articles on DEV Community by Oleksyj Mokrousov (@alexperigon).</description>
    <link>https://dev.to/alexperigon</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4041800%2F24787fa5-afb1-4649-b76c-7afa15ff43a5.png</url>
      <title>DEV Community: Oleksyj Mokrousov</title>
      <link>https://dev.to/alexperigon</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/alexperigon"/>
    <language>en</language>
    <item>
      <title>Keyword vs Google Taxonomy: Fix Noisy Vertical News Alerts</title>
      <dc:creator>Oleksyj Mokrousov</dc:creator>
      <pubDate>Sat, 25 Jul 2026 10:23:06 +0000</pubDate>
      <link>https://dev.to/alexperigon/keyword-vs-google-taxonomy-fix-noisy-vertical-news-alerts-41f0</link>
      <guid>https://dev.to/alexperigon/keyword-vs-google-taxonomy-fix-noisy-vertical-news-alerts-41f0</guid>
      <description>&lt;h2&gt;
  
  
  Your industry alert is still a string match
&lt;/h2&gt;

&lt;p&gt;A “banking desk” built on &lt;strong&gt;q&lt;/strong&gt; = bank will happily ingest river banks, blood banks, data banks, and robbery blotter. A “rock feed” on &lt;strong&gt;q&lt;/strong&gt; = rock will mix geology, wrestling, and cocktail recipes with actual Rock Music coverage. The channel looks productive; the product is not on-vertical.&lt;/p&gt;

&lt;p&gt;This page is a &lt;strong&gt;bakeoff diagnostic&lt;/strong&gt; for noisy keyword desks. It is not the full Google taxonomy filter cookbook (exact path vs prefixTaxonomy, Stories, classify). That lives on Perigon’s &lt;a href="https://perigon.io/blog/news-api-filter-by-google-taxonomy" rel="noopener noreferrer"&gt;News API filter by Google taxonomy&lt;/a&gt; guide - link out when you are ready to wire the params.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Why do vertical keywords inflate alerts?&lt;/li&gt;
&lt;li&gt;How large are the gaps for bank, fund, and rock?&lt;/li&gt;
&lt;li&gt;When should you use taxonomy vs Perigon category vs topic?&lt;/li&gt;
&lt;li&gt;What bakeoff should you run before shipping a desk?&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Why vertical keywords inflate alerts
&lt;/h2&gt;

&lt;p&gt;Keywords match tokens. Vertical desks need &lt;strong&gt;aboutness&lt;/strong&gt;. Google Content Category paths (V2) on Perigon articles describe industry and content family - Banking under Finance, Rock Music under Arts &amp;amp; Entertainment - so a filter can mean “this kind of story,” not “this substring appeared.”&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Habit&lt;/th&gt;
&lt;th&gt;What you get&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;strong&gt;q&lt;/strong&gt; = bank / banking&lt;/td&gt;
&lt;td&gt;Central banks, rivers, features named “bank,” crime, metaphors&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;strong&gt;q&lt;/strong&gt; = fund&lt;/td&gt;
&lt;td&gt;Mutual funds plus “fund a project,” fundraisers, verb uses&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;strong&gt;q&lt;/strong&gt; = rock&lt;/td&gt;
&lt;td&gt;Music plus geology, sports nicknames, food, idioms&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Taxonomy path for the vertical&lt;/td&gt;
&lt;td&gt;Articles classified into that Google hierarchy&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;You still stack dates, sources, and companies. The fix is choosing the right &lt;em&gt;aboutness&lt;/em&gt; filter first.&lt;/p&gt;

&lt;h2&gt;
  
  
  Live bakeoff: bank, fund, rock (30 days)
&lt;/h2&gt;

&lt;p&gt;Articles counts for pubDate &lt;strong&gt;2026-06-25&lt;/strong&gt; through &lt;strong&gt;2026-07-25&lt;/strong&gt; (round in product copy; huge open queries are order-of-magnitude):&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Desk intent&lt;/th&gt;
&lt;th&gt;Keyword filter&lt;/th&gt;
&lt;th&gt;About how many&lt;/th&gt;
&lt;th&gt;Taxonomy / structured filter&lt;/th&gt;
&lt;th&gt;About how many&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Banking vertical&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;q&lt;/strong&gt; = bank&lt;/td&gt;
&lt;td&gt;~988,000&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;taxonomy&lt;/strong&gt; = /Finance/Banking/Other&lt;/td&gt;
&lt;td&gt;~363,000&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Banking (wordier keyword)&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;q&lt;/strong&gt; = banking&lt;/td&gt;
&lt;td&gt;~259,000&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;prefixTaxonomy&lt;/strong&gt; = /Finance/Banking&lt;/td&gt;
&lt;td&gt;~363,000&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Funds vertical&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;q&lt;/strong&gt; = fund&lt;/td&gt;
&lt;td&gt;~695,000&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;taxonomy&lt;/strong&gt; = /Finance/Investing/Funds&lt;/td&gt;
&lt;td&gt;~398,000&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Rock music vertical&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;q&lt;/strong&gt; = rock&lt;/td&gt;
&lt;td&gt;~341,000&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;taxonomy&lt;/strong&gt; = /Arts &amp;amp; Entertainment/Music &amp;amp; Audio/Rock Music&lt;/td&gt;
&lt;td&gt;~210,000&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Read the table carefully.&lt;/strong&gt; Taxonomy is not always the smallest number - &lt;strong&gt;q&lt;/strong&gt; = banking (~259k) is below Banking taxonomy (~363k) because many banking stories never use the token “banking.” The failure mode is different: keywords &lt;strong&gt;miss&lt;/strong&gt; on-vertical pieces &lt;em&gt;and&lt;/em&gt; &lt;strong&gt;include&lt;/strong&gt; off-vertical tokens. Taxonomy stays on the Google Banking branch either way.&lt;/p&gt;

&lt;p&gt;Keyword &lt;strong&gt;bank&lt;/strong&gt; (~988k) is still ~2.7× the Banking taxonomy slice - that gap is mostly noise and adjacent senses. Keyword &lt;strong&gt;fund&lt;/strong&gt; (~695k) vs Funds path (~398k) shows the same pattern. Keyword &lt;strong&gt;rock&lt;/strong&gt; (~341k) vs Rock Music (~210k) cuts a large geology/idiom/sports tail while keeping tour and album coverage the music desk wants.&lt;/p&gt;

&lt;p&gt;For a wider finance firehose, &lt;strong&gt;prefixTaxonomy&lt;/strong&gt; = /Finance was about &lt;strong&gt;3.4M&lt;/strong&gt; in the same window - useful as a branch monitor, not a tight desk. Pair a narrower leaf path when alerts must stay readable.&lt;/p&gt;

&lt;h2&gt;
  
  
  Taxonomy vs category vs topic (pick one job)
&lt;/h2&gt;

&lt;p&gt;Perigon exposes three related dimensions. Mixing them up recreates keyword chaos with nicer names.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Filter&lt;/th&gt;
&lt;th&gt;What it is&lt;/th&gt;
&lt;th&gt;Use when&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;strong&gt;taxonomy&lt;/strong&gt; / &lt;strong&gt;prefixTaxonomy&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;Google Content Category paths&lt;/td&gt;
&lt;td&gt;Industry / content-family desks (Banking, Rock Music, Health Conditions)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;category&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Perigon broad themes (Finance, Tech, Health, …)&lt;/td&gt;
&lt;td&gt;Fast dashboard buckets; e.g. &lt;strong&gt;category&lt;/strong&gt; = Finance was ~3.5M in this window&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;topic&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Granular Perigon topics&lt;/td&gt;
&lt;td&gt;Storyline types - e.g. &lt;strong&gt;topic&lt;/strong&gt; = Cryptocurrency ~187k vs &lt;strong&gt;q&lt;/strong&gt; = cryptocurrency ~89k (topic can out-recall a thin keyword)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Rule of thumb:&lt;/strong&gt; Google path when the desk is an industry tree; Perigon &lt;strong&gt;category&lt;/strong&gt; for coarse theme chrome; &lt;strong&gt;topic&lt;/strong&gt; when you need a named storyline slice. Stack carefully - do not OR three overlapping definitions of “finance” and call it precision. Deep param behavior stays on the taxonomy filter guide linked above.&lt;/p&gt;

&lt;h2&gt;
  
  
  Bakeoff checklist before you ship a vertical alert
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Write the desk intent in one sentence (“Rock Music coverage,” not “anything with rock”).&lt;/li&gt;
&lt;li&gt;Run &lt;strong&gt;q&lt;/strong&gt; = token and the matching Google &lt;strong&gt;taxonomy&lt;/strong&gt; (or &lt;strong&gt;prefixTaxonomy&lt;/strong&gt;) for the same from/to window.&lt;/li&gt;
&lt;li&gt;Spot-check twenty titles from each list - count off-vertical hits and obvious misses.&lt;/li&gt;
&lt;li&gt;If the keyword is quieter but incomplete (like &lt;strong&gt;q&lt;/strong&gt; = banking vs Banking path), prefer taxonomy and accept the larger on-vertical set.&lt;/li&gt;
&lt;li&gt;Only then add source packs, companies, or labels - aboutness first, polish second.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Key takeaways
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Vertical &lt;strong&gt;q&lt;/strong&gt; filters are string matches; &lt;strong&gt;taxonomy&lt;/strong&gt; paths are aboutness filters for industry desks.&lt;/li&gt;
&lt;li&gt;Live gaps matter: &lt;strong&gt;bank&lt;/strong&gt; ~988k vs Banking taxonomy ~363k; &lt;strong&gt;rock&lt;/strong&gt; ~341k vs Rock Music ~210k (30 days ending &lt;strong&gt;2026-07-25&lt;/strong&gt;).&lt;/li&gt;
&lt;li&gt;Quieter keywords are not always better - &lt;strong&gt;banking&lt;/strong&gt; can under-recall vs the Banking path.&lt;/li&gt;
&lt;li&gt;Use taxonomy for industry trees, &lt;strong&gt;category&lt;/strong&gt; for broad themes, &lt;strong&gt;topic&lt;/strong&gt; for granular storylines.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>news</category>
      <category>api</category>
      <category>python</category>
    </item>
    <item>
      <title>Place-Name Keywords vs Geo Filters for Local News</title>
      <dc:creator>Oleksyj Mokrousov</dc:creator>
      <pubDate>Sat, 25 Jul 2026 10:12:39 +0000</pubDate>
      <link>https://dev.to/alexperigon/place-name-keywords-vs-geo-filters-for-local-news-4912</link>
      <guid>https://dev.to/alexperigon/place-name-keywords-vs-geo-filters-for-local-news-4912</guid>
      <description>&lt;h2&gt;
  
  
  Your “local” alert is probably a keyword in disguise
&lt;/h2&gt;

&lt;p&gt;Many desks build “Chicago news” or “Portland coverage” by stuffing the city into a keyword field. That habit creates false confidence: the feed looks busy, the Slack channel never sleeps, and half the hits are the wrong market, a person named Austin, or a national wire that mentioned the city once.&lt;/p&gt;

&lt;p&gt;This page is a &lt;strong&gt;diagnostic&lt;/strong&gt;, not a full geography-param cookbook. It shows five failure modes with live volume gaps, then points you to structured filters. For the complete local news API surface (county, radius, Stories, Sources), use Perigon’s &lt;a href="https://perigon.io/blog/local-news-api-search-guide" rel="noopener noreferrer"&gt;Local news API search guide&lt;/a&gt;.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;What goes wrong when the city is only a keyword?&lt;/li&gt;
&lt;li&gt;How big is the gap for ambiguous markets (Portland, Austin, Springfield)?&lt;/li&gt;
&lt;li&gt;How do event-city and newsroom-city filters differ (Chicago)?&lt;/li&gt;
&lt;li&gt;What should you change in the alert job tomorrow?&lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Try it:&lt;/strong&gt; &lt;a href="https://perigon.io/sandbox?endpoint=articles" rel="noopener noreferrer"&gt;Articles sandbox&lt;/a&gt; · &lt;strong&gt;Docs:&lt;/strong&gt; &lt;a href="https://perigon.io/docs/api/local-news" rel="noopener noreferrer"&gt;Local news&lt;/a&gt; · &lt;strong&gt;Plans:&lt;/strong&gt; &lt;a href="https://perigon.io/products/pricing/apis" rel="noopener noreferrer"&gt;API pricing&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Failure mode 1: Ambiguous city names (the Portland problem)
&lt;/h2&gt;

&lt;p&gt;Portland is not one market. A keyword match cannot tell Oregon from Maine - or from cement, travel, and sports noise that shares the string.&lt;/p&gt;

&lt;p&gt;Live Articles counts for pubDate &lt;strong&gt;2026-06-25&lt;/strong&gt; through &lt;strong&gt;2026-07-25&lt;/strong&gt;:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Filter&lt;/th&gt;
&lt;th&gt;About how many articles&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;strong&gt;q&lt;/strong&gt; = Portland&lt;/td&gt;
&lt;td&gt;~67,000&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;strong&gt;city&lt;/strong&gt; = Portland + &lt;strong&gt;state&lt;/strong&gt; = OR&lt;/td&gt;
&lt;td&gt;~6,200&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;strong&gt;city&lt;/strong&gt; = Portland + &lt;strong&gt;state&lt;/strong&gt; = ME&lt;/td&gt;
&lt;td&gt;~1,300&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Keyword Portland is roughly &lt;strong&gt;10×&lt;/strong&gt; Oregon event-scoped volume and &lt;strong&gt;50×&lt;/strong&gt; Maine. If your “Portland desk” used &lt;strong&gt;q&lt;/strong&gt;, most of the firehose was not your DMA.&lt;/p&gt;

&lt;h2&gt;
  
  
  Failure mode 2: Person and brand collisions (Austin)
&lt;/h2&gt;

&lt;p&gt;Austin is a capital city and a common given name. Keyword search pulls both.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Filter&lt;/th&gt;
&lt;th&gt;About how many articles&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;strong&gt;q&lt;/strong&gt; = Austin&lt;/td&gt;
&lt;td&gt;~143,000&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;strong&gt;city&lt;/strong&gt; = Austin + &lt;strong&gt;state&lt;/strong&gt; = TX&lt;/td&gt;
&lt;td&gt;~11,000&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Texas event geography is about &lt;strong&gt;13×&lt;/strong&gt; quieter than the keyword - still busy, but no longer every headline that mentions someone named Austin.&lt;/p&gt;

&lt;h2&gt;
  
  
  Failure mode 3: Many towns, one string (Springfield)
&lt;/h2&gt;

&lt;p&gt;Springfield is a classic trap: Illinois capital, plus cities in other states, plus fiction and sports nicknames.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Filter&lt;/th&gt;
&lt;th&gt;About how many articles&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;strong&gt;q&lt;/strong&gt; = Springfield&lt;/td&gt;
&lt;td&gt;~24,000&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;strong&gt;city&lt;/strong&gt; = Springfield + &lt;strong&gt;state&lt;/strong&gt; = IL&lt;/td&gt;
&lt;td&gt;~2,200&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;If the job is Springfield, Illinois government or plant news, the keyword feed is mostly other Springfields and incidental mentions.&lt;/p&gt;

&lt;h2&gt;
  
  
  Failure mode 4: Event city vs newsroom city (Chicago)
&lt;/h2&gt;

&lt;p&gt;Even when the place string is unique enough, &lt;strong&gt;where the story happened&lt;/strong&gt; and &lt;strong&gt;where the publisher sits&lt;/strong&gt; are different questions. Keyword Chicago mixes both - and everything else.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Filter&lt;/th&gt;
&lt;th&gt;About how many articles&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;strong&gt;q&lt;/strong&gt; = Chicago&lt;/td&gt;
&lt;td&gt;~321,000&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;strong&gt;city&lt;/strong&gt; = Chicago + &lt;strong&gt;state&lt;/strong&gt; = IL (event / story place)&lt;/td&gt;
&lt;td&gt;~60,000&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;strong&gt;sourceCity&lt;/strong&gt; = Chicago + &lt;strong&gt;sourceState&lt;/strong&gt; = IL (publisher based there)&lt;/td&gt;
&lt;td&gt;~144,000&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Event-scoped Chicago is far below the keyword firehose. Newsroom-scoped Chicago is larger than event-scoped - national and metro outlets headquartered in Chicago cover many non-Chicago events. Pick the axis on purpose: city council and weather emergencies → event &lt;strong&gt;city&lt;/strong&gt; / &lt;strong&gt;state&lt;/strong&gt;; hyperlocal reader apps and DMA ad products → &lt;strong&gt;sourceCity&lt;/strong&gt; / &lt;strong&gt;sourceState&lt;/strong&gt;. Combining both is a third product (events in a county from in-state publishers) - details in the local news guide linked above and &lt;a href="https://perigon.io/docs/api/location-geo" rel="noopener noreferrer"&gt;location &amp;amp; geo docs&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Failure mode 5: Treating volume as quality
&lt;/h2&gt;

&lt;p&gt;A keyword city alert “working” usually means it is loud. Use a one-week bakeoff before you ship:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Run &lt;strong&gt;q&lt;/strong&gt; = CityName and &lt;strong&gt;city&lt;/strong&gt; + &lt;strong&gt;state&lt;/strong&gt; side by side for the same from/to window.&lt;/li&gt;
&lt;li&gt;Spot-check twenty titles from each - count wrong-market and name-collision hits.&lt;/li&gt;
&lt;li&gt;If you need outlets in the market rather than events there, swap in &lt;strong&gt;sourceCity&lt;/strong&gt; / &lt;strong&gt;sourceState&lt;/strong&gt; (or discover publishers on the Sources API first).&lt;/li&gt;
&lt;li&gt;Only then add topic, company, or radius - geography first, keywords second.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Radius feeds (&lt;strong&gt;lat&lt;/strong&gt; / &lt;strong&gt;lon&lt;/strong&gt; / &lt;strong&gt;maxDistance&lt;/strong&gt;) belong when the user or plant is a point on a map, not a city string - again owned by the full local guide, not this diagnostic.&lt;/p&gt;

&lt;h2&gt;
  
  
  What to change in the alert job tomorrow
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;If your job looks like…&lt;/th&gt;
&lt;th&gt;Stop doing&lt;/th&gt;
&lt;th&gt;Start doing&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;“Portland OR desk” via &lt;strong&gt;q&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;Keyword Portland&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;city&lt;/strong&gt; + &lt;strong&gt;state&lt;/strong&gt; = OR&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;“Austin CI” via &lt;strong&gt;q&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;Keyword Austin&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;city&lt;/strong&gt; + &lt;strong&gt;state&lt;/strong&gt; = TX (+ company filters)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;“Springfield IL plant”&lt;/td&gt;
&lt;td&gt;Keyword Springfield&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;city&lt;/strong&gt; + &lt;strong&gt;state&lt;/strong&gt; = IL (or county)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;“Chicago hyperlocal app”&lt;/td&gt;
&lt;td&gt;Keyword Chicago&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;sourceCity&lt;/strong&gt; / &lt;strong&gt;sourceState&lt;/strong&gt;, or Sources then allowlist&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;“Stories in the metro”&lt;/td&gt;
&lt;td&gt;Article keyword flood&lt;/td&gt;
&lt;td&gt;Stories with &lt;strong&gt;city&lt;/strong&gt; / &lt;strong&gt;state&lt;/strong&gt; (see local guide)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Key takeaways
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Place-name keywords are not &lt;strong&gt;local news monitoring&lt;/strong&gt; - they are string matches with market collisions.&lt;/li&gt;
&lt;li&gt;Live gaps are large (e.g. Portland &lt;strong&gt;q&lt;/strong&gt; ~67k vs OR ~6.2k vs ME ~1.3k; Austin &lt;strong&gt;q&lt;/strong&gt; ~143k vs TX ~11k in 30 days ending &lt;strong&gt;2026-07-25&lt;/strong&gt;).&lt;/li&gt;
&lt;li&gt;Chicago shows event &lt;strong&gt;city&lt;/strong&gt; (~60k) and &lt;strong&gt;sourceCity&lt;/strong&gt; (~144k) answer different product questions - neither equals keyword Chicago (~321k).&lt;/li&gt;
&lt;li&gt;Fix the geography axis first; leave the full param and radius cookbook to Perigon’s Local news API search guide.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Get started:&lt;/strong&gt; &lt;a href="https://perigon.io/sandbox?endpoint=articles" rel="noopener noreferrer"&gt;Articles sandbox&lt;/a&gt; · &lt;a href="https://perigon.io/docs/api/local-news" rel="noopener noreferrer"&gt;Local news docs&lt;/a&gt; · &lt;a href="https://perigon.io/blog/local-news-api-search-guide" rel="noopener noreferrer"&gt;Local news API search guide&lt;/a&gt; · &lt;a href="https://perigon.io/products/pricing/apis" rel="noopener noreferrer"&gt;API pricing&lt;/a&gt;&lt;/p&gt;

</description>
      <category>news</category>
      <category>api</category>
      <category>python</category>
    </item>
    <item>
      <title>News Integration: RSS Polling vs Structured Feeds</title>
      <dc:creator>Oleksyj Mokrousov</dc:creator>
      <pubDate>Sat, 25 Jul 2026 09:46:35 +0000</pubDate>
      <link>https://dev.to/alexperigon/news-integration-rss-polling-vs-structured-feeds-3a00</link>
      <guid>https://dev.to/alexperigon/news-integration-rss-polling-vs-structured-feeds-3a00</guid>
      <description>&lt;h2&gt;
  
  
  Product news features hit a wall that feed readers never see
&lt;/h2&gt;

&lt;p&gt;Shipping a &lt;strong&gt;news integration&lt;/strong&gt; - a Slack alert bot, a customer dashboard tile, an AI agent that cites today’s coverage - feels easy if you start with &lt;strong&gt;RSS polling&lt;/strong&gt;. Grab a few XML feed URLs, cron every 15 minutes, parse title/link/date, done. That pattern works for humans in a feed reader. It falls apart the moment the same stream has to power a product: dedupe across outlets, filter by company or person, push events into your system, or keep latency predictable under load.&lt;/p&gt;

&lt;p&gt;This piece is for builders. If you only need a personal reader decision (when Google News / publisher RSS is enough vs curated trackers), start with Perigon’s &lt;a href="https://perigon.io/blog/google-rss-vs-perigon-data-feeds" rel="noopener noreferrer"&gt;Google RSS vs data feeds guide&lt;/a&gt; instead - that page owns the human-monitor angle. Here the job is different: &lt;strong&gt;news API for products&lt;/strong&gt;, &lt;strong&gt;production news pipelines&lt;/strong&gt;, and why &lt;strong&gt;XML news feeds&lt;/strong&gt; stop being an architecture.&lt;/p&gt;

&lt;p&gt;The sections below answer:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;What does RSS polling look like inside an app stack?&lt;/li&gt;
&lt;li&gt;Where do XML news feeds break product pipelines?&lt;/li&gt;
&lt;li&gt;What does a structured news integration look like instead?&lt;/li&gt;
&lt;li&gt;When should you keep RSS vs move to feeds, Signals, or the API?&lt;/li&gt;
&lt;li&gt;How do live coverage volumes change the design?&lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Try queries:&lt;/strong&gt; &lt;a href="https://perigon.io/sandbox?endpoint=articles" rel="noopener noreferrer"&gt;Articles sandbox&lt;/a&gt; · &lt;strong&gt;Push events:&lt;/strong&gt; &lt;a href="https://perigon.io/connectors/webhooks" rel="noopener noreferrer"&gt;Signals webhooks&lt;/a&gt; · &lt;strong&gt;Plans:&lt;/strong&gt; &lt;a href="https://perigon.io/products/pricing/apis" rel="noopener noreferrer"&gt;API pricing&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  What RSS polling looks like in an app stack
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;RSS polling&lt;/strong&gt; is a client-side loop: store feed URLs, HTTP GET on a schedule, parse channel items, upsert by link or GUID, notify users. Many teams also scrape Google News–style query feeds the same way. The contract is thin - usually title, link, summary, published date - and each URL is its own silo.&lt;/p&gt;

&lt;p&gt;In a product that means:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Layer&lt;/th&gt;
&lt;th&gt;Typical RSS approach&lt;/th&gt;
&lt;th&gt;Product friction&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Ingest&lt;/td&gt;
&lt;td&gt;Cron + XML parse&lt;/td&gt;
&lt;td&gt;Poll windows miss bursts; every publisher is a custom URL&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Identity&lt;/td&gt;
&lt;td&gt;Link / GUID&lt;/td&gt;
&lt;td&gt;Same story across 20 outlets → 20 rows&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Filter&lt;/td&gt;
&lt;td&gt;Keyword rules in your code&lt;/td&gt;
&lt;td&gt;No stable company or person IDs&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Delivery&lt;/td&gt;
&lt;td&gt;Your own queue after poll&lt;/td&gt;
&lt;td&gt;You own retries, backlog, and quiet hours&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Scale&lt;/td&gt;
&lt;td&gt;Add more feed URLs&lt;/td&gt;
&lt;td&gt;Coverage sprawl without shared schema&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;None of that is wrong for a hobby bot. It is a weak foundation for a &lt;strong&gt;structured news feed&lt;/strong&gt; your customers rely on.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where XML news feeds break product pipelines
&lt;/h2&gt;

&lt;p&gt;Four failure modes show up once the feature leaves a side project.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Volume without structure.&lt;/strong&gt; In the Perigon index for pubDate &lt;strong&gt;2026-06-25&lt;/strong&gt; through &lt;strong&gt;2026-07-25&lt;/strong&gt;, a plain &lt;strong&gt;q&lt;/strong&gt; of cybersecurity matched about &lt;strong&gt;138,000&lt;/strong&gt; articles. OpenAI as a keyword hit about &lt;strong&gt;167,000&lt;/strong&gt;; resolving the same company via &lt;strong&gt;companyId&lt;/strong&gt; still returned about &lt;strong&gt;128,000&lt;/strong&gt; articles but only about &lt;strong&gt;402&lt;/strong&gt; Stories clusters. An RSS inbox treats every reprint as a new item. A product that alerts on “OpenAI news” without clustering or entity filters drowns users.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Keyword ≠ entity.&lt;/strong&gt; The same 30-day window: &lt;strong&gt;ChatGPT&lt;/strong&gt; as keyword ~&lt;strong&gt;80,000&lt;/strong&gt; articles; ChatGPT plus the OpenAI &lt;strong&gt;companyId&lt;/strong&gt; ~&lt;strong&gt;33,000&lt;/strong&gt;. &lt;strong&gt;Sam Altman&lt;/strong&gt; via person Wikidata &lt;strong&gt;Q7407093&lt;/strong&gt; ~&lt;strong&gt;17,500&lt;/strong&gt; articles / &lt;strong&gt;61&lt;/strong&gt; Stories. RSS has no first-class companyId or personWikidataId - you reinvent that with brittle string rules.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ticker and brand noise.&lt;/strong&gt; &lt;strong&gt;companySymbol&lt;/strong&gt; NVDA alone was about &lt;strong&gt;178,000&lt;/strong&gt; articles in that window; keyword NVIDIA about &lt;strong&gt;163,000&lt;/strong&gt;. High-volume names need allowlists, labels, and source packs - not another XML URL in the poller.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Push vs pull.&lt;/strong&gt; Products want &lt;strong&gt;webhook news alerts&lt;/strong&gt; into Slack, a CRM, or an internal bus. RSS is pull-only. You own the scheduler and the lag. Structured monitors that emit JSON events fit product SLAs better than “we polled 40 feeds at :00 and :15.”&lt;/p&gt;

&lt;h2&gt;
  
  
  What a structured news integration looks like
&lt;/h2&gt;

&lt;p&gt;A production &lt;strong&gt;news integration&lt;/strong&gt; usually separates three jobs RSS tries to do alone:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Retrieve&lt;/strong&gt; - queryable articles and stories with filters (company, person, source group, dates), not only subscribed XML URLs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Monitor&lt;/strong&gt; - a durable watch (Signal / curated feed) for the beat your product cares about.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Deliver&lt;/strong&gt; - email, connectors, or &lt;strong&gt;webhooks&lt;/strong&gt; into your systems when something matches.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;On Perigon that maps to the Articles / Stories APIs for retrieval, Signals and &lt;a href="https://perigon.io/discover/feeds" rel="noopener noreferrer"&gt;Discover feeds&lt;/a&gt; for ongoing trackers, and &lt;a href="https://perigon.io/connectors/webhooks" rel="noopener noreferrer"&gt;Signals webhooks&lt;/a&gt; for push into your stack. The human-facing “is RSS enough?” decision stays on the RSS vs data feeds guide linked above; this page assumes you already know you are building software.&lt;/p&gt;

&lt;p&gt;Capability sketch for builders:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Need in the product&lt;/th&gt;
&lt;th&gt;RSS polling&lt;/th&gt;
&lt;th&gt;Structured feed / API path&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Stable company or person filter&lt;/td&gt;
&lt;td&gt;DIY keywords&lt;/td&gt;
&lt;td&gt;Entity IDs on search and monitors&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;One narrative, many reprints&lt;/td&gt;
&lt;td&gt;Manual dedupe&lt;/td&gt;
&lt;td&gt;Stories / clusters&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Real-time push to your app&lt;/td&gt;
&lt;td&gt;Build it&lt;/td&gt;
&lt;td&gt;Webhooks and connectors&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Shared schema for UI and agents&lt;/td&gt;
&lt;td&gt;Title + link&lt;/td&gt;
&lt;td&gt;Structured article fields&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Desk theme without URL sprawl&lt;/td&gt;
&lt;td&gt;Folder of feeds&lt;/td&gt;
&lt;td&gt;Curated / Signal-backed feeds&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;For ad-hoc query design (Boolean &lt;strong&gt;q&lt;/strong&gt;, sources, pagination), use the &lt;a href="https://perigon.io/blog/google-has-no-news-api-perigon-does-search-articles-apply-filters-and-build-feeds" rel="noopener noreferrer"&gt;practical news API guide&lt;/a&gt; - this post does not re-teach those params.&lt;/p&gt;

&lt;h2&gt;
  
  
  When to keep RSS vs when to move
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Keep RSS polling&lt;/strong&gt; when the feature is a personal or internal reader, the outlet list is short and stable, and nobody outside that reader needs a shared schema or push SLA.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Move to structured feeds / Signals&lt;/strong&gt; when the same beat must power a customer-facing surface, a team channel, or an automation - and you need multi-source coverage without babysitting feed URLs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Move to the News API&lt;/strong&gt; when the product needs programmable search, custom filters, historical windows, or agent tooling on top of the index - not only a prebuilt tracker.&lt;/p&gt;

&lt;p&gt;A practical migration for an app team:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Inventory which RSS URLs actually drive product behavior; drop vanity polls.&lt;/li&gt;
&lt;li&gt;Map each job: awareness UI vs alert vs AI grounding.&lt;/li&gt;
&lt;li&gt;Parallel-run: keep the poller for a sprint while a Signal-backed feed or API query covers the same beat; compare misses, duplicates, and latency.&lt;/li&gt;
&lt;li&gt;Graduate push paths to webhooks; keep RSS only where a human still wants a classic reader.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Key takeaways
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;RSS polling&lt;/strong&gt; is a fine reader pattern and a fragile &lt;strong&gt;news integration&lt;/strong&gt; for products.&lt;/li&gt;
&lt;li&gt;Live volumes (e.g. ~128k OpenAI-company articles vs ~402 Stories in 30 days ending &lt;strong&gt;2026-07-25&lt;/strong&gt;) show why apps need entities and clusters, not more XML URLs.&lt;/li&gt;
&lt;li&gt;Split retrieve / monitor / deliver: API + Signals/feeds + webhooks beat a single cron parser.&lt;/li&gt;
&lt;li&gt;For “is RSS enough for a human desk?” use the Perigon RSS vs data feeds guide; for shipping product pipelines, design for structured feeds and push delivery.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Get started:&lt;/strong&gt; &lt;a href="https://perigon.io/sandbox?endpoint=articles" rel="noopener noreferrer"&gt;Articles sandbox&lt;/a&gt; · &lt;a href="https://perigon.io/discover/feeds" rel="noopener noreferrer"&gt;Discover feeds&lt;/a&gt; · &lt;a href="https://perigon.io/blog/google-rss-vs-perigon-data-feeds" rel="noopener noreferrer"&gt;Google RSS vs Perigon data feeds&lt;/a&gt; · &lt;a href="https://perigon.io/products/pricing/apis" rel="noopener noreferrer"&gt;API pricing&lt;/a&gt;&lt;/p&gt;

</description>
      <category>news</category>
      <category>api</category>
      <category>python</category>
    </item>
    <item>
      <title>44 Best Manufacturing News Sources in 2026</title>
      <dc:creator>Oleksyj Mokrousov</dc:creator>
      <pubDate>Sat, 25 Jul 2026 09:37:15 +0000</pubDate>
      <link>https://dev.to/alexperigon/44-best-manufacturing-news-sources-in-2026-12cl</link>
      <guid>https://dev.to/alexperigon/44-best-manufacturing-news-sources-in-2026-12cl</guid>
      <description>&lt;h2&gt;
  
  
  AI top-8 industrial source lists miss most of the beat
&lt;/h2&gt;

&lt;p&gt;Teams buying &lt;strong&gt;manufacturing news&lt;/strong&gt;, &lt;strong&gt;factory automation news&lt;/strong&gt;, and &lt;strong&gt;industrial automation news&lt;/strong&gt; feeds often start by asking an LLM for the “best” &lt;strong&gt;industrial trade publications&lt;/strong&gt;. That is a weak foundation for production monitoring. GPT, Claude, and Gemini each invent a short &lt;strong&gt;industry news sources&lt;/strong&gt; roster - they disagree on most names, skip whole lanes (supply chain trade desks, UK construction press, additive manufacturing, pumps and reliability), and still feel complete because eight domains fit in a chat reply.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Do not trust that allowlist.&lt;/strong&gt; A brainstorm is not a curated &lt;strong&gt;B2B manufacturing media&lt;/strong&gt; pack. Perigon’s &lt;strong&gt;industrialTradePublications&lt;/strong&gt; source group (ID &lt;strong&gt;725&lt;/strong&gt;, 44 domains) is built for the full industrial picture: manufacturing leadership, plant engineering, controls, machinery, robotics, process ops, and adjacent &lt;strong&gt;supply chain trade news&lt;/strong&gt; - then applied as one reusable sourceGroup on search.&lt;/p&gt;

&lt;p&gt;Rather than maintaining dozens of publisher filters yourself, Perigon groups related publications into reusable source groups. Instead of listing every manufacturing publication in each API request, you can reference a maintained group that evolves over time.&lt;/p&gt;

&lt;p&gt;What fuller &lt;strong&gt;vertical manufacturing news&lt;/strong&gt; coverage looks like in industrialTradePublications source group?&lt;/p&gt;

&lt;p&gt;How to monitor &lt;strong&gt;machinery news&lt;/strong&gt;, plant ops, and automation with that source group&lt;/p&gt;

&lt;p&gt;How to &lt;strong&gt;filter manufacturing news by source&lt;/strong&gt;, company, topic, category, location, and date&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Try it live:&lt;/strong&gt; &lt;a href="https://perigon.io/sandbox" rel="noopener noreferrer"&gt;Sandbox&lt;/a&gt; · &lt;strong&gt;Docs:&lt;/strong&gt; &lt;a href="https://perigon.io/docs/api/sources" rel="noopener noreferrer"&gt;Sources and source groups&lt;/a&gt; · &lt;strong&gt;Plans:&lt;/strong&gt; &lt;a href="https://perigon.io/products/pricing/apis" rel="noopener noreferrer"&gt;API pricing&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Other vertical packs (different SERPs): &lt;a href="https://perigon.io/blog/healthcare-news-compare-top-trade-publications" rel="noopener noreferrer"&gt;healthcare trade pubs&lt;/a&gt; · &lt;a href="https://perigon.io/blog/best-financial-news-sources-top25finance" rel="noopener noreferrer"&gt;top25finance&lt;/a&gt;. Creating private forks: &lt;a href="https://perigon.io/docs/api/sources" rel="noopener noreferrer"&gt;Sources and source groups&lt;/a&gt; - this page applies the public industrial pack only.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why you should not trust AI for industrial trade publication allowlists
&lt;/h2&gt;

&lt;p&gt;Prompt three models for top &lt;strong&gt;industrial trade publications&lt;/strong&gt; with domains. Across ChatGPT, Claude, and Gemini:&lt;/p&gt;

&lt;p&gt;Only &lt;strong&gt;two&lt;/strong&gt; outlets appear on all three lists: IndustryWeek (industryweek.com) and Automation World (automationworld.com).&lt;/p&gt;

&lt;p&gt;Everything else is a bias: Claude skews assembly / ENR construction / American Machinist; Gemini pulls Manufacturing Dive, power, chemicals, and packaging titles; GPT favors machine-shop and UK engineering picks.&lt;/p&gt;

&lt;p&gt;Overlap is thin. Two-model agreement reaches a few more (manufacturing.net, plantengineering.com, controleng.com) - still nothing like a full &lt;strong&gt;niche industrial sources&lt;/strong&gt; set.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;strong&gt;What AI does&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;What breaks in production&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Returns a neat “top 8”&lt;/td&gt;
&lt;td&gt;Misses 30+ &lt;strong&gt;trade publication news&lt;/strong&gt; domains you may already need&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Sounds authoritative&lt;/td&gt;
&lt;td&gt;Different models → different desks → different alert quality&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Mixes brainstorm + “also include” extras&lt;/td&gt;
&lt;td&gt;No stable name your Articles / Stories jobs can keep forever&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Claude even warns that “industrial” shifts by sub-sector (aerospace, materials handling, oil and gas). That is the point: an LLM answer is a &lt;strong&gt;partial&lt;/strong&gt; map. For &lt;strong&gt;plant engineering news&lt;/strong&gt;, &lt;strong&gt;factory automation news&lt;/strong&gt;, and &lt;strong&gt;industryweek&lt;/strong&gt;-class leadership coverage plus the rest of the floor, you need a maintained &lt;strong&gt;sourceGroup&lt;/strong&gt; - not a chat paste.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Quick split (domains once):&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Claude-only top-8 → assemblymag.com, machinedesign.com, ien.com, enr.com, americanmachinist.com.&lt;/p&gt;

&lt;p&gt;Gemini → manufacturingdive.com, packworld.com, powermag.com, chemengonline.com.&lt;/p&gt;

&lt;p&gt;GPT-only → mmsonline.com, processingmagazine.com, theengineer.co.uk.&lt;/p&gt;

&lt;p&gt;Treat those as research signals that AI is incomplete - not as three competing truths.&lt;/p&gt;

&lt;h2&gt;
  
  
  The fuller picture: industrialTradePublications group with 44 domains
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;strong&gt;Field&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Value&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Name&lt;/td&gt;
&lt;td&gt;industrialTradePublications&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Display name&lt;/td&gt;
&lt;td&gt;Industrial Trade Publications&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Source group ID&lt;/td&gt;
&lt;td&gt;725&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Size&lt;/td&gt;
&lt;td&gt;44 domains&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Scope&lt;/td&gt;
&lt;td&gt;Trade sources covering manufacturing, automation, machinery, and industrial operations&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Pass sourceGroup=industrialTradePublications on Articles (/v1/all), Headlines, or Stories. Inspect members via Sources with the same group name - without dumping every domain into this article twice.&lt;/p&gt;

&lt;h3&gt;
  
  
  What Perigon keeps that AI top-8 lists drop
&lt;/h3&gt;

&lt;p&gt;Durable AI shorts that do belong in a serious pack are already here (IndustryWeek, Automation World, Manufacturing.net, Plant Engineering, Control Engineering, plus many Claude/Gemini/GPT singles). The &lt;strong&gt;fuller picture&lt;/strong&gt; is the lanes chat lists routinely skip:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Daily manufacturing + supply chain trade news&lt;/strong&gt; - e.g. Manufacturing Dive and supply-chain trade desks (manufacturingdive.com, supplychaindive.com, supplychaindigital.com, …) beyond any GPT top 8.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Construction / owners / UK build press&lt;/strong&gt; - more than a single ENR mention (constructionowners.com, constructionnews.co.uk, theconstructionindex.co.uk, …).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Robotics, AMR, digital and additive manufacturing&lt;/strong&gt; roboticsandautomationnews.com, advancedmanufacturing.org, manufacturingdigital.com, metal-am.com, and peers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Process, food engineering, pumps, reliability, controls&lt;/strong&gt; - plant-floor and CPI-adjacent titles (food engineering, pumps and systems, reliable plant, Control Global, chemical engineering) so &lt;strong&gt;process manufacturing news&lt;/strong&gt; is not one magazine guess.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Associations and branded manufacturing media&lt;/strong&gt; - SME and manufacturing-today / tomorrow style &lt;strong&gt;industry news sources&lt;/strong&gt; models bury under “optional.”&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Honest gaps:&lt;/strong&gt; GPT’s processingmagazine.com and Gemini’s packworld.com are not in this group snapshot. Add them with a private group or source= if mandatory - the public pack is the industrial default, not every URL on the internet.&lt;/p&gt;

&lt;p&gt;This is &lt;strong&gt;vertical manufacturing news&lt;/strong&gt;, not healthcare or finance packs (healthcareTradePublications, top25finance).&lt;/p&gt;

&lt;h2&gt;
  
  
  How to monitor manufacturing and industrial automation news
&lt;/h2&gt;

&lt;p&gt;Scope &lt;strong&gt;manufacturing trade publications&lt;/strong&gt; first, then keywords or companies. Without a publisher gate, live manufacturing OR automation search can surface azonano.com explainers or jobs.magna.com recruiting pages - real pages elsewhere, not &lt;strong&gt;industrial trade publications&lt;/strong&gt; desks. Lock the beat with sourceGroup=industrialTradePublications, then narrow with q (CNC, tariffs, recalls) or entities.&lt;/p&gt;

&lt;h3&gt;
  
  
  Stack industrial OEMs and automation vendors (resolved IDs)
&lt;/h3&gt;

&lt;p&gt;Combine companyId or companySymbol with the group for OEM / vendor desks:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;strong&gt;Company&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Prefer&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;perigon companyId&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Symbols to prefer&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Rockwell Automation, Inc.&lt;/td&gt;
&lt;td&gt;Controls / factory software OEM&lt;/td&gt;
&lt;td&gt;0e4fcdf843bf44c69653340aff7729ee&lt;/td&gt;
&lt;td&gt;ROK (NYSE)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Caterpillar Inc.&lt;/td&gt;
&lt;td&gt;Heavy equipment / plant ops&lt;/td&gt;
&lt;td&gt;a6aa46b5af9a45d590694b65741328fc&lt;/td&gt;
&lt;td&gt;CAT (NYSE)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Siemens Aktiengesellschaft&lt;/td&gt;
&lt;td&gt;Industrial / automation conglomerate&lt;/td&gt;
&lt;td&gt;a4aa185497164ee4a72ad9bb8ae2ffe2&lt;/td&gt;
&lt;td&gt;SIE.DE (XETRA) or SIEGY (OTC)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Name collisions to skip:&lt;/strong&gt; Haas / Inductive / Tungsten “Automation” rows; Siemens Energy, Mobility, Healthineers (Healthineers is med-tech, not this pack); credit-union hits under “Caterpillar.” Prefer the parent industrial firm + symbol above.&lt;/p&gt;

&lt;p&gt;Pattern: Articles with sourceGroup=industrialTradePublications and companySymbol=ROK (or Rockwell’s companyId) - trade allowlist + vendor, not open web. Company News pillar owns the full entity cookbook.&lt;/p&gt;

&lt;h3&gt;
  
  
  Example coverage snapshot (minimal, in-group)
&lt;/h3&gt;

&lt;p&gt;Live pull: sourceGroup=industrialTradePublications + companySymbol=ROK - short overviews only (domain + summary; no article URLs):&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;manufacturing.net&lt;/strong&gt; - Rockwell threat-detection managed services for industrial customers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;automationworld.com&lt;/strong&gt; - Rockwell Connected Enterprise / shop-floor connectivity themes.&lt;/p&gt;

&lt;p&gt;That is the shape of &lt;strong&gt;filter manufacturing news by source&lt;/strong&gt; after you stop trusting an AI top list.&lt;/p&gt;

&lt;p&gt;Use the same sourceGroup on the &lt;strong&gt;Stories API&lt;/strong&gt; when one plant closure, strike, or automation rollout is reprinted across many trade pubs - you track the narrative cluster once instead of every wire copy (see the &lt;a href="https://perigon.io/blog/news-stories-api-how-news-clustering-groups-related-articles-into-trackable-narratives" rel="noopener noreferrer"&gt;Stories clustering guide&lt;/a&gt; and &lt;a href="https://perigon.io/docs/api/stories" rel="noopener noreferrer"&gt;Stories docs&lt;/a&gt;). For a short briefing of that filtered set, pass results into &lt;a href="https://perigon.io/blog/ai-news-summaries-api-turn-news-search-results-into-executive-briefings" rel="noopener noreferrer"&gt;Search Summarizer&lt;/a&gt;. Add &lt;a href="https://perigon.io/blog/local-news-api-search-guide" rel="noopener noreferrer"&gt;local / geography filters&lt;/a&gt; when the desk cares about a plant city or region, and &lt;a href="https://perigon.io/blog/historical-news-api-search-long-range-news-archives-and-coverage-since-2016" rel="noopener noreferrer"&gt;historical date windows&lt;/a&gt; when you need archive depth - keep those recipes in their own guides rather than repeating them here.&lt;/p&gt;

&lt;h2&gt;
  
  
  Filter manufacturing news by source, company, topic, category, location, and date
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;strong&gt;Goal&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Mechanism&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Notes for industrial desks&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Publisher allowlist&lt;/td&gt;
&lt;td&gt;sourceGroup=industrialTradePublications&lt;/td&gt;
&lt;td&gt;Full picture for this vertical&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;One-off domain&lt;/td&gt;
&lt;td&gt;source / excludeSource&lt;/td&gt;
&lt;td&gt;Titles AI named that are missing from the pack&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Who is mentioned&lt;/td&gt;
&lt;td&gt;companyId / companySymbol (ROK, CAT, Siemens AG)&lt;/td&gt;
&lt;td&gt;Inside the group&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;What it is about&lt;/td&gt;
&lt;td&gt;topic, category, taxonomy&lt;/td&gt;
&lt;td&gt;Taxonomy pillar owns Google paths&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Where the outlet sits&lt;/td&gt;
&lt;td&gt;Local / source-location&lt;/td&gt;
&lt;td&gt;Plant towns, regional construction&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;When&lt;/td&gt;
&lt;td&gt;from / to / addDateFrom&lt;/td&gt;
&lt;td&gt;Digests and incremental monitors&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  When an AI list is a brainstorm vs when you need Perigon’s pack
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;strong&gt;Situation&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Prefer&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Ideation slide (“names we recognize”)&lt;/td&gt;
&lt;td&gt;AI shortlist - then verify&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Production &lt;strong&gt;manufacturing news&lt;/strong&gt; feeds and alerts&lt;/td&gt;
&lt;td&gt;industrialTradePublications (725)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Must-have domain absent from the 44&lt;/td&gt;
&lt;td&gt;Private group or source=&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Publisher metadata&lt;/td&gt;
&lt;td&gt;Sources API + group name&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Another industry SERP&lt;/td&gt;
&lt;td&gt;Healthcare or finance vertical posts&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Key takeaways
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Do not trust AI top-8 lists&lt;/strong&gt; for &lt;strong&gt;industrial trade publications&lt;/strong&gt; - models agree on little and miss most of the floor.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;industrialTradePublications&lt;/strong&gt; (725) is the fuller &lt;strong&gt;manufacturing trade publications&lt;/strong&gt; picture: 44 domains across automation, plant engineering, machinery, supply chain, and more.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Filter manufacturing news by source&lt;/strong&gt; with that sourceGroup; stack OEMs (ROK, CAT, Siemens AG) so job boards and random web hits stay out.&lt;/p&gt;

&lt;p&gt;Use LLM lists as research only; use Perigon’s group as the operational allowlist. Keep third-party copy as short overviews - not republished articles.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Get started:&lt;/strong&gt; &lt;a href="https://perigon.io/sandbox" rel="noopener noreferrer"&gt;Sandbox&lt;/a&gt; · &lt;a href="https://perigon.io/docs/api/sources" rel="noopener noreferrer"&gt;Sources and source groups&lt;/a&gt; · &lt;a href="https://perigon.io/reference" rel="noopener noreferrer"&gt;API reference&lt;/a&gt; · &lt;a href="https://perigon.io/products/pricing/apis" rel="noopener noreferrer"&gt;API pricing&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>news</category>
      <category>api</category>
      <category>python</category>
    </item>
    <item>
      <title>Monitor NVIDIA News</title>
      <dc:creator>Oleksyj Mokrousov</dc:creator>
      <pubDate>Fri, 24 Jul 2026 16:05:25 +0000</pubDate>
      <link>https://dev.to/alexperigon/monitor-nvidia-news-4c62</link>
      <guid>https://dev.to/alexperigon/monitor-nvidia-news-4c62</guid>
      <description>&lt;h2&gt;
  
  
  Why teams monitor NVIDIA news
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;NVIDIA news&lt;/strong&gt; moves across earnings, data-center demand, GPU roadmaps, export-policy spillover, and executive commentary at once. Keyword-only alerts for “NVIDIA” or “NVDA” pull in ticker collisions, supplier noise, and every casual chip mention - while &lt;strong&gt;nvidia earnings news&lt;/strong&gt;, product launches, and leadership statements still get buried.&lt;/p&gt;

&lt;p&gt;Teams that need a durable &lt;strong&gt;nvidia company news&lt;/strong&gt; watch usually ask:&lt;/p&gt;

&lt;p&gt;How do you monitor NVIDIA for realtime news?&lt;/p&gt;

&lt;p&gt;How do you resolve NVIDIA and its leadership before filtering articles?&lt;/p&gt;

&lt;p&gt;How do News API entity filters keep NVDA and executive coverage precise?&lt;/p&gt;

&lt;p&gt;And we also will answer:&lt;/p&gt;

&lt;p&gt;When should you use Signals vs an Articles feed for NVIDIA news search.&lt;/p&gt;

&lt;p&gt;The sections below answer each in order. For general company and people entity parameters, see &lt;a href="https://perigon.io/docs/api/entities" rel="noopener noreferrer"&gt;Entities&lt;/a&gt; - this page owns the &lt;strong&gt;NVIDIA-specific Signals + single-company&lt;/strong&gt; playbook.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Try it:&lt;/strong&gt; &lt;a href="https://perigon.io/home" rel="noopener noreferrer"&gt;perigon.io/home&lt;/a&gt; · &lt;strong&gt;Articles sandbox:&lt;/strong&gt; &lt;a href="https://perigon.io/sandbox?endpoint=articles" rel="noopener noreferrer"&gt;sandbox&lt;/a&gt; · &lt;strong&gt;Entities docs:&lt;/strong&gt; &lt;a href="https://perigon.io/docs/api/entities" rel="noopener noreferrer"&gt;Entities&lt;/a&gt; · &lt;strong&gt;Pricing:&lt;/strong&gt; &lt;a href="https://perigon.io/products/pricing/apis" rel="noopener noreferrer"&gt;API pricing&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  How to monitor NVIDIA news
&lt;/h2&gt;

&lt;p&gt;Perigon makes this straightforward with Signals.&lt;/p&gt;

&lt;p&gt;Signals continuously monitor new coverage and deliver updates automatically, so you don't need to rerun the same searches every day.&lt;/p&gt;

&lt;p&gt;Open &lt;a href="https://perigon.io/home" rel="noopener noreferrer"&gt;perigon.io/home&lt;/a&gt; and describe the watch in plain language. Signals turns that ask into a continuous briefing lane so you are not re-running the same &lt;strong&gt;nvidia stock news&lt;/strong&gt; search every morning.&lt;/p&gt;

&lt;p&gt;Use prompts that name the company, the lanes you care about (earnings, GPUs, leadership), and the output shape (bullets, risks first, IR tone). Refine after the first run: tighten to data-center vs gaming, or to executive-only mentions.&lt;/p&gt;

&lt;h3&gt;
  
  
  Copy-paste Signal prompts
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Earnings and guidance watch&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Monitor NVIDIA (NVDA) earnings and guidance coverage. Focus on revenue, data-center commentary, gross margin, and outlook. Prefer major financial publishers. Summarize in short bullets for an IR reader; flag contested claims.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GPU and data-center product watch&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Track NVIDIA news on GPUs, accelerators, and data-center platforms. Exclude pure consumer gaming rumor roundups unless they affect enterprise supply. Highlight product naming, availability, and partner ecosystem mentions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Leadership and executive mentions&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Watch news that meaningfully mentions Jensen Huang (Wikidata Q305177), NVIDIA founder and CEO. Ignore photo-caption name-checks and unrelated people with similar names. Note interviews, policy comments, and strategy statements that could move investor narrative.&lt;/p&gt;

&lt;p&gt;These prompts are evergreen: they describe ongoing beats, not a single week’s headlines.&lt;/p&gt;

&lt;h2&gt;
  
  
  Resolve NVIDIA and leadership before you filter
&lt;/h2&gt;

&lt;p&gt;Single-company monitoring works best when the org and people are resolved first.&lt;/p&gt;

&lt;h3&gt;
  
  
  Canonical entities (from Companies + People lookup) in perigon apis
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;strong&gt;Entity&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Use in filters&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Resolved value&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;NVIDIA Corporation&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;companyId&lt;/td&gt;
&lt;td&gt;94bbd0512cd04cc4b7041d78d9d4cf73&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;strong&gt;NVIDIA&lt;/strong&gt; (NASDAQ)&lt;/td&gt;
&lt;td&gt;companySymbol&lt;/td&gt;
&lt;td&gt;NVDA (also listed as NVD.DE on XETRA)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;strong&gt;Jensen Huang&lt;/strong&gt; (CEO / founder)&lt;/td&gt;
&lt;td&gt;personWikidataId&lt;/td&gt;
&lt;td&gt;Q305177&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;A name search for “NVIDIA” can also return leveraged/short ETPs (for example GraniteShares or Leverage Shares products).&lt;/p&gt;

&lt;p&gt;Prefer NVIDIA Corporation with companyId 94bbd0512cd04cc4b7041d78d9d4cf73 or companySymbol NVDA - not the 3LNV.L / 2NVD.L / 3SNV.L vehicles.&lt;/p&gt;

&lt;p&gt;A People search for “Jensen Huang” can surface unrelated people (actors and other Huang/Jensen matches). Keep &lt;strong&gt;personWikidataId Q305177&lt;/strong&gt; - “American entrepreneur and businessman; founder and CEO of Nvidia” - for &lt;strong&gt;nvidia ceo news&lt;/strong&gt; and &lt;strong&gt;jensen huang news&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;On the Companies API (/v1/companies/all) and People API (/v1/people/all), re-run lookups when leadership changes; keep Signal prompts and article filters on these IDs. Param reference: &lt;a href="https://perigon.io/docs/api/entities" rel="noopener noreferrer"&gt;Entities&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Articles API recipes for NVDA, earnings, and leadership
&lt;/h2&gt;

&lt;p&gt;On the Articles API (/v1/all), pin the company with companyId set to "94bbd0512cd04cc4b7041d78d9d4cf73" and/or companySymbol set to NVDA. That anchors &lt;strong&gt;nvda news&lt;/strong&gt; and &lt;strong&gt;nvidia press coverage&lt;/strong&gt; to the corporation entity instead of every chip headline or ETP reprint.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Common monitoring scenarios&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Start with&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Optional add-ons&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Core &lt;strong&gt;nvidia news&lt;/strong&gt; feed&lt;/td&gt;
&lt;td&gt;companyId or companySymbol=NVDA&lt;/td&gt;
&lt;td&gt;sourceGroup=top25finance for IR-grade &lt;strong&gt;nvidia investor news&lt;/strong&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;NVIDIA earnings news&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Same company pin + q phrases such as earnings, guidance, EPS&lt;/td&gt;
&lt;td&gt;Date window around expected print; exclude opinion labels if you want straight news&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;NVIDIA GPU / data center news&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Company pin + q for GPU, accelerator, data center&lt;/td&gt;
&lt;td&gt;Topic/category filters when you already use them in product&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Leadership / &lt;strong&gt;nvidia ceo news&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;personWikidataId=Q305177&lt;/td&gt;
&lt;td&gt;Combine with companyId or NVDA so mentions stay in NVIDIA context&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Fresh poll&lt;/td&gt;
&lt;td&gt;addDateFrom from last checkpoint&lt;/td&gt;
&lt;td&gt;sortBy on add date for ingest-style feeds&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Prose example: add a short q for earnings or guidance when you want &lt;strong&gt;nvidia earnings news&lt;/strong&gt;, and poll with addDateFrom so each run only returns what is new since the last check. For executive lanes, add personWikidataId set to Q305177.&lt;/p&gt;

&lt;p&gt;For narrative heat around NVIDIA (launches, controversies, multi-outlet spikes), Stories can cluster coverage - use story list filters with the same companyId / NVDA entities. Clustering theory lives in the Stories guide linked in Get started - do not rebuild it here.&lt;/p&gt;

&lt;h2&gt;
  
  
  When to use Signals vs Articles for NVIDIA
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;strong&gt;Need&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Prefer&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Daily briefing without writing queries&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;Signals&lt;/strong&gt; on &lt;a href="https://perigon.io/home" rel="noopener noreferrer"&gt;perigon.io/home&lt;/a&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Embed &lt;strong&gt;nvidia company news&lt;/strong&gt; in your product&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;Articles API&lt;/strong&gt; with companyId 94bbd0512cd04cc4b7041d78d9d4cf73 or NVDA&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Leadership-sensitive IR or PR lanes&lt;/td&gt;
&lt;td&gt;personWikidataId Q305177 + company pin; optional Signal for narrative&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;“Is NVIDIA coverage accelerating?”&lt;/td&gt;
&lt;td&gt;Stories search with NVIDIA company filters (see Stories clustering guide)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;General “how do company filters work?”&lt;/td&gt;
&lt;td&gt;&lt;a href="https://perigon.io/docs/api/entities" rel="noopener noreferrer"&gt;Entities docs&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Key takeaways
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Monitor NVIDIA news&lt;/strong&gt; with Signals prompts on /home for continuous briefings, then mirror the same beat in the Articles API.&lt;/p&gt;

&lt;p&gt;Resolve NVIDIA using the canonical company ID and Jensen Huang using the canonical person ID to avoid ticker and name collisions.&lt;/p&gt;

&lt;p&gt;Combine company pins with earnings or GPU q recipes for &lt;strong&gt;nvidia earnings news&lt;/strong&gt; and data-center lanes.&lt;/p&gt;

&lt;p&gt;Keep this page single-company; semiconductor-wide and OpenAI-lab watches belong in their own Monitor drafts.&lt;/p&gt;

&lt;p&gt;Link &lt;a href="https://perigon.io/docs/api/entities" rel="noopener noreferrer"&gt;Entities&lt;/a&gt; for param depth - keep this page NVIDIA-specific.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Get started:&lt;/strong&gt; &lt;a href="https://perigon.io/home" rel="noopener noreferrer"&gt;perigon.io/home&lt;/a&gt; · &lt;a href="https://perigon.io/docs/api/entities" rel="noopener noreferrer"&gt;Entities docs&lt;/a&gt; · &lt;a href="https://perigon.io/blog/news-stories-api-how-news-clustering-groups-related-articles-into-trackable-narratives" rel="noopener noreferrer"&gt;Stories clustering guide&lt;/a&gt; · &lt;a href="https://perigon.io/products/pricing/apis" rel="noopener noreferrer"&gt;API pricing&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>news</category>
      <category>api</category>
      <category>python</category>
    </item>
    <item>
      <title>Best Financial News Sources - Filter Market News &amp; Fintech News with top25finance</title>
      <dc:creator>Oleksyj Mokrousov</dc:creator>
      <pubDate>Fri, 24 Jul 2026 16:01:10 +0000</pubDate>
      <link>https://dev.to/alexperigon/best-financial-news-sources-filter-market-news-fintech-news-with-top25finance-1ima</link>
      <guid>https://dev.to/alexperigon/best-financial-news-sources-filter-market-news-fintech-news-with-top25finance-1ima</guid>
      <description>&lt;h2&gt;
  
  
  Why financial news needs a publisher allowlist
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Market news&lt;/strong&gt; moves faster than most verticals. The same earnings print, Fed decision, or M&amp;amp;A rumor shows up on Bloomberg, CNBC, Yahoo Finance, Seeking Alpha, and a dozen retail investing sites within minutes. Keyword-only &lt;strong&gt;news search&lt;/strong&gt; for "stocks," "banks," or "fintech" also drags in personal-budget blogs, crypto spam, and press-release mills.&lt;/p&gt;

&lt;p&gt;If you care about &lt;strong&gt;best financial news sources&lt;/strong&gt; — outlets that actually cover public equities and market movement — lock the publisher set first, then search inside it. That is what Perigon's &lt;strong&gt;top25finance&lt;/strong&gt; source group is for.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Try it live:&lt;/strong&gt; &lt;a href="https://perigon.io/sandbox" rel="noopener noreferrer"&gt;Sandbox&lt;/a&gt; · &lt;a href="https://perigon.io/docs/api/sources" rel="noopener noreferrer"&gt;Sources docs&lt;/a&gt; · &lt;a href="https://perigon.io/products/pricing/apis" rel="noopener noreferrer"&gt;API pricing&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Financial news source group: top25finance
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;strong&gt;Field&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Value&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Name&lt;/td&gt;
&lt;td&gt;top25finance&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Display name&lt;/td&gt;
&lt;td&gt;Finance&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Source group ID&lt;/td&gt;
&lt;td&gt;21&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Size&lt;/td&gt;
&lt;td&gt;25 domains&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Scope&lt;/td&gt;
&lt;td&gt;Financial news, market movement, public equities&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Pass sourceGroup=top25finance on Articles (/v1/all), Headlines (/v1/headlines), or Stories (/v1/stories/all). Same group name on every endpoint — no 25-domain source = string to maintain.&lt;/p&gt;

&lt;p&gt;GET &lt;a href="https://api.perigon.io/v1/all?apiKey=YOUR_API_KEY&amp;amp;sourceGroup=top25finance&amp;amp;sortBy=addDate&amp;amp;size=25" rel="noopener noreferrer"&gt;https://api.perigon.io/v1/all?apiKey=YOUR_API_KEY&amp;amp;sourceGroup=top25finance&amp;amp;sortBy=addDate&amp;amp;size=25&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Best financial news sources for markets and business press
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;strong&gt;Domain&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Publication&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Best for&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;bloomberg.com&lt;/td&gt;
&lt;td&gt;Bloomberg&lt;/td&gt;
&lt;td&gt;Global markets, macro, equities data&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;wsj.com&lt;/td&gt;
&lt;td&gt;Wall Street Journal&lt;/td&gt;
&lt;td&gt;Corporate investigations, markets&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ft.com&lt;/td&gt;
&lt;td&gt;Financial Times&lt;/td&gt;
&lt;td&gt;International markets and commentary&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;cnbc.com&lt;/td&gt;
&lt;td&gt;CNBC&lt;/td&gt;
&lt;td&gt;Live markets, CEO interviews&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;marketwatch.com&lt;/td&gt;
&lt;td&gt;MarketWatch&lt;/td&gt;
&lt;td&gt;Stocks, indexes, investing headlines&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;barrons.com&lt;/td&gt;
&lt;td&gt;Barron's&lt;/td&gt;
&lt;td&gt;Equities research, weekly outlook&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;economist.com&lt;/td&gt;
&lt;td&gt;The Economist&lt;/td&gt;
&lt;td&gt;Macro, policy, global business&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;fortune.com&lt;/td&gt;
&lt;td&gt;Fortune&lt;/td&gt;
&lt;td&gt;Corporate strategy, leadership&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;foxbusiness.com&lt;/td&gt;
&lt;td&gt;Fox Business&lt;/td&gt;
&lt;td&gt;Markets and economy headlines&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Market news, quotes, and retail investing publishers
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;strong&gt;Domain&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Publication&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Best for&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;finance.yahoo.com&lt;/td&gt;
&lt;td&gt;Yahoo Finance&lt;/td&gt;
&lt;td&gt;Quotes, portfolios, broad market news&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;nasdaq.com&lt;/td&gt;
&lt;td&gt;Nasdaq&lt;/td&gt;
&lt;td&gt;Listings, exchange news, market data&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;investing.com&lt;/td&gt;
&lt;td&gt;Investing.com&lt;/td&gt;
&lt;td&gt;Indices, calendars, multi-asset coverage&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;fool.com&lt;/td&gt;
&lt;td&gt;Motley Fool&lt;/td&gt;
&lt;td&gt;Stock picks, retail investing analysis&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;seekingalpha.com&lt;/td&gt;
&lt;td&gt;Seeking Alpha&lt;/td&gt;
&lt;td&gt;Earnings notes, equity commentary&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;thestreet.com&lt;/td&gt;
&lt;td&gt;TheStreet&lt;/td&gt;
&lt;td&gt;Trading-oriented market news&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;investors.com&lt;/td&gt;
&lt;td&gt;Investor's Business Daily&lt;/td&gt;
&lt;td&gt;Growth stocks, market trends&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;morningstar.com&lt;/td&gt;
&lt;td&gt;Morningstar&lt;/td&gt;
&lt;td&gt;Fund and equity research&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;money.usnews.com&lt;/td&gt;
&lt;td&gt;U.S. News Money&lt;/td&gt;
&lt;td&gt;Personal finance and investing guides&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Fintech news, investing education, and international finance
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;strong&gt;Domain&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Publication&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Best for&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;investopedia.com&lt;/td&gt;
&lt;td&gt;Investopedia&lt;/td&gt;
&lt;td&gt;Definitions, how-to investing explainers&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;benzinga.com&lt;/td&gt;
&lt;td&gt;Benzinga&lt;/td&gt;
&lt;td&gt;Fast movers, trading catalysts&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;moneymorning.com&lt;/td&gt;
&lt;td&gt;Money Morning&lt;/td&gt;
&lt;td&gt;Investing ideas and commentary&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;financialpost.com&lt;/td&gt;
&lt;td&gt;Financial Post&lt;/td&gt;
&lt;td&gt;Canadian markets&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;business-standard.com&lt;/td&gt;
&lt;td&gt;Business Standard&lt;/td&gt;
&lt;td&gt;India business and markets&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;qz.com&lt;/td&gt;
&lt;td&gt;Quartz&lt;/td&gt;
&lt;td&gt;Business, tech, global economy&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ibtimes.com&lt;/td&gt;
&lt;td&gt;International Business Times&lt;/td&gt;
&lt;td&gt;International business news&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Paywalls: WSJ, FT, Barron's, and friends
&lt;/h2&gt;

&lt;p&gt;Finance is heavier on subscription publishers than many verticals. Inside &lt;strong&gt;top25finance&lt;/strong&gt;, treat these as gated or partially gated:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;strong&gt;Domain&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Paywall pattern&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;wsj.com&lt;/td&gt;
&lt;td&gt;Strict subscription&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ft.com&lt;/td&gt;
&lt;td&gt;Strict subscription&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;barrons.com&lt;/td&gt;
&lt;td&gt;Strict subscription&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;economist.com&lt;/td&gt;
&lt;td&gt;Strict subscription&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;bloomberg.com&lt;/td&gt;
&lt;td&gt;Mixed free + premium&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Perigon can return articles from some paywalled sources&lt;/strong&gt;, but that coverage is agreement - and account dependent. It is &lt;strong&gt;not&lt;/strong&gt; turned on for every gated domain by default.&lt;/p&gt;

&lt;h3&gt;
  
  
  Ask support for FT.com and other paid outlets
&lt;/h3&gt;

&lt;p&gt;If your product needs &lt;strong&gt;Financial Times (ft.com)&lt;/strong&gt;, &lt;strong&gt;WSJ&lt;/strong&gt;, &lt;strong&gt;Barron's&lt;/strong&gt;, or similar full-text / expanded paywall coverage.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Contact Perigon support&lt;/strong&gt; and request paywalled-source access for the domains you need.&lt;/p&gt;

&lt;p&gt;Plan integrations assuming FT and peers are &lt;strong&gt;opt-in&lt;/strong&gt;, not automatic.&lt;/p&gt;

&lt;p&gt;Open and lightly gated outlets in the group (Yahoo Finance, CNBC, Investing.com, Investopedia, and similar) work under standard API access without that step.&lt;/p&gt;

&lt;h2&gt;
  
  
  Query recipes for market and fintech feeds
&lt;/h2&gt;

&lt;p&gt;sourceGroup sets the allowlist. Layer search, entities, and time on top for desk-specific &lt;strong&gt;filtered news feeds&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Earnings season across the finance bundle&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;GET &lt;a href="https://api.perigon.io/v1/all?apiKey=YOUR_API_KEY&amp;amp;sourceGroup=top25finance&amp;amp;q=earnings&amp;amp;from=2026-06-01&amp;amp;sortBy=date" rel="noopener noreferrer"&gt;https://api.perigon.io/v1/all?apiKey=YOUR_API_KEY&amp;amp;sourceGroup=top25finance&amp;amp;q=earnings&amp;amp;from=2026-06-01&amp;amp;sortBy=date&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fintech keyword slice&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://api.perigon.io/v1/all?apiKey=YOUR_API_KEY&amp;amp;sourceGroup=top25finance&amp;amp;q=fintech&amp;amp;excludeLabel=press%20release&amp;amp;sortBy=date" rel="noopener noreferrer"&gt;https://api.perigon.io/v1/all?apiKey=YOUR_API_KEY&amp;amp;sourceGroup=top25finance&amp;amp;q=fintech&amp;amp;excludeLabel=press%20release&amp;amp;sortBy=date&lt;/a&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;strong&gt;Desk / product&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Tighten with&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Breaking markets&lt;/td&gt;
&lt;td&gt;source=cnbc.com,bloomberg.com,marketwatch.com&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Equity research tone&lt;/td&gt;
&lt;td&gt;source=barrons.com,fool.com,seekingalpha.com&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Quote / portfolio UIs&lt;/td&gt;
&lt;td&gt;source=finance.yahoo.com,nasdaq.com,investing.com&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;International markets&lt;/td&gt;
&lt;td&gt;source=ft.com,economist.com,financialpost.com,business-standard.com&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Trading catalysts&lt;/td&gt;
&lt;td&gt;source=benzinga.com,thestreet.com&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Investor education&lt;/td&gt;
&lt;td&gt;source=investopedia.com&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Useful companions: addDateFrom for incremental polls, excludeSource to drop one loud domain, excludeLabel=opinion when you want hard news over commentary. Full parameter list: &lt;a href="https://perigon.io/reference" rel="noopener noreferrer"&gt;News API reference&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Headlines, stories, and source metadata
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Headlines API&lt;/strong&gt; — same sourceGroup=top25finance when you only need title-level &lt;strong&gt;market news&lt;/strong&gt; surfaces.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Stories API&lt;/strong&gt; — cluster reprints of one Fed decision or mega-cap earnings print so &lt;strong&gt;breaking news monitoring&lt;/strong&gt; tracks the narrative, not every mirror. Example: topic=Markets with the finance group. See &lt;a href="https://perigon.io/docs/api/stories" rel="noopener noreferrer"&gt;Stories API&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sources API&lt;/strong&gt; — inspect the 25 publishers (traffic, geography, &lt;strong&gt;paywall&lt;/strong&gt; flags) before you fork a private group.&lt;/p&gt;

&lt;p&gt;Build a narrower &lt;strong&gt;custom source list&lt;/strong&gt; (e.g. US equities only, no education sites) via source groups when the full 25 is too wide.&lt;/p&gt;

&lt;h2&gt;
  
  
  Compare list: short "best of" vs top25finance
&lt;/h2&gt;

&lt;p&gt;Roundups of &lt;strong&gt;best finance websites&lt;/strong&gt; or &lt;strong&gt;best financial news sources&lt;/strong&gt; usually name eight brands — Bloomberg, CNBC, Yahoo Finance, WSJ, MarketWatch, FT, Investing.com, Barron's — with Reuters, Investopedia, Motley Fool, or TradingView rotated in. Useful starting points; incomplete allowlists.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;strong&gt;What short lists usually include&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;What top25finance adds&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1–2 wire / TV desks&lt;/td&gt;
&lt;td&gt;CNBC + Fox Business + MarketWatch depth&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Yahoo or Investing&lt;/td&gt;
&lt;td&gt;Yahoo + Nasdaq + Investing + Morningstar&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;WSJ / FT sometimes&lt;/td&gt;
&lt;td&gt;WSJ + FT + Barron's + Economist (paywall-aware)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;One retail voice&lt;/td&gt;
&lt;td&gt;Fool, Seeking Alpha, TheStreet, IBD&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Rarely education&lt;/td&gt;
&lt;td&gt;Investopedia&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Rarely non-US&lt;/td&gt;
&lt;td&gt;Financial Post, Business Standard, IBT, Quartz&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Use the short compare list for product marketing copy if you want. Use &lt;strong&gt;top25finance&lt;/strong&gt; when the &lt;strong&gt;financial news provider&lt;/strong&gt; feed must stay stable across earnings weeks and quiet Fridays alike.&lt;/p&gt;

&lt;h2&gt;
  
  
  From allowlist to briefing
&lt;/h2&gt;

&lt;p&gt;Typical &lt;strong&gt;financial news&lt;/strong&gt; stack:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Allowlist&lt;/strong&gt; — sourceGroup=top25finance (request paywall extras if needed).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Signal&lt;/strong&gt; — q, topic, companyDomain / ticker-oriented terms for the names you trade or cover.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Freshness&lt;/strong&gt; — addDateFrom + sortBy=addDate for &lt;strong&gt;real-time news alerts&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Dedup narratives&lt;/strong&gt; — Stories API on the same group when reprints explode.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Brief&lt;/strong&gt; — &lt;a href="https://perigon.io/sandbox?endpoint=search-summarizer" rel="noopener noreferrer"&gt;Search Summarizer&lt;/a&gt; over the filtered hit set for a grounded &lt;strong&gt;financial news summary&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;For structured Finance / Markets category paths, pair the group with taxonomy filters — &lt;a href="https://perigon.io/docs/api/taxonomy" rel="noopener noreferrer"&gt;news taxonomy guide&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;h3&gt;
  
  
  What does top25finance include?
&lt;/h3&gt;

&lt;p&gt;Twenty-five high-popularity finance domains: flagship markets press, retail investing and quote sites, education, and selected international business outlets. API name: top25finance (ID 21).&lt;/p&gt;

&lt;h3&gt;
  
  
  How do I get only those publishers in search results?
&lt;/h3&gt;

&lt;p&gt;Send sourceGroup=top25finance on Articles, Headlines, or Stories. That is publisher-level &lt;strong&gt;filter news by source&lt;/strong&gt; for &lt;strong&gt;financial news&lt;/strong&gt; and &lt;strong&gt;fintech news&lt;/strong&gt; without maintaining a domain string yourself.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can I still use keywords and company filters?
&lt;/h3&gt;

&lt;p&gt;Yes. The group is the outer fence; q, topic, companyDomain, date windows, and excludeSource / excludeLabel narrow inside it.&lt;/p&gt;

&lt;h3&gt;
  
  
  Are FT.com and WSJ available out of the box?
&lt;/h3&gt;

&lt;p&gt;They appear in the group roster, but &lt;strong&gt;paywalled coverage is not guaranteed by default&lt;/strong&gt;. Ask support to enable FT.com and other subscription publishers for your account when you need them.&lt;/p&gt;

&lt;h3&gt;
  
  
  Should I use top25finance or paste my own source= list?
&lt;/h3&gt;

&lt;p&gt;Prefer the group for the standard &lt;strong&gt;best financial news sources&lt;/strong&gt; set — Perigon can refresh membership without a client deploy. Paste or fork a private group only when your product needs a deliberate subset (for example, exclude Seeking Alpha, or US-only).&lt;/p&gt;

</description>
      <category>news</category>
      <category>api</category>
    </item>
    <item>
      <title>Company News API Guide - Search by Company, Ticker, Domain, and Executive Mentions</title>
      <dc:creator>Oleksyj Mokrousov</dc:creator>
      <pubDate>Fri, 24 Jul 2026 15:56:54 +0000</pubDate>
      <link>https://dev.to/alexperigon/company-news-api-guide-search-by-company-ticker-domain-and-executive-mentions-4ga5</link>
      <guid>https://dev.to/alexperigon/company-news-api-guide-search-by-company-ticker-domain-and-executive-mentions-4ga5</guid>
      <description>&lt;h2&gt;
  
  
  Why company news search needs more than keywords
&lt;/h2&gt;

&lt;p&gt;Building a &lt;strong&gt;company news&lt;/strong&gt; feed on raw text search fails in predictable ways. q=Apple matches fruit and Apple Records. q=Meta hits meta-analyses. Tickers like AI or NOW appear in ordinary English. A CEO's shared surname attaches the wrong person to the result set. Products that need &lt;strong&gt;business news data&lt;/strong&gt;, &lt;strong&gt;financial news data&lt;/strong&gt;, or &lt;strong&gt;ticker news&lt;/strong&gt; require the API to resolve &lt;em&gt;which&lt;/em&gt; company or person was linked - not which substring appeared.&lt;/p&gt;

&lt;p&gt;Developers evaluating a &lt;strong&gt;news API&lt;/strong&gt;, &lt;strong&gt;news search API&lt;/strong&gt;, or &lt;strong&gt;business news provider&lt;/strong&gt; usually ask:&lt;/p&gt;

&lt;p&gt;What is a &lt;strong&gt;company news API&lt;/strong&gt;?&lt;/p&gt;

&lt;p&gt;How do you search company mentions and &lt;strong&gt;ticker news&lt;/strong&gt; by domain, symbol, or ID?&lt;/p&gt;

&lt;p&gt;Why use company entity filters instead of keyword search alone?&lt;/p&gt;

&lt;p&gt;The sections below answer each in order, then give query examples and when to use Articles vs Stories for company-scoped &lt;strong&gt;news articles&lt;/strong&gt;.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Try it live:&lt;/strong&gt; &lt;a href="https://perigon.io/sandbox?endpoint=companies" rel="noopener noreferrer"&gt;Test company filters in the sandbox&lt;/a&gt; · &lt;strong&gt;Read the docs:&lt;/strong&gt; &lt;a href="https://perigon.io/docs/api/entities" rel="noopener noreferrer"&gt;Entities guide&lt;/a&gt; · &lt;strong&gt;Compare plans:&lt;/strong&gt; &lt;a href="https://perigon.io/products/pricing/apis" rel="noopener noreferrer"&gt;API pricing and features&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  What is a company news API?
&lt;/h2&gt;

&lt;p&gt;A &lt;strong&gt;company news API&lt;/strong&gt; is not a separate product SKU. It is a &lt;strong&gt;news provider&lt;/strong&gt; (or &lt;strong&gt;financial news provider&lt;/strong&gt;) that treats organizations and people as entities and lets you filter &lt;strong&gt;news articles&lt;/strong&gt; by those entities.&lt;/p&gt;

&lt;p&gt;On Perigon, Articles (/v1/all), Headlines, and Stories (/v1/stories/all) accept company and person parameters. Each hit can include structured fields: company IDs, names, domains, symbols, people, publishers, topics, and dates. Resolve canonical records on /companies and /people once, then pass those IDs into search.&lt;/p&gt;

&lt;p&gt;That is the difference between fragile keyword strings and reusable identifiers for &lt;strong&gt;b2b data provider news&lt;/strong&gt; and &lt;strong&gt;market data provider news&lt;/strong&gt; pipelines - the same pattern a &lt;strong&gt;financial news&lt;/strong&gt; or &lt;strong&gt;media intelligence&lt;/strong&gt; product needs behind the UI.&lt;/p&gt;

&lt;p&gt;For product-style digests and scheduled briefings across companies or topics, use Perigon's Signals product. This guide is for embedding entity search in your own stack.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to search news by company domain, ticker, and ID
&lt;/h2&gt;

&lt;p&gt;On the Articles API, company filters match enriched company fields - not a free-text guess.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;strong&gt;Parameter&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Matches&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Typical use&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;companyDomain&lt;/td&gt;
&lt;td&gt;Company web domains (e.g. apple.com)&lt;/td&gt;
&lt;td&gt;Brand / website scoped search&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;companySymbol&lt;/td&gt;
&lt;td&gt;Stock tickers (e.g. AAPL)&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;Ticker news&lt;/strong&gt;, equities queries&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;companyId&lt;/td&gt;
&lt;td&gt;Perigon company UUIDs&lt;/td&gt;
&lt;td&gt;Stable IDs from /companies&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;companyName&lt;/td&gt;
&lt;td&gt;Exact company name&lt;/td&gt;
&lt;td&gt;When ID is unknown&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;personName&lt;/td&gt;
&lt;td&gt;Exact person name&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;Executive mentions&lt;/strong&gt; by display name&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;personWikidataId&lt;/td&gt;
&lt;td&gt;Wikidata Q-IDs&lt;/td&gt;
&lt;td&gt;Disambiguated people from /people&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Includes on one field are OR joined. Excludes (excludeCompanyDomain, excludeCompanySymbol, excludeCompanyId, excludePersonName, excludePersonWikidataId) are AND-joined.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;strong&gt;Goal&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Prefer&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Ticker news&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;companySymbol&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Private companies / brand sites&lt;/td&gt;
&lt;td&gt;companyDomain or companyId&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Executive mentions&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;personWikidataId first; personName when spelling is canonical&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Matched articles return companies and people arrays. Stories return topCompanies and topPeople for narrative-level filters. See the &lt;a href="https://perigon.io/docs/api/data-model" rel="noopener noreferrer"&gt;data model&lt;/a&gt; for how those objects relate.&lt;/p&gt;

&lt;h2&gt;
  
  
  Keyword search vs entity filters explained
&lt;/h2&gt;

&lt;p&gt;Keyword q searches title, description, and body. Entity filters ask: &lt;em&gt;was this company or person linked on the article?&lt;/em&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;strong&gt;Approach&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Strength&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Weakness&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Keyword q only&lt;/td&gt;
&lt;td&gt;Flexible phrases ("product recall", "class action")&lt;/td&gt;
&lt;td&gt;Ambiguous names, ticker collisions&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;companyDomain / companySymbol / companyId&lt;/td&gt;
&lt;td&gt;Precise org match&lt;/td&gt;
&lt;td&gt;Entity must be linked&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;personName / personWikidataId&lt;/td&gt;
&lt;td&gt;Precise people match&lt;/td&gt;
&lt;td&gt;Exact name or Wikidata ID required&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Keywords &lt;strong&gt;plus&lt;/strong&gt; entities&lt;/td&gt;
&lt;td&gt;Event language inside a known org&lt;/td&gt;
&lt;td&gt;Best default for litigation, product, crisis&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Rival coverage is a clear case: three companyDomain values avoid category-word false hits. A portfolio query ORs companySymbol holdings. An IR or PR query pins a CEO with personWikidataId and adds q for "resignation" or "investigation" when event type matters as much as the entity.&lt;/p&gt;

&lt;p&gt;That keeps &lt;strong&gt;market intelligence&lt;/strong&gt; and &lt;strong&gt;news filtering&lt;/strong&gt; result sets auditable: the allowlist defines organizations and people, not shared English tokens.&lt;/p&gt;

&lt;h2&gt;
  
  
  Company news query examples
&lt;/h2&gt;

&lt;h3&gt;
  
  
  How to search rival company domains
&lt;/h3&gt;

&lt;p&gt;Pass one or more rival companyDomain values. Add excludeLabel for press release or opinion when you want earned coverage only. Use addDateFrom when the client polls for new matches since the last checkpoint.&lt;/p&gt;

&lt;h3&gt;
  
  
  How to search ticker news for a portfolio
&lt;/h3&gt;

&lt;p&gt;OR holdings through companySymbol. Optionally narrow publishers with sourceGroup=top25finance for &lt;strong&gt;financial news&lt;/strong&gt; outlets (domain list and paywalls live in the finance source-group guide). Same symbols on Stories for market-moving narratives instead of every analyst reprint.&lt;/p&gt;

&lt;p&gt;And search for such symbols:&lt;br&gt;
PORTFOLIO = ["AAPL", "MSFT", "NVDA"] # companySymbol values&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fperigon.io%2F_next%2Fimage%3Furl%3D%252Fapi%252Fmedia%252Ffile%252Fcompanies_ticker_search_articles_params_improved.png%26w%3D1200%26q%3D100" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fperigon.io%2F_next%2Fimage%3Furl%3D%252Fapi%252Fmedia%252Ffile%252Fcompanies_ticker_search_articles_params_improved.png%26w%3D1200%26q%3D100" alt="companies_ticker_search_articles_params_improved.png" width="1200" height="515"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fperigon.io%2F_next%2Fimage%3Furl%3D%252Fapi%252Fmedia%252Ffile%252Fcompanies_ticker_search_articles_output_imroved%2520%25281%2529.jpg%26w%3D1200%26q%3D100" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fperigon.io%2F_next%2Fimage%3Furl%3D%252Fapi%252Fmedia%252Ffile%252Fcompanies_ticker_search_articles_output_imroved%2520%25281%2529.jpg%26w%3D1200%26q%3D100" alt="companies_ticker_search_articles_output_imroved (1).jpg" width="1200" height="529"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fperigon.io%2F_next%2Fimage%3Furl%3D%252Fapi%252Fmedia%252Ffile%252Fcompanies_ticker_search_stories_output_imroved.jpg%26w%3D1200%26q%3D100" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fperigon.io%2F_next%2Fimage%3Furl%3D%252Fapi%252Fmedia%252Ffile%252Fcompanies_ticker_search_stories_output_imroved.jpg%26w%3D1200%26q%3D100" alt="companies_ticker_search_stories_output_imroved.jpg" width="1296" height="1224"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  How to search executive mentions
&lt;/h3&gt;

&lt;p&gt;Resolve the person on /people, filter with personWikidataId, and optionally require companyDomain for the employer. Drop collisions with excludePersonName or excludePersonWikidataId.&lt;/p&gt;

&lt;h3&gt;
  
  
  Product, litigation, and market-moving language
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Product / launch:&lt;/strong&gt; pin companyId or companyDomain, add q for the codename or SKU.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Litigation / risk:&lt;/strong&gt; same company pin + legal keywords; Stories when one filing reprints widely.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Earnings / M&amp;amp;A / guidance:&lt;/strong&gt; companySymbol with date or addDate sort; Stories when you need one cluster with top companies attached.&lt;/p&gt;

&lt;p&gt;A grounded &lt;strong&gt;company news summary&lt;/strong&gt; of these hits belongs on the Search Summarizer path - keep this guide on entity search, then summarize the filtered set.&lt;/p&gt;

&lt;h2&gt;
  
  
  When to use Articles vs Stories for company search
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;strong&gt;Need&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Use&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Entity scope&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Every linked mention&lt;/td&gt;
&lt;td&gt;Articles API (/v1/all)&lt;/td&gt;
&lt;td&gt;Company or person on that article&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;One narrative per event&lt;/td&gt;
&lt;td&gt;Stories API (/v1/stories/all)&lt;/td&gt;
&lt;td&gt;Top companies / top people on the cluster&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Headline-only surfaces&lt;/td&gt;
&lt;td&gt;Headlines&lt;/td&gt;
&lt;td&gt;Same company/person params as Articles&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Clustering mechanics live in the Stories guide. Here the decision is only &lt;em&gt;top-entity&lt;/em&gt; vs &lt;em&gt;any linked mention&lt;/em&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Best practices: compose entities with other filters
&lt;/h2&gt;

&lt;p&gt;Keep this guide focused on &lt;em&gt;who&lt;/em&gt;. Around the entity allowlist, add the usual &lt;strong&gt;news search&lt;/strong&gt; controls - source / sourceGroup, from / to / addDateFrom, topic (to &lt;strong&gt;filter news by topic&lt;/strong&gt;), category, excludeLabel. A common &lt;strong&gt;business news provider&lt;/strong&gt; pattern is companyDomain (or companySymbol for portfolios) + a trusted sourceGroup + addDateFrom for incremental pulls.&lt;/p&gt;

&lt;p&gt;Entity filters ship on plans that include article and story search; compare tiers on &lt;a href="https://perigon.io/products/pricing/apis" rel="noopener noreferrer"&gt;API pricing&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key takeaways
&lt;/h2&gt;

&lt;p&gt;A &lt;strong&gt;company news API&lt;/strong&gt; is entity-aware &lt;strong&gt;news search&lt;/strong&gt; - companies and people as linked objects, not only keywords.&lt;/p&gt;

&lt;p&gt;Use companyDomain, companySymbol, companyId, and companyName for orgs; personName and personWikidataId for &lt;strong&gt;executive mentions&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Articles return every linked mention; Stories scope to top companies and top people on the cluster.&lt;/p&gt;

&lt;p&gt;Keep keywords for event language inside an entity allowlist.&lt;/p&gt;

&lt;p&gt;Resolve IDs on /companies and /people, then reuse them in competitor, portfolio, and executive queries.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Get started:&lt;/strong&gt; &lt;a href="https://perigon.io/sandbox" rel="noopener noreferrer"&gt;Sandbox&lt;/a&gt; · &lt;a href="https://perigon.io/docs/api/entities" rel="noopener noreferrer"&gt;Entities&lt;/a&gt; · &lt;a href="https://perigon.io/reference" rel="noopener noreferrer"&gt;API reference&lt;/a&gt; · &lt;a href="https://perigon.io/products/pricing/apis" rel="noopener noreferrer"&gt;API pricing&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>news</category>
      <category>api</category>
      <category>python</category>
    </item>
    <item>
      <title>Healthcare News: Filter by Perigon Trade Publication sources</title>
      <dc:creator>Oleksyj Mokrousov</dc:creator>
      <pubDate>Fri, 24 Jul 2026 11:52:28 +0000</pubDate>
      <link>https://dev.to/alexperigon/healthcare-news-filter-by-perigon-trade-publication-sources-1hdl</link>
      <guid>https://dev.to/alexperigon/healthcare-news-filter-by-perigon-trade-publication-sources-1hdl</guid>
      <description>&lt;h2&gt;
  
  
  Healthcare news from trade publications — one filter, 35+ sources
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Healthcare news&lt;/strong&gt; spans hospital operations, payer strategy, pharma and &lt;strong&gt;biotech news&lt;/strong&gt;, health IT, &lt;strong&gt;policy news&lt;/strong&gt;, and medical devices. A keyword search alone pulls lifestyle blogs, press releases, and unrelated mentions. A &lt;strong&gt;filter news by source&lt;/strong&gt; approach scopes results to &lt;strong&gt;trusted news sources&lt;/strong&gt; you actually want in a &lt;strong&gt;filtered news feed&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Perigon's &lt;strong&gt;healthcareTradePublications&lt;/strong&gt; source group is a ready-made &lt;strong&gt;publisher list&lt;/strong&gt; for that job: 36 domains covering &lt;strong&gt;trade publication news&lt;/strong&gt; across the full vertical. Add one parameter to the &lt;strong&gt;news API&lt;/strong&gt; — &lt;code&gt;sourceGroup=healthcareTradePublications&lt;/code&gt; — and every Articles, Headlines, or Stories search runs only against those outlets.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Try it live:&lt;/strong&gt; &lt;a href="https://perigon.io/sandbox" rel="noopener noreferrer"&gt;Test healthcare news with sourceGroup in the sandbox&lt;/a&gt; · &lt;strong&gt;Read the docs:&lt;/strong&gt; &lt;a href="https://perigon.io/docs/api/sources" rel="noopener noreferrer"&gt;Sources and source groups&lt;/a&gt; · &lt;strong&gt;Compare plans:&lt;/strong&gt; &lt;a href="https://perigon.io/products/pricing/apis" rel="noopener noreferrer"&gt;API pricing and features&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  What is the healthcareTradePublications source group?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Display name:&lt;/strong&gt; Healthcare Trade Publications&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Description:&lt;/strong&gt; Healthcare-focused sources covering pharma, biotech, policy, hospitals, and medical devices.&lt;/p&gt;

&lt;p&gt;Instead of hand-picking domains on every query, &lt;code&gt;sourceGroup&lt;/code&gt; turns a curated bundle into a reusable filter — the same pattern as &lt;code&gt;sourceGroup=top100&lt;/code&gt;, but scoped to &lt;strong&gt;vertical news&lt;/strong&gt; and &lt;strong&gt;industry news sources&lt;/strong&gt; for healthcare.&lt;/p&gt;

&lt;h3&gt;
  
  
  Core U.S. trade publications (12 domains)
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Domain&lt;/th&gt;
&lt;th&gt;Publication&lt;/th&gt;
&lt;th&gt;Focus&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;modernhealthcare.com&lt;/td&gt;
&lt;td&gt;Modern Healthcare&lt;/td&gt;
&lt;td&gt;Hospitals, policy, finance, executives&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;beckershospitalreview.com&lt;/td&gt;
&lt;td&gt;Becker's Hospital Review&lt;/td&gt;
&lt;td&gt;Hospital operations, leadership&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;fiercehealthcare.com&lt;/td&gt;
&lt;td&gt;Fierce Healthcare&lt;/td&gt;
&lt;td&gt;Business, insurers, digital health&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;healthcaredive.com&lt;/td&gt;
&lt;td&gt;Healthcare Dive&lt;/td&gt;
&lt;td&gt;Policy, providers, industry trends&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;healthcareitnews.com&lt;/td&gt;
&lt;td&gt;Healthcare IT News&lt;/td&gt;
&lt;td&gt;EHR, AI, cybersecurity, interoperability&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;statnews.com&lt;/td&gt;
&lt;td&gt;STAT&lt;/td&gt;
&lt;td&gt;Biotech, pharma, medical research&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;medpagetoday.com&lt;/td&gt;
&lt;td&gt;MedPage Today&lt;/td&gt;
&lt;td&gt;Clinical research, physician news&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;managedhealthcareexecutive.com&lt;/td&gt;
&lt;td&gt;Managed Healthcare Executive&lt;/td&gt;
&lt;td&gt;Managed care, PBMs, payers&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;medcitynews.com&lt;/td&gt;
&lt;td&gt;MedCity News&lt;/td&gt;
&lt;td&gt;Health tech and startups&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;healthaffairs.org&lt;/td&gt;
&lt;td&gt;Health Affairs&lt;/td&gt;
&lt;td&gt;Policy research&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;healthleadersmedia.com&lt;/td&gt;
&lt;td&gt;Health Leaders Media&lt;/td&gt;
&lt;td&gt;Executive strategy, finance&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;healthtechmagazine.net&lt;/td&gt;
&lt;td&gt;HealthTech Magazine&lt;/td&gt;
&lt;td&gt;Hospital IT infrastructure&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Pharma, biotech, and life sciences (10 domains)
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Domain&lt;/th&gt;
&lt;th&gt;Focus&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;genengnews.com&lt;/td&gt;
&lt;td&gt;Genetic Engineering &amp;amp; Biotechnology News&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;european-biotechnology.com&lt;/td&gt;
&lt;td&gt;European biotech industry&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;biotechniques.com&lt;/td&gt;
&lt;td&gt;Life science methods and research tools&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;insideprecisionmedicine.com&lt;/td&gt;
&lt;td&gt;Precision medicine&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;crisprmedicinenews.com&lt;/td&gt;
&lt;td&gt;CRISPR and gene editing&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;bionity.com&lt;/td&gt;
&lt;td&gt;Pharma and biotech (international)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;pharmaphorum.com&lt;/td&gt;
&lt;td&gt;Pharma industry commentary&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;contractpharma.com&lt;/td&gt;
&lt;td&gt;Contract manufacturing and CDMO&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;analytica-world.com&lt;/td&gt;
&lt;td&gt;Analytical science and lab industry&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;press.asimov.com&lt;/td&gt;
&lt;td&gt;Biotech and synthetic biology&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Digital health, policy, international, and adjacent sources (14 domains)
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Domain&lt;/th&gt;
&lt;th&gt;Focus&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;digitalhealthnews.com&lt;/td&gt;
&lt;td&gt;Digital health industry&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;healthday.com&lt;/td&gt;
&lt;td&gt;Clinical and consumer health syndication&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;who.int&lt;/td&gt;
&lt;td&gt;World Health Organization — global policy&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ncpa.org&lt;/td&gt;
&lt;td&gt;National Community Pharmacists Association&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;bwhealthcareworld.com&lt;/td&gt;
&lt;td&gt;India healthcare business&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;health.economictimes.indiatimes.com&lt;/td&gt;
&lt;td&gt;India healthcare business (Economic Times)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;pharmaceuticals.einnews.com&lt;/td&gt;
&lt;td&gt;Pharma news aggregation&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;beckersdental.com&lt;/td&gt;
&lt;td&gt;Dental practice and DSO industry&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;healthimpactnews.com&lt;/td&gt;
&lt;td&gt;Advocacy health news&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;parentherald.com&lt;/td&gt;
&lt;td&gt;Parenting and family health&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;med.stanford.edu&lt;/td&gt;
&lt;td&gt;Stanford Medicine newsroom&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;uofmhealth.org&lt;/td&gt;
&lt;td&gt;University of Michigan Health&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;newsroom.uw.edu&lt;/td&gt;
&lt;td&gt;University of Washington medicine news&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;medangel.org&lt;/td&gt;
&lt;td&gt;Medical philanthropy and health nonprofit news&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Together these domains cover the lanes most teams need for &lt;strong&gt;healthcare news&lt;/strong&gt; monitoring — not just the eight names AI assistants typically suggest.&lt;/p&gt;

&lt;h2&gt;
  
  
  Add sourceGroup to your news API search
&lt;/h2&gt;

&lt;p&gt;The &lt;code&gt;sourceGroup&lt;/code&gt; parameter works on the &lt;strong&gt;Articles API&lt;/strong&gt; (&lt;code&gt;/v1/all&lt;/code&gt;), &lt;strong&gt;Headlines API&lt;/strong&gt; (&lt;code&gt;/v1/headlines&lt;/code&gt;), and &lt;strong&gt;Stories API&lt;/strong&gt; (&lt;code&gt;/v1/stories/all&lt;/code&gt;). Pass the group name exactly as registered:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight http"&gt;&lt;code&gt;&lt;span class="err"&gt;GET https://api.perigon.io/v1/all?apiKey=YOUR_API_KEY&amp;amp;sourceGroup=healthcareTradePublications&amp;amp;sortBy=addDate&amp;amp;size=25
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That single line replaces a long &lt;code&gt;source=&lt;/code&gt; whitelist and keeps your &lt;strong&gt;healthcare news&lt;/strong&gt; feed consistent across apps, alerts, and dashboards.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fxxkkmq1ab5xdv2hq7xds.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fxxkkmq1ab5xdv2hq7xds.png" alt="Healthcare trade publications source group" width="800" height="456"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  For headline-only products:
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight http"&gt;&lt;code&gt;&lt;span class="err"&gt;GET https://api.perigon.io/v1/headlines?apiKey=YOUR_API_KEY&amp;amp;sourceGroup=healthcareTradePublications&amp;amp;sortBy=addDate
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For &lt;strong&gt;story tracking&lt;/strong&gt; instead of article floods — useful when FDA decisions or hospital mergers reprint across dozens of trade pubs:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight http"&gt;&lt;code&gt;&lt;span class="err"&gt;GET https://api.perigon.io/v1/stories/all?apiKey=YOUR_API_KEY&amp;amp;sourceGroup=healthcareTradePublications&amp;amp;topic=Health&amp;amp;sortBy=addDate
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The Stories API returns clustered narratives with &lt;strong&gt;story velocity&lt;/strong&gt;, summaries, and &lt;strong&gt;related articles&lt;/strong&gt; — so &lt;strong&gt;breaking news monitoring&lt;/strong&gt; fires on storylines, not every wire reprint. See the &lt;a href="https://perigon.io/docs/api/stories" rel="noopener noreferrer"&gt;Stories API guide&lt;/a&gt; for &lt;code&gt;clusterId&lt;/code&gt; and &lt;code&gt;expandArticles&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why a source group beats a static "top 8" list
&lt;/h2&gt;

&lt;p&gt;Ask GPT, Claude, or Gemini for top &lt;strong&gt;healthcare news&lt;/strong&gt; outlets and each returns eight familiar names — but they disagree on half the list. All three agree on five core pubs (Modern Healthcare, Becker's Hospital Review, Fierce Healthcare, Healthcare Dive, Healthcare IT News). None surface the full pharma, biotech, international, or device trade depth in &lt;strong&gt;healthcareTradePublications&lt;/strong&gt;.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Dimension&lt;/th&gt;
&lt;th&gt;Typical AI "top 8"&lt;/th&gt;
&lt;th&gt;healthcareTradePublications (36)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;U.S. hospital/business core&lt;/td&gt;
&lt;td&gt;Strong&lt;/td&gt;
&lt;td&gt;Strong + extended&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Payer / managed care&lt;/td&gt;
&lt;td&gt;Sometimes&lt;/td&gt;
&lt;td&gt;✓&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Biotech / pharma depth&lt;/td&gt;
&lt;td&gt;STAT at most&lt;/td&gt;
&lt;td&gt;10+ dedicated sources&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Health IT / digital&lt;/td&gt;
&lt;td&gt;Partial&lt;/td&gt;
&lt;td&gt;HITN, HealthTech, MedCity, digitalhealthnews&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Policy / research&lt;/td&gt;
&lt;td&gt;Sometimes&lt;/td&gt;
&lt;td&gt;Health Affairs + WHO&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;International&lt;/td&gt;
&lt;td&gt;Rarely&lt;/td&gt;
&lt;td&gt;India, EU biotech&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Medical devices / lab&lt;/td&gt;
&lt;td&gt;Rarely&lt;/td&gt;
&lt;td&gt;analytica-world, contractpharma&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;A &lt;strong&gt;source group&lt;/strong&gt; solves that curation problem once. Your &lt;strong&gt;news API&lt;/strong&gt; calls stay the same; you swap or extend groups without rewriting queries.&lt;/p&gt;

&lt;h2&gt;
  
  
  Healthcare news monitoring workflow
&lt;/h2&gt;

&lt;p&gt;A typical &lt;strong&gt;media monitoring&lt;/strong&gt; stack layers filters in this order:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Step&lt;/th&gt;
&lt;th&gt;What it does&lt;/th&gt;
&lt;th&gt;Parameter&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1. Scope publishers&lt;/td&gt;
&lt;td&gt;Lock to &lt;strong&gt;trade publications&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;&lt;code&gt;sourceGroup=healthcareTradePublications&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2. Match topics&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;Filter news by topic&lt;/strong&gt; or keyword&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;q&lt;/code&gt;, &lt;code&gt;topic&lt;/code&gt;, &lt;code&gt;companyDomain&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3. Time window&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;Filter news by date&lt;/strong&gt; for digests&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;from&lt;/code&gt;, &lt;code&gt;to&lt;/code&gt;, &lt;code&gt;addDateFrom&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4. Track narratives&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;Story tracking&lt;/strong&gt; across reprints&lt;/td&gt;
&lt;td&gt;Stories API + same &lt;code&gt;sourceGroup&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;5. Brief leadership&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;News briefing&lt;/strong&gt; from filtered corpus&lt;/td&gt;
&lt;td&gt;Search Summarizer on the result set&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Poll the Articles API with &lt;code&gt;sourceGroup=healthcareTradePublications&lt;/code&gt; and &lt;code&gt;addDateFrom&lt;/code&gt; set to your last checkpoint for &lt;strong&gt;real-time news alerts&lt;/strong&gt;. Layer the Health taxonomy branch for &lt;strong&gt;news classification&lt;/strong&gt; — see the &lt;a href="https://perigon.io/docs/api/taxonomy" rel="noopener noreferrer"&gt;news taxonomy guide&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;When the feed is scoped but volume is still high, pass matches into Perigon's &lt;strong&gt;Search Summarizer&lt;/strong&gt; for a grounded &lt;strong&gt;AI news summary&lt;/strong&gt;. The briefing stays tethered to the &lt;strong&gt;news articles&lt;/strong&gt; your &lt;code&gt;sourceGroup&lt;/code&gt; filter selected.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Try it:&lt;/strong&gt; &lt;a href="https://perigon.io/sandbox?endpoint=search-summarizer" rel="noopener noreferrer"&gt;Search Summarizer sandbox&lt;/a&gt; · &lt;a href="https://perigon.io/reference?endpoint=%228%22" rel="noopener noreferrer"&gt;Search Summarizer API reference&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;h3&gt;
  
  
  What is healthcareTradePublications?
&lt;/h3&gt;

&lt;p&gt;A Perigon &lt;strong&gt;source group&lt;/strong&gt; containing 36 healthcare trade publication domains — hospitals, payers, pharma, biotech, policy, health IT, medical devices, and selected international outlets. Pass &lt;code&gt;sourceGroup=healthcareTradePublications&lt;/code&gt; on the news API to scope searches to that bundle.&lt;/p&gt;

&lt;h3&gt;
  
  
  How do I filter healthcare news to trade publications only?
&lt;/h3&gt;

&lt;p&gt;Add &lt;code&gt;sourceGroup=healthcareTradePublications&lt;/code&gt; to any Articles, Headlines, or Stories API request. This is &lt;strong&gt;filter news by source&lt;/strong&gt; at the publisher-bundle level — more reliable than keyword-only search for &lt;strong&gt;healthcare news&lt;/strong&gt; from &lt;strong&gt;industry news sources&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can I combine sourceGroup with keywords and dates?
&lt;/h3&gt;

&lt;p&gt;Yes. &lt;code&gt;sourceGroup&lt;/code&gt; sets the publisher boundary; add &lt;code&gt;q&lt;/code&gt;, &lt;code&gt;topic&lt;/code&gt;, &lt;code&gt;companyDomain&lt;/code&gt;, &lt;code&gt;from&lt;/code&gt;, &lt;code&gt;to&lt;/code&gt;, and &lt;code&gt;addDateFrom&lt;/code&gt; to narrow within the group. You can also use &lt;code&gt;excludeSource&lt;/code&gt; to drop individual domains from an otherwise correct bundle.&lt;/p&gt;

&lt;h3&gt;
  
  
  How is this different from listing domains in source=?
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;sourceGroup&lt;/code&gt; is a maintained, reusable &lt;strong&gt;publisher list&lt;/strong&gt;. You do not paste 36 domains into every query, and Perigon can update the group without changing your integration. For a custom subset, create a private source group and pass your group name the same way.&lt;/p&gt;

&lt;h3&gt;
  
  
  What are the best sources inside the group for healthcare news?
&lt;/h3&gt;

&lt;p&gt;For U.S. business coverage: Modern Healthcare, Becker's Hospital Review, Fierce Healthcare, Healthcare Dive, and Healthcare IT News. For biotech and pharma: STAT and GEN. For policy: Health Affairs and WHO. The full group covers all lanes in one filter.&lt;/p&gt;

</description>
      <category>news</category>
      <category>api</category>
      <category>healthcare</category>
      <category>python</category>
    </item>
    <item>
      <title>Historical News API Search Long-Range News Archives and Coverage Since 2016</title>
      <dc:creator>Oleksyj Mokrousov</dc:creator>
      <pubDate>Thu, 23 Jul 2026 14:47:07 +0000</pubDate>
      <link>https://dev.to/alexperigon/historical-news-api-search-long-range-news-archives-and-coverage-since-2016-41en</link>
      <guid>https://dev.to/alexperigon/historical-news-api-search-long-range-news-archives-and-coverage-since-2016-41en</guid>
      <description>&lt;h2&gt;
  
  
  Historical news API - questions long-range archive search answers
&lt;/h2&gt;

&lt;p&gt;Products marketed as &lt;strong&gt;media archive&lt;/strong&gt; tools often stop at "filter the last 30 days." That fails the moment a team needs &lt;strong&gt;past news coverage&lt;/strong&gt; across a merger, a regulation change, or a decade of &lt;strong&gt;company news history&lt;/strong&gt;. Live feeds and bookmarked URLs miss &lt;strong&gt;old news articles&lt;/strong&gt; that never appear in today's crawl. Compliance and research workflows need proof of what was published when - not just what was indexed yesterday. Teams also confuse publication time with ingestion time and pull the wrong window for &lt;strong&gt;retrospective news analysis&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Five questions come up on every &lt;strong&gt;historical news search&lt;/strong&gt; project:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;What is a &lt;strong&gt;historical news API&lt;/strong&gt; in practice?&lt;/li&gt;
&lt;li&gt;How can a &lt;strong&gt;news archive API&lt;/strong&gt; search coverage going back years - including &lt;strong&gt;news since 2016&lt;/strong&gt;?&lt;/li&gt;
&lt;li&gt;How do publication date, add date, and refresh date differ?&lt;/li&gt;
&lt;li&gt;How do you build timelines and run &lt;strong&gt;retrospective news analysis&lt;/strong&gt;?&lt;/li&gt;
&lt;li&gt;How do you export large &lt;strong&gt;news datasets&lt;/strong&gt; for research or custom delivery?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Perigon answers these through the &lt;strong&gt;Articles API&lt;/strong&gt; - one &lt;strong&gt;news API&lt;/strong&gt; surface with archive-depth &lt;strong&gt;news data&lt;/strong&gt;, not a separate historical product. Sections below follow that order.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Try it live:&lt;/strong&gt; &lt;a href="https://perigon.io/sandbox" rel="noopener noreferrer"&gt;Test date filters in the Perigon sandbox&lt;/a&gt; · &lt;strong&gt;Read the docs:&lt;/strong&gt; &lt;a href="https://perigon.io/docs/api/dates-times" rel="noopener noreferrer"&gt;Dates and times&lt;/a&gt; · &lt;strong&gt;Compare plans:&lt;/strong&gt; &lt;a href="https://perigon.io/products/pricing/apis" rel="noopener noreferrer"&gt;API pricing and features&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  What a historical news API means on the Articles API
&lt;/h2&gt;

&lt;p&gt;A &lt;strong&gt;historical news API&lt;/strong&gt; is the ability to &lt;strong&gt;search news articles&lt;/strong&gt; across a deep back catalog - not a standalone endpoint. On Perigon, &lt;strong&gt;historical news&lt;/strong&gt; lives in the same &lt;strong&gt;Articles API&lt;/strong&gt; (&lt;code&gt;/v1/all&lt;/code&gt;) used for breaking coverage: structured &lt;strong&gt;news article database&lt;/strong&gt; records with headline, body, publisher, entities, topics, and multiple timestamps.&lt;/p&gt;

&lt;p&gt;The &lt;strong&gt;historical news database&lt;/strong&gt; is the indexed archive behind that endpoint. How far back you can query depends on your plan's historical lookback (see plans section below). Commercial tiers unlock &lt;strong&gt;10+ years&lt;/strong&gt; of &lt;strong&gt;historical news&lt;/strong&gt; - aligning with &lt;strong&gt;news since 2016&lt;/strong&gt; for full-archive research, &lt;strong&gt;industry news archive&lt;/strong&gt; work, litigation support, and longitudinal studies. Free and Basic tiers intentionally cap depth for exploration and early-stage products.&lt;/p&gt;

&lt;p&gt;Every result is a full article object from the &lt;a href="https://perigon.io/docs/api/data-model" rel="noopener noreferrer"&gt;data model&lt;/a&gt; - suitable for dashboards, research tools, and &lt;strong&gt;news datasets&lt;/strong&gt; pipelines without a second archive integration.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to search news archive coverage by publication window
&lt;/h2&gt;

&lt;p&gt;Long-range &lt;strong&gt;historical news search&lt;/strong&gt; starts with when the story was published. On the Articles API, pass &lt;code&gt;from&lt;/code&gt; and &lt;code&gt;to&lt;/code&gt; to bound &lt;strong&gt;pubDate&lt;/strong&gt; - the publication timestamp. Use ISO 8601 (date-only &lt;code&gt;2020-01-01&lt;/code&gt; or datetime &lt;code&gt;2020-01-01T00:00:00&lt;/code&gt;) as described in &lt;a href="https://perigon.io/docs/api/dates-times" rel="noopener noreferrer"&gt;Dates and times&lt;/a&gt; docs.&lt;/p&gt;

&lt;p&gt;To study a policy debate across an election cycle, set &lt;code&gt;from&lt;/code&gt; to the cycle start and &lt;code&gt;to&lt;/code&gt; to election day, then add keywords or entity filters on the same request. To walk a timeline oldest-first, set &lt;code&gt;sortBy&lt;/code&gt; to &lt;code&gt;reverseDate&lt;/code&gt;. For newest-first archive browsing, use &lt;code&gt;sortBy&lt;/code&gt; &lt;code&gt;date&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Set &lt;code&gt;showNumResults&lt;/code&gt; to true when you need the total match count before paginating - useful when sizing a &lt;strong&gt;media archive&lt;/strong&gt; export or checking whether a &lt;strong&gt;news archive API&lt;/strong&gt; query is too broad. Paginate with &lt;code&gt;page&lt;/code&gt; and &lt;code&gt;size&lt;/code&gt; when pulling large &lt;strong&gt;news datasets&lt;/strong&gt; across months or years.&lt;/p&gt;

&lt;p&gt;Your plan's historical lookback caps how far &lt;code&gt;from&lt;/code&gt; can reach; requests beyond that window are rejected or clipped per account limits.&lt;/p&gt;

&lt;h2&gt;
  
  
  Publication date, add date, and refresh date
&lt;/h2&gt;

&lt;p&gt;Three timestamps serve different jobs. Mixing them up is the most common bug in &lt;strong&gt;filter news by date&lt;/strong&gt; workflows.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Timestamp&lt;/th&gt;
&lt;th&gt;Params&lt;/th&gt;
&lt;th&gt;Meaning&lt;/th&gt;
&lt;th&gt;Typical use&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Publication date&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;from&lt;/code&gt;, &lt;code&gt;to&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;When the publisher dated the piece&lt;/td&gt;
&lt;td&gt;Timelines, event history, &lt;strong&gt;past news coverage&lt;/strong&gt; studies&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Add date&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;addDateFrom&lt;/code&gt;, &lt;code&gt;addDateTo&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;When Perigon first ingested the article&lt;/td&gt;
&lt;td&gt;Catching newly discovered &lt;strong&gt;old news articles&lt;/strong&gt; entering the index&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Refresh date&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;refreshDateFrom&lt;/code&gt;, &lt;code&gt;refreshDateTo&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;When Perigon last updated the record&lt;/td&gt;
&lt;td&gt;Finding articles whose text or metadata changed after ingestion&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Publication date&lt;/strong&gt; answers "what was in the press in Q3 2019?" &lt;strong&gt;Add date&lt;/strong&gt; answers "what entered our &lt;strong&gt;news data&lt;/strong&gt; lake this week?" - including freshly backfilled archive pieces. &lt;strong&gt;Refresh date&lt;/strong&gt; matters when summaries, entities, or body text were enriched after the first crawl; it usually tracks add date but can diverge for updated content.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example of params (image 1):&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3u5p3exm0xv9mdn889kd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3u5p3exm0xv9mdn889kd.png" alt=" " width="800" height="1048"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Output example (image 2):&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fp4t7jdmgxk9ft91dlwr4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fp4t7jdmgxk9ft91dlwr4.png" alt=" " width="800" height="350"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Sort options mirror those fields: &lt;code&gt;date&lt;/code&gt; and &lt;code&gt;reverseDate&lt;/code&gt; on publication time; &lt;code&gt;addDate&lt;/code&gt; and &lt;code&gt;reverseAddDate&lt;/code&gt; on ingestion; &lt;code&gt;refreshDate&lt;/code&gt; on last system update. For live &lt;strong&gt;news search API&lt;/strong&gt; polling, &lt;code&gt;addDateFrom&lt;/code&gt; on your last checkpoint is the usual pattern. For &lt;strong&gt;historical news search&lt;/strong&gt;, &lt;code&gt;from&lt;/code&gt;/&lt;code&gt;to&lt;/code&gt; on publication date is the default.&lt;/p&gt;

&lt;h2&gt;
  
  
  Timelines, retrospective analysis, and company news history
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Retrospective news analysis&lt;/strong&gt; combines a publication window with the same filters you use on live news - keywords (&lt;a href="https://perigon.io/docs/api/search" rel="noopener noreferrer"&gt;query logic&lt;/a&gt;), &lt;code&gt;companyDomain&lt;/code&gt;, &lt;code&gt;companyName&lt;/code&gt;, topics, sources, and taxonomy. That is how teams reconstruct &lt;strong&gt;company news history&lt;/strong&gt;, compare executive mentions before and after an acquisition, or map &lt;strong&gt;industry news archive&lt;/strong&gt; narratives across regulators and trade press.&lt;/p&gt;

&lt;p&gt;Practical patterns:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Event history&lt;/strong&gt; - &lt;code&gt;from&lt;/code&gt;/&lt;code&gt;to&lt;/code&gt; around the event, &lt;code&gt;sortBy&lt;/code&gt; &lt;code&gt;reverseDate&lt;/code&gt;, entity filter on the company or person involved.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pre/post study&lt;/strong&gt; - two publication windows with the same keyword set, compare &lt;code&gt;showNumResults&lt;/code&gt; or exported pages.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Longitudinal desk&lt;/strong&gt; - monthly &lt;code&gt;from&lt;/code&gt;/&lt;code&gt;to&lt;/code&gt; slices paginated into a warehouse for &lt;strong&gt;news datasets&lt;/strong&gt; and trend charts.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Compliance review&lt;/strong&gt; - publication window plus trusted &lt;code&gt;source&lt;/code&gt; domains and label exclusions for press releases vs opinion.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The &lt;strong&gt;Stories API&lt;/strong&gt; can extend the same date logic to clustered narratives on supported plans - useful when the unit of analysis is a developing storyline rather than every reprint.&lt;/p&gt;

&lt;h2&gt;
  
  
  News datasets, custom plans, and article dumps
&lt;/h2&gt;

&lt;p&gt;Some projects outgrow interactive search. Research firms, risk teams, and data products need bulk &lt;strong&gt;historical news database&lt;/strong&gt; extracts - millions of rows across thousands of entities.&lt;/p&gt;

&lt;p&gt;Perigon supports &lt;strong&gt;custom plans&lt;/strong&gt; and licensed &lt;strong&gt;article dumps&lt;/strong&gt; tailored to scope, format, and rights. One engagement pulled &lt;strong&gt;articles data for 20,000 companies from 2016 onward&lt;/strong&gt; - more than &lt;strong&gt;60 million articles&lt;/strong&gt; - for offline modeling and entity linkage. Smaller teams stay on standard API tiers and paginate the Articles API; large or recurring exports typically move to Commercial or Data License terms with dedicated delivery.&lt;/p&gt;

&lt;p&gt;Talk to Perigon sales when you need custom lookback beyond standard tiers, entity-scoped bulk history, or redistribution rights for &lt;strong&gt;news datasets&lt;/strong&gt; built on Perigon &lt;strong&gt;news data&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Historical depth by API plan
&lt;/h2&gt;

&lt;p&gt;Archive reach scales with tier. Figures below match current public plan limits; confirm live values on the pricing page.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Plan&lt;/th&gt;
&lt;th&gt;Historical lookback&lt;/th&gt;
&lt;th&gt;Data freshness&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Free&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;3 months&lt;/td&gt;
&lt;td&gt;Real-time&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Basic&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;6 months&lt;/td&gt;
&lt;td&gt;1 hour delay&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Plus&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;3 years&lt;/td&gt;
&lt;td&gt;Real-time&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Commercial&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;10+ years&lt;/td&gt;
&lt;td&gt;Real-time&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Commercial also adds Stories, Companies, People, Sources, and Journalists endpoints, custom sources, SLA, and dedicated support - the tier most &lt;strong&gt;historical news API&lt;/strong&gt; products choose for &lt;strong&gt;news since 2016&lt;/strong&gt;-scale research. Plus suits real-time products that still need several years of &lt;strong&gt;archived news articles&lt;/strong&gt;. Free and Basic are for sandbox &lt;strong&gt;historical news search&lt;/strong&gt; experiments within shorter windows.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key takeaways: historical news search and news archives
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Historical news API&lt;/strong&gt; capability is archive-depth search on the &lt;strong&gt;Articles API&lt;/strong&gt; - not a separate &lt;strong&gt;news archive API&lt;/strong&gt; product.&lt;/li&gt;
&lt;li&gt;Use &lt;code&gt;from&lt;/code&gt;/&lt;code&gt;to&lt;/code&gt; for &lt;strong&gt;past news coverage&lt;/strong&gt; by publication date; &lt;code&gt;addDateFrom&lt;/code&gt;/&lt;code&gt;addDateTo&lt;/code&gt; and refresh params for ingestion and update windows.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;sortBy&lt;/code&gt; &lt;code&gt;reverseDate&lt;/code&gt; builds timelines; &lt;code&gt;showNumResults&lt;/code&gt; sizes large &lt;strong&gt;news datasets&lt;/strong&gt; before export.&lt;/li&gt;
&lt;li&gt;Plan tier sets how far back &lt;strong&gt;historical news&lt;/strong&gt; queries reach - up to &lt;strong&gt;10+ years&lt;/strong&gt; on Commercial, covering &lt;strong&gt;news since 2016&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Custom dumps and licensed extracts support enterprise &lt;strong&gt;retrospective news analysis&lt;/strong&gt; at tens of millions of articles.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Get started:&lt;/strong&gt; &lt;a href="https://perigon.io/sandbox" rel="noopener noreferrer"&gt;Try date filters in the sandbox&lt;/a&gt; · &lt;a href="https://perigon.io/docs/api/dates-times" rel="noopener noreferrer"&gt;Dates and times guide&lt;/a&gt; · &lt;a href="https://perigon.io/reference" rel="noopener noreferrer"&gt;API reference&lt;/a&gt; · &lt;a href="https://perigon.io/products/pricing/apis" rel="noopener noreferrer"&gt;API pricing&lt;/a&gt;&lt;/p&gt;

</description>
      <category>news</category>
      <category>api</category>
      <category>archive</category>
      <category>historical</category>
    </item>
    <item>
      <title>Google Has No News API - Perigon Does</title>
      <dc:creator>Oleksyj Mokrousov</dc:creator>
      <pubDate>Thu, 23 Jul 2026 14:35:20 +0000</pubDate>
      <link>https://dev.to/alexperigon/google-has-no-news-api-perigon-does-3clg</link>
      <guid>https://dev.to/alexperigon/google-has-no-news-api-perigon-does-3clg</guid>
      <description>&lt;h2&gt;
  
  
  What is a news API?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;News monitoring&lt;/strong&gt; usually means the same manual work every day: open multiple news sites, run the same searches, check whether anything new appeared, and copy links into a spreadsheet or Slack. That does not scale—articles get missed, filters change every time, and hours go into searching instead of acting on what you find.&lt;/p&gt;

&lt;p&gt;A &lt;strong&gt;news API&lt;/strong&gt; fixes that. You define what you care about once—keywords, publishers, date range, topics, companies—and your application fetches matching &lt;strong&gt;news articles&lt;/strong&gt; automatically. Each result comes back as structured &lt;strong&gt;news data&lt;/strong&gt;: title, URL, publication date, full text, publisher, topics, and mentioned people or companies.&lt;/p&gt;

&lt;p&gt;A &lt;strong&gt;news search API&lt;/strong&gt; (also called an &lt;strong&gt;article search API&lt;/strong&gt; or &lt;strong&gt;news data API&lt;/strong&gt;) is how you run those searches. One HTTP request replaces a morning of manual checking:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight http"&gt;&lt;code&gt;&lt;span class="err"&gt;GET https://api.perigon.io/v1/all?apiKey=YOUR_API_KEY&amp;amp;q=Tesla&amp;amp;source=reuters.com&amp;amp;from=2026-07-01
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You get every Reuters article about Tesla since July 1—ready for a &lt;strong&gt;filtered news feed&lt;/strong&gt;, dashboard, or &lt;strong&gt;news alert&lt;/strong&gt;. No repeated searches across sites.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Manual news monitoring&lt;/th&gt;
&lt;th&gt;With a news API&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Check dozens of sites by hand&lt;/td&gt;
&lt;td&gt;One query across many publishers&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Repeat the same search daily&lt;/td&gt;
&lt;td&gt;Saved query runs on a schedule&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Miss articles outside your routine&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;addDateFrom&lt;/code&gt; catches everything new since last check&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Hard to filter by source, date, or company&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;source&lt;/code&gt;, &lt;code&gt;from&lt;/code&gt;/&lt;code&gt;to&lt;/code&gt;, &lt;code&gt;companyDomain&lt;/code&gt; in the same call&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Copy-paste into tools&lt;/td&gt;
&lt;td&gt;Structured JSON goes straight into your app&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Who uses a news API?
&lt;/h3&gt;

&lt;p&gt;Teams reach for a &lt;strong&gt;news provider&lt;/strong&gt; or &lt;strong&gt;news data provider&lt;/strong&gt; when keywords matter and volume is too high to track by hand:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;PR and comms&lt;/strong&gt; — monitor brand mentions, executive names, and crisis keywords across publishers&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Finance and investing&lt;/strong&gt; — track ticker symbols, earnings, and M&amp;amp;A terms from trusted financial sources&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Competitive intelligence&lt;/strong&gt; — watch competitor domains, product launches, and industry topics daily&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Research and legal&lt;/strong&gt; — &lt;strong&gt;search news articles&lt;/strong&gt; by body text over a date range, excluding opinion pieces&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Product teams&lt;/strong&gt; — embed a &lt;strong&gt;news feed provider&lt;/strong&gt; or &lt;strong&gt;news aggregator&lt;/strong&gt; inside an app or customer portal&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In every case the pattern is the same: pick your keywords, lock in your sources, and let the &lt;strong&gt;API news&lt;/strong&gt; layer do the searching.&lt;/p&gt;




&lt;h2&gt;
  
  
  How is this different from Google News or RSS?
&lt;/h2&gt;

&lt;p&gt;Many developers search for a &lt;strong&gt;google news api&lt;/strong&gt;. Google News is a website for reading headlines. It does not give you a documented API to &lt;strong&gt;search news articles&lt;/strong&gt; by publisher, date range, and topic in one request.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Approach&lt;/th&gt;
&lt;th&gt;What you get&lt;/th&gt;
&lt;th&gt;Limitation&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;strong&gt;Google News&lt;/strong&gt; (website)&lt;/td&gt;
&lt;td&gt;Headlines for humans&lt;/td&gt;
&lt;td&gt;No server API for filtered article search&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;RSS feeds&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Updates from one publisher&lt;/td&gt;
&lt;td&gt;One source at a time, limited filtering&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Web search&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Web pages of all types&lt;/td&gt;
&lt;td&gt;News mixed with blogs, forums, old pages&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Perigon News API&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Structured articles + filters&lt;/td&gt;
&lt;td&gt;Requires an API key; built for developers, with free test plans&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;RSS&lt;/strong&gt; works if you follow five publishers. It breaks when you need &lt;strong&gt;news filtering&lt;/strong&gt; across hundreds of sources by keyword, company, or date.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Web search&lt;/strong&gt; returns everything - not just &lt;strong&gt;news articles&lt;/strong&gt; - and you cannot reliably filter by &lt;code&gt;reuters.com&lt;/code&gt; + &lt;code&gt;from=2026-07-01&lt;/code&gt; + &lt;code&gt;companyDomain=tesla.com&lt;/code&gt; in one call.&lt;/p&gt;

&lt;p&gt;Perigon is a &lt;strong&gt;news provider&lt;/strong&gt; and &lt;strong&gt;news content provider&lt;/strong&gt;: it indexes articles from many publishers, enriches them with metadata (topics, companies, locations), and exposes them through &lt;strong&gt;API news&lt;/strong&gt; endpoints your backend calls directly. Think of it as a &lt;strong&gt;news article database&lt;/strong&gt; you query with keywords instead of browsing.&lt;/p&gt;




&lt;h2&gt;
  
  
  Perigon's article endpoint: &lt;code&gt;/v1/all&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;The main endpoint for searching individual articles is &lt;strong&gt;&lt;code&gt;GET /v1/all&lt;/code&gt;&lt;/strong&gt; (also available at &lt;code&gt;/v1/articles/all&lt;/code&gt;). Pass search terms and filters as URL query parameters.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Base URL:&lt;/strong&gt; &lt;code&gt;https://api.perigon.io/v1&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;First request:&lt;/strong&gt; try it in the &lt;a href="https://perigon.io/sandbox" rel="noopener noreferrer"&gt;Sandbox&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight http"&gt;&lt;code&gt;&lt;span class="err"&gt;GET https://api.perigon.io/v1/all?apiKey=YOUR_API_KEY&amp;amp;q=renewable+energy&amp;amp;size=10&amp;amp;page=0
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Pass your API key as &lt;code&gt;apiKey&lt;/code&gt; in the query string, or via the &lt;code&gt;x-api-key&lt;/code&gt; header or &lt;code&gt;Authorization: Bearer&lt;/code&gt; header.&lt;/p&gt;

&lt;h3&gt;
  
  
  What you get back
&lt;/h3&gt;

&lt;p&gt;Every response has three parts: &lt;code&gt;status&lt;/code&gt; (200 on success), &lt;code&gt;numResults&lt;/code&gt; (total matches—enable with &lt;code&gt;showNumResults=true&lt;/code&gt;), and &lt;code&gt;articles&lt;/code&gt; (the list of results).&lt;/p&gt;

&lt;p&gt;Each article includes the fields you need for feeds, and dashboards:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;The article itself&lt;/strong&gt; — &lt;code&gt;title&lt;/code&gt;, &lt;code&gt;description&lt;/code&gt;, &lt;code&gt;content&lt;/code&gt;, &lt;code&gt;url&lt;/code&gt;, &lt;code&gt;imageUrl&lt;/code&gt;, and &lt;code&gt;articleId&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Who published it&lt;/strong&gt; — &lt;code&gt;source.domain&lt;/code&gt;, &lt;code&gt;source.paywall&lt;/code&gt;, &lt;code&gt;authorsByline&lt;/code&gt;, &lt;code&gt;language&lt;/code&gt;, &lt;code&gt;country&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;When&lt;/strong&gt; — &lt;code&gt;pubDate&lt;/code&gt; (published), &lt;code&gt;addDate&lt;/code&gt; (indexed by Perigon)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;What it's about&lt;/strong&gt; — &lt;code&gt;categories&lt;/code&gt;, &lt;code&gt;topics&lt;/code&gt;, &lt;code&gt;keywords&lt;/code&gt;, &lt;code&gt;labels&lt;/code&gt; (e.g. Opinion, Press Release)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Who and what is mentioned&lt;/strong&gt; — &lt;code&gt;people&lt;/code&gt;, &lt;code&gt;companies&lt;/code&gt;, &lt;code&gt;locations&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Extra signals&lt;/strong&gt; — &lt;code&gt;sentiment&lt;/code&gt;, &lt;code&gt;clusterId&lt;/code&gt; (links related coverage), &lt;code&gt;summary&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That metadata is what turns a keyword search into something actionable. A PR team does not just need the word "recall" in a headline—they need to know the publisher, whether it is opinion, and which companies are mentioned. A &lt;strong&gt;news data API&lt;/strong&gt; returns all of that in one object.&lt;/p&gt;

&lt;p&gt;Full field list and live testing: &lt;a href="https://perigon.io/reference" rel="noopener noreferrer"&gt;API Reference&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  How do you use a news search API to find relevant articles?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;News search&lt;/strong&gt; is not just typing a keyword. The useful part is combining text queries (what the article says) with filters (who published it, when, about what). That is &lt;strong&gt;news filtering&lt;/strong&gt;—and it is what separates a &lt;strong&gt;news search API&lt;/strong&gt; from a basic headline list.&lt;/p&gt;

&lt;h3&gt;
  
  
  Text search: &lt;code&gt;q&lt;/code&gt;, &lt;code&gt;title&lt;/code&gt;, &lt;code&gt;desc&lt;/code&gt;, &lt;code&gt;content&lt;/code&gt;, &lt;code&gt;summary&lt;/code&gt;, &lt;code&gt;url&lt;/code&gt;
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Parameter&lt;/th&gt;
&lt;th&gt;What it searches&lt;/th&gt;
&lt;th&gt;When to use it&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;q&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Title + description + content&lt;/td&gt;
&lt;td&gt;General keyword search (start here)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;title&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Headline only&lt;/td&gt;
&lt;td&gt;Brand or executive mention monitoring&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;desc&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Short description / lede&lt;/td&gt;
&lt;td&gt;Matching article summaries&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;content&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Full article body&lt;/td&gt;
&lt;td&gt;Deep research queries&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;summary&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Summary field&lt;/td&gt;
&lt;td&gt;When summaries are available&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;url&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Article URL path&lt;/td&gt;
&lt;td&gt;Site sections, e.g. &lt;code&gt;source=cnn.com&amp;amp;url=travel&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;All text fields support Boolean operators (&lt;code&gt;AND&lt;/code&gt;, &lt;code&gt;OR&lt;/code&gt;, &lt;code&gt;NOT&lt;/code&gt;), exact phrases in quotes, and wildcards (&lt;code&gt;*&lt;/code&gt;, &lt;code&gt;?&lt;/code&gt;).&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight http"&gt;&lt;code&gt;&lt;span class="err"&gt;# General search
GET /v1/all?q="supply chain" AND shipping&amp;amp;language=en

# Headlines only
GET /v1/all?title=Tesla&amp;amp;from=2026-07-01&amp;amp;sortBy=date

# Body text, excluding a term
GET /v1/all?content="generative AI" NOT OpenAI&amp;amp;category=Tech
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Tip:&lt;/strong&gt; use &lt;code&gt;q&lt;/code&gt; for broad &lt;strong&gt;news search&lt;/strong&gt;. Add &lt;code&gt;title&lt;/code&gt;, &lt;code&gt;desc&lt;/code&gt;, &lt;code&gt;content&lt;/code&gt;, &lt;code&gt;summary&lt;/code&gt;, or &lt;code&gt;url&lt;/code&gt; when you need to search one part of the article only.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Real-world keyword patterns:&lt;/strong&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Goal&lt;/th&gt;
&lt;th&gt;Query approach&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Brand monitoring&lt;/td&gt;
&lt;td&gt;&lt;code&gt;q="Acme Corp" AND (lawsuit OR recall OR CEO)&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Executive tracking&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;title="Jane Doe"&lt;/code&gt; — catches headlines only, less noise&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Industry research&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;content="data center" AND energy&lt;/code&gt; + &lt;code&gt;category=Tech&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Site-section coverage&lt;/td&gt;
&lt;td&gt;&lt;code&gt;source=cnn.com&amp;amp;url=travel&amp;amp;q=airline&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Date filters
&lt;/h3&gt;

&lt;p&gt;Control &lt;em&gt;when&lt;/em&gt; articles were published or added to Perigon:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Parameter&lt;/th&gt;
&lt;th&gt;Meaning&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;from&lt;/code&gt; / &lt;code&gt;to&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Article &lt;strong&gt;publication date&lt;/strong&gt; range&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;addDateFrom&lt;/code&gt; / &lt;code&gt;addDateTo&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;When Perigon &lt;strong&gt;first indexed&lt;/strong&gt; the article&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;refreshDateFrom&lt;/code&gt; / &lt;code&gt;refreshDateTo&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;When Perigon &lt;strong&gt;last updated&lt;/strong&gt; the article&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Dates accept ISO (&lt;code&gt;2026-07-01T00:00:00&lt;/code&gt;) or &lt;code&gt;yyyy-mm-dd&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight http"&gt;&lt;code&gt;&lt;span class="err"&gt;GET /v1/all?q=acquisition&amp;amp;from=2026-06-01&amp;amp;to=2026-07-06&amp;amp;sortBy=date
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Use &lt;code&gt;from&lt;/code&gt;/&lt;code&gt;to&lt;/code&gt; for "articles published this week"&lt;/li&gt;
&lt;li&gt;Use &lt;code&gt;addDateFrom&lt;/code&gt; for "articles added since my last poll" (best for &lt;strong&gt;news alerts&lt;/strong&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A weekly research report uses &lt;code&gt;from&lt;/code&gt;/&lt;code&gt;to&lt;/code&gt;. A Slack alert that fires every 15 minutes uses &lt;code&gt;addDateFrom&lt;/code&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Source filters
&lt;/h3&gt;

&lt;p&gt;Control &lt;em&gt;where&lt;/em&gt; articles come from:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Parameter&lt;/th&gt;
&lt;th&gt;Meaning&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;source&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Publisher domain (e.g. &lt;code&gt;reuters.com&lt;/code&gt;; wildcards like &lt;code&gt;*.cnn.com&lt;/code&gt; supported)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;sourceGroup&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Curated publisher bundle (e.g. &lt;code&gt;top100&lt;/code&gt;)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;excludeSource&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Remove specific publishers&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;excludeSourceGroup&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Remove a publisher bundle&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight http"&gt;&lt;code&gt;&lt;span class="err"&gt;GET /v1/all?q=earnings&amp;amp;source=wsj.com&amp;amp;excludeSource=example-blog.com
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is core &lt;strong&gt;news filtering&lt;/strong&gt;: combine keywords with trusted publishers instead of searching the entire web. A &lt;strong&gt;news feed provider&lt;/strong&gt; that only shows top-tier sources is just &lt;code&gt;sourceGroup=top100&lt;/code&gt; on every call.&lt;/p&gt;

&lt;p&gt;You can also filter by &lt;code&gt;topic&lt;/code&gt;, &lt;code&gt;category&lt;/code&gt;, &lt;code&gt;companyDomain&lt;/code&gt;, &lt;code&gt;personName&lt;/code&gt;, &lt;code&gt;country&lt;/code&gt;, &lt;code&gt;language&lt;/code&gt;, and &lt;code&gt;label&lt;/code&gt; (e.g. exclude &lt;code&gt;opinion&lt;/code&gt; or &lt;code&gt;press release&lt;/code&gt;).&lt;/p&gt;

&lt;h3&gt;
  
  
  Pagination
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Parameter&lt;/th&gt;
&lt;th&gt;Default&lt;/th&gt;
&lt;th&gt;Meaning&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;page&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;0&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Which page to return (starts at 0)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;size&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;10&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;How many articles per page&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;showNumResults&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;false&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Set &lt;code&gt;true&lt;/code&gt; to get total match count (up to 10,000)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight http"&gt;&lt;code&gt;&lt;span class="err"&gt;GET /v1/all?q=electric+vehicles&amp;amp;page=0&amp;amp;size=25&amp;amp;showNumResults=true
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Increment &lt;code&gt;page&lt;/code&gt; to walk through a large result set—useful when building &lt;strong&gt;news datasets&lt;/strong&gt; or export tools.&lt;/p&gt;

&lt;h3&gt;
  
  
  Sorting
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;code&gt;sortBy&lt;/code&gt;&lt;/th&gt;
&lt;th&gt;Order&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;relevance&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Best match to your query (default)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;date&lt;/code&gt; / &lt;code&gt;pubDate&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Newest published first&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;reverseDate&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Oldest published first&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;addDate&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Newest added to Perigon first&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;reverseAddDate&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Oldest added first&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;refreshDate&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Most recently updated first&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;Search box in your app → &lt;code&gt;sortBy=relevance&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Live &lt;strong&gt;filtered news feed&lt;/strong&gt; or &lt;strong&gt;news alerts&lt;/strong&gt; → &lt;code&gt;sortBy=date&lt;/code&gt; or &lt;code&gt;sortBy=addDate&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  How can an article search API support feeds, dashboards, or research tools?
&lt;/h2&gt;

&lt;p&gt;The same &lt;code&gt;/v1/all&lt;/code&gt; call with different keywords and filters powers very different products.&lt;/p&gt;

&lt;h3&gt;
  
  
  Filtered news feeds
&lt;/h3&gt;

&lt;p&gt;A &lt;strong&gt;news feed provider&lt;/strong&gt; ships a stream of articles to users based on saved interests:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Save a query — e.g. &lt;code&gt;q=AI regulation&amp;amp;sourceGroup=top100&amp;amp;language=en&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Call &lt;code&gt;/v1/all&lt;/code&gt; every few minutes with &lt;code&gt;sortBy=date&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Show &lt;code&gt;title&lt;/code&gt;, &lt;code&gt;url&lt;/code&gt;, &lt;code&gt;description&lt;/code&gt;, &lt;code&gt;pubDate&lt;/code&gt;, and &lt;code&gt;source.domain&lt;/code&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Set &lt;code&gt;showReprints=false&lt;/code&gt; to hide syndicated wire copies. Use &lt;code&gt;clusterId&lt;/code&gt; to group articles about the same story so your feed does not show the same event ten times.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt; a fintech app embeds a "regulatory news" tab. One saved query, one API call, always fresh &lt;strong&gt;news articles&lt;/strong&gt;—no manual curation.&lt;/p&gt;

&lt;h3&gt;
  
  
  Dashboards
&lt;/h3&gt;

&lt;p&gt;Different teams filter the same &lt;strong&gt;news data API&lt;/strong&gt; differently:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Team&lt;/th&gt;
&lt;th&gt;Filters&lt;/th&gt;
&lt;th&gt;Why&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Compliance&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;excludeLabel=opinion&lt;/code&gt; + &lt;code&gt;label=press release&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Official announcements only&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Finance&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;companySymbol=AAPL&lt;/code&gt; + &lt;code&gt;topic=Markets&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Ticker-specific market news&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Local news&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;city=Chicago&lt;/code&gt; or &lt;code&gt;state=IL&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Geography-based coverage&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Search UI&lt;/td&gt;
&lt;td&gt;&lt;code&gt;showHighlighting=true&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Bolded keyword snippets in results&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;One &lt;strong&gt;news aggregator&lt;/strong&gt; backend, many dashboard views—each is a different keyword + filter combination.&lt;/p&gt;

&lt;h3&gt;
  
  
  Internal research
&lt;/h3&gt;

&lt;p&gt;Researchers need depth, not speed. They use &lt;code&gt;content&lt;/code&gt; or &lt;code&gt;q&lt;/code&gt; with date windows (&lt;code&gt;from&lt;/code&gt;/&lt;code&gt;to&lt;/code&gt;), exclude opinion with &lt;code&gt;excludeLabel=opinion&lt;/code&gt;, and paginate with &lt;code&gt;page&lt;/code&gt; and &lt;code&gt;size&lt;/code&gt; to review full result sets.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt; a policy team studying climate legislation runs &lt;code&gt;content="carbon tax" AND congress&lt;/code&gt; with &lt;code&gt;from=2025-01-01&lt;/code&gt;, exports pages of results, and builds a &lt;strong&gt;news dataset&lt;/strong&gt; for analysis—something no RSS reader or Google News tab can do with the same precision.&lt;/p&gt;




&lt;h2&gt;
  
  
  What should developers look for in a news provider or news data provider?
&lt;/h2&gt;

&lt;p&gt;If you are evaluating a &lt;strong&gt;news provider&lt;/strong&gt;, &lt;strong&gt;news data provider&lt;/strong&gt;, or &lt;strong&gt;news content provider&lt;/strong&gt;, check that the API offers:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Text search across fields&lt;/strong&gt; — &lt;code&gt;q&lt;/code&gt;, &lt;code&gt;title&lt;/code&gt;, &lt;code&gt;desc&lt;/code&gt;, &lt;code&gt;content&lt;/code&gt;, &lt;code&gt;summary&lt;/code&gt;, &lt;code&gt;url&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Rich filters&lt;/strong&gt; — source, date, topic, category, entity, geography, language&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Structured JSON responses&lt;/strong&gt; — article ID, source, dates, entities, labels&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Freshness timestamps&lt;/strong&gt; — publication date plus ingestion date for polling&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pagination and sorting&lt;/strong&gt; — &lt;code&gt;page&lt;/code&gt;, &lt;code&gt;size&lt;/code&gt;, &lt;code&gt;sortBy&lt;/code&gt;, &lt;code&gt;showNumResults&lt;/code&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;A good &lt;strong&gt;news feed provider&lt;/strong&gt; or &lt;strong&gt;news aggregator&lt;/strong&gt; backend needs all of these—not just a headline list.&lt;/p&gt;

&lt;h3&gt;
  
  
  Perigon vs the google news
&lt;/h3&gt;

&lt;p&gt;Teams often start by Googling "google news api." Here is the short answer: &lt;strong&gt;Google does not offer a public news API.&lt;/strong&gt; Google News is a website and mobile app for reading headlines—not a service your backend can call.&lt;/p&gt;

&lt;p&gt;That does not mean Google News is useless. It is excellent at what it was built for. The gap appears when you need to automate &lt;strong&gt;news search&lt;/strong&gt; inside your own product.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;What you want to do&lt;/th&gt;
&lt;th&gt;Google News (website)&lt;/th&gt;
&lt;th&gt;Perigon &lt;code&gt;/v1/all&lt;/code&gt; (API)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Browse today's headlines as a reader&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Search by keyword in a browser&lt;/td&gt;
&lt;td&gt;manually&lt;/td&gt;
&lt;td&gt;programmatically&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Limit results to specific publishers&lt;/td&gt;
&lt;td&gt;UI only&lt;/td&gt;
&lt;td&gt;Yes — &lt;code&gt;source&lt;/code&gt;, &lt;code&gt;sourceGroup&lt;/code&gt;, &lt;code&gt;excludeSource&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Filter by date range&lt;/td&gt;
&lt;td&gt;UI only&lt;/td&gt;
&lt;td&gt;Yes — &lt;code&gt;from&lt;/code&gt;/&lt;code&gt;to&lt;/code&gt;, &lt;code&gt;addDateFrom&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Poll for new articles on a schedule&lt;/td&gt;
&lt;td&gt;No — you would have to check by hand&lt;/td&gt;
&lt;td&gt;Yes — &lt;code&gt;addDateFrom&lt;/code&gt; on each poll&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Get full article text, companies, people, topics&lt;/td&gt;
&lt;td&gt;No — headlines and snippets only&lt;/td&gt;
&lt;td&gt;Yes — &lt;code&gt;content&lt;/code&gt;, &lt;code&gt;companies&lt;/code&gt;, &lt;code&gt;people&lt;/code&gt;, &lt;code&gt;topics&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Build a feed or dashboard in your product&lt;/td&gt;
&lt;td&gt;No — no way to connect it&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Google News can&lt;/strong&gt; help a person stay informed. &lt;strong&gt;Google News cannot&lt;/strong&gt; send your server a filtered list of Reuters articles about Tesla published since July 1, updated every 15 minutes, with full text and entity metadata.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Perigon can.&lt;/strong&gt; Your backend sends one request:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight http"&gt;&lt;code&gt;&lt;span class="err"&gt;GET /v1/all?apiKey=YOUR_API_KEY&amp;amp;q=Tesla&amp;amp;source=reuters.com&amp;amp;from=2026-07-01&amp;amp;sortBy=date
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You get JSON back. Paginate with &lt;code&gt;page&lt;/code&gt; and &lt;code&gt;size&lt;/code&gt;. Poll for new matches with &lt;code&gt;addDateFrom&lt;/code&gt;. Pipe the results into a &lt;strong&gt;filtered news feed&lt;/strong&gt;, a Slack &lt;strong&gt;news alert&lt;/strong&gt;, or a research dashboard.&lt;/p&gt;

&lt;p&gt;You are not replacing Google News for people who want to read the news. You are adding a &lt;strong&gt;news data API&lt;/strong&gt; for products that need to &lt;strong&gt;search news articles&lt;/strong&gt; automatically.&lt;/p&gt;

</description>
      <category>news</category>
      <category>api</category>
      <category>google</category>
      <category>search</category>
    </item>
    <item>
      <title>Local News API: Search Local News by City, State, County, Radius, and Source Location</title>
      <dc:creator>Oleksyj Mokrousov</dc:creator>
      <pubDate>Wed, 22 Jul 2026 11:28:55 +0000</pubDate>
      <link>https://dev.to/alexperigon/local-news-api-search-local-news-by-city-state-county-radius-and-source-location-57pa</link>
      <guid>https://dev.to/alexperigon/local-news-api-search-local-news-by-city-state-county-radius-and-source-location-57pa</guid>
      <description>&lt;h2&gt;
  
  
  Local news API: the issues geography filters resolve
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Location based news&lt;/strong&gt; breaks down the moment a product treats place names as plain keywords. Portland matches cement trade coverage and travel blogs, not just Portland, Oregon. A headline that mentions Chicago is not the same as a story &lt;em&gt;about&lt;/em&gt; Chicago. County papers and neighborhood sites rarely win broad text search, yet they are exactly what &lt;strong&gt;hyperlocal news&lt;/strong&gt; readers want. National crawls cannot tell whether a Denver dateline means the event was in Denver or the newsroom is in Denver.&lt;/p&gt;

&lt;p&gt;Those gaps show up as five practical problems teams hit when building on a &lt;strong&gt;news search API&lt;/strong&gt;:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;How do you scope &lt;strong&gt;city news search&lt;/strong&gt; to the right market?&lt;/li&gt;
&lt;li&gt;How do you filter &lt;strong&gt;regional news data&lt;/strong&gt; by state or county?&lt;/li&gt;
&lt;li&gt;How do you find &lt;strong&gt;hyperlocal news&lt;/strong&gt; from &lt;strong&gt;local publishers&lt;/strong&gt;?&lt;/li&gt;
&lt;li&gt;How do you build &lt;strong&gt;local news near me&lt;/strong&gt; and &lt;strong&gt;local news today&lt;/strong&gt; feeds?&lt;/li&gt;
&lt;li&gt;How do you separate where a story happened from &lt;strong&gt;source location&lt;/strong&gt;?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Perigon's geography filters on the &lt;strong&gt;Articles API&lt;/strong&gt;, &lt;strong&gt;Stories API&lt;/strong&gt;, and &lt;strong&gt;Sources API&lt;/strong&gt; address each problem in turn below.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Try it live:&lt;/strong&gt; &lt;a href="https://perigon.io/sandbox" rel="noopener noreferrer"&gt;Test local news search in the Perigon sandbox&lt;/a&gt; · &lt;strong&gt;Read the docs:&lt;/strong&gt; &lt;a href="https://perigon.io/docs/api/local-news" rel="noopener noreferrer"&gt;Local news guide&lt;/a&gt; · &lt;strong&gt;Compare plans:&lt;/strong&gt; &lt;a href="https://perigon.io/products/pricing/apis" rel="noopener noreferrer"&gt;API pricing and features&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  City news search: scoping the right market
&lt;/h2&gt;

&lt;p&gt;Place names repeat across countries and states, so keyword &lt;strong&gt;news search&lt;/strong&gt; alone cannot tell which Portland or Springfield you mean. On the &lt;strong&gt;Articles API&lt;/strong&gt; (&lt;code&gt;/v1/all&lt;/code&gt;), pass &lt;code&gt;city&lt;/code&gt; together with &lt;code&gt;state&lt;/code&gt; to anchor urban &lt;strong&gt;city news&lt;/strong&gt; to one market. When you need both values to match - not either/or - use structured &lt;code&gt;location&lt;/code&gt;:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;location=city:New York::state:NY&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;The &lt;strong&gt;Stories API&lt;/strong&gt; (&lt;code&gt;/v1/stories/all&lt;/code&gt;) accepts the same &lt;code&gt;city&lt;/code&gt; and &lt;code&gt;state&lt;/code&gt; values when you track storylines instead of individual articles.&lt;/p&gt;

&lt;h2&gt;
  
  
  Regional news data by state, county, and area
&lt;/h2&gt;

&lt;p&gt;Statewide desks, county government coverage, and borough-level products need geography wider or narrower than a single city. Event-location params on the &lt;strong&gt;Articles API&lt;/strong&gt; match articles where the named place is central to the story - not a passing mention.&lt;/p&gt;

&lt;p&gt;Pass &lt;code&gt;state&lt;/code&gt; for statewide &lt;strong&gt;regional news data&lt;/strong&gt;, &lt;code&gt;county&lt;/code&gt; when metro boundaries do not fit, and &lt;code&gt;area&lt;/code&gt; for neighborhoods or districts. Multiple values on one param use OR logic. Exclude params such as &lt;code&gt;excludeState&lt;/code&gt; drop specific markets from a national crawl without rebuilding the query. See &lt;a href="https://perigon.io/docs/api/location-geo" rel="noopener noreferrer"&gt;location and geo filters&lt;/a&gt; for full event-location behavior.&lt;/p&gt;

&lt;h2&gt;
  
  
  Hyperlocal news and local publishers
&lt;/h2&gt;

&lt;p&gt;Small outlets rarely surface in keyword results, but they are registered in Perigon's publisher index with city, state, county, country, and coordinates. &lt;strong&gt;Source location&lt;/strong&gt; params on the &lt;strong&gt;Articles API&lt;/strong&gt; pull articles from newsrooms in a market: &lt;code&gt;sourceCity&lt;/code&gt;, &lt;code&gt;sourceState&lt;/code&gt;, and source radius (&lt;code&gt;sourceLat&lt;/code&gt;, &lt;code&gt;sourceLon&lt;/code&gt;, &lt;code&gt;sourceMaxDistance&lt;/code&gt;).&lt;/p&gt;

&lt;p&gt;When the workflow starts with outlet selection, the &lt;strong&gt;Sources API&lt;/strong&gt; (&lt;code&gt;/v1/sources/all&lt;/code&gt;) returns &lt;strong&gt;local publishers&lt;/strong&gt; as records - domain, name, geography - using the same source-location vocabulary. Whitelist those domains, then pull articles through the Articles API. See &lt;a href="https://perigon.io/docs/api/sources" rel="noopener noreferrer"&gt;Sources and source groups&lt;/a&gt; for publisher discovery and curated bundles.&lt;/p&gt;

&lt;h2&gt;
  
  
  Local news near me and local news today feeds
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Local news near me&lt;/strong&gt; needs coordinates, not just city strings. Pass &lt;code&gt;lat&lt;/code&gt;, &lt;code&gt;lon&lt;/code&gt;, and &lt;code&gt;maxDistance&lt;/code&gt; on the &lt;strong&gt;Articles API&lt;/strong&gt; (kilometers, up to 300) to scope &lt;strong&gt;geospatial news&lt;/strong&gt; around a point. Add a topic or keyword for vertical lanes - &lt;strong&gt;weather news&lt;/strong&gt; along a storm track, for example.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Local news today&lt;/strong&gt; feeds poll for fresh matches: &lt;code&gt;addDateFrom&lt;/code&gt; on your last checkpoint, &lt;code&gt;sortBy&lt;/code&gt; on addDate, and &lt;code&gt;city&lt;/code&gt; or &lt;code&gt;state&lt;/code&gt; for the market. Set &lt;code&gt;type&lt;/code&gt; to &lt;code&gt;local&lt;/code&gt; when Perigon's local classification should sit on top of geography. For storyline views instead of article floods, the &lt;strong&gt;Stories API&lt;/strong&gt; clusters coverage by &lt;code&gt;city&lt;/code&gt;, &lt;code&gt;state&lt;/code&gt;, and &lt;code&gt;area&lt;/code&gt; - summaries, velocity, and related articles in one object.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;What you need&lt;/th&gt;
&lt;th&gt;Endpoint&lt;/th&gt;
&lt;th&gt;Geography params&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Articles in a market&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;Articles API&lt;/strong&gt; &lt;code&gt;/v1/all&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Event and/or source location, radius, &lt;code&gt;type&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Storylines in a market&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;Stories API&lt;/strong&gt; &lt;code&gt;/v1/stories/all&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;city&lt;/code&gt;, &lt;code&gt;state&lt;/code&gt;, &lt;code&gt;area&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Headlines with geo scope&lt;/td&gt;
&lt;td&gt;&lt;code&gt;/v1/headlines&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Same as Articles API&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Publisher directory&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;Sources API&lt;/strong&gt; &lt;code&gt;/v1/sources/all&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Source city, state, country, radius&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Event location vs source location
&lt;/h2&gt;

&lt;p&gt;The fifth problem is conceptual: &lt;em&gt;where the story happened&lt;/em&gt; and &lt;em&gt;where the publisher sits&lt;/em&gt; are different filters.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Axis&lt;/th&gt;
&lt;th&gt;Question it answers&lt;/th&gt;
&lt;th&gt;Example use case&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Event location&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Where did the story happen?&lt;/td&gt;
&lt;td&gt;City council, weather emergencies, crime, school board&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Source location&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Where is the publisher based?&lt;/td&gt;
&lt;td&gt;Hyperlocal reader apps, publisher directories, DMA ad products&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;A Miami Herald story about Tallahassee legislation is Tallahassee by event, Miami by source. &lt;strong&gt;Local news monitoring&lt;/strong&gt; dashboards usually lead with event params; &lt;strong&gt;hyperlocal news&lt;/strong&gt; apps often weight source params. Combine both on the Articles API - &lt;code&gt;county&lt;/code&gt; set to Cook County with &lt;code&gt;sourceState&lt;/code&gt; set to IL - when you need events in one county from Illinois-registered publishers.&lt;/p&gt;

&lt;h2&gt;
  
  
  Geospatial news: local news data on every article
&lt;/h2&gt;

&lt;p&gt;Scoped results arrive with &lt;strong&gt;local news data&lt;/strong&gt; your UI can render without extra geocoding: tagged places, publisher &lt;strong&gt;source location&lt;/strong&gt;, topics, entities, sentiment, summaries, and story cluster linkage.&lt;/p&gt;

&lt;h2&gt;
  
  
  Local news monitoring: weather news and politics news patterns
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Weather news and emergency monitoring
&lt;/h3&gt;

&lt;p&gt;Layer &lt;code&gt;state&lt;/code&gt; or &lt;code&gt;county&lt;/code&gt; with storm-related keywords or a weather topic; add &lt;code&gt;maxDistance&lt;/code&gt; when the threat moves across a map.&lt;/p&gt;

&lt;h3&gt;
  
  
  Regional politics news desk
&lt;/h3&gt;

&lt;p&gt;Pass &lt;code&gt;state&lt;/code&gt;, &lt;code&gt;category&lt;/code&gt; Politics, and opinion label exclusions. Add &lt;code&gt;sourceState&lt;/code&gt; when the desk tracks who published the piece, not only where the vote happened.&lt;/p&gt;

&lt;h3&gt;
  
  
  Multi-market desks
&lt;/h3&gt;

&lt;p&gt;Run one scoped query per DMA - different &lt;code&gt;city&lt;/code&gt; or &lt;code&gt;sourceCity&lt;/code&gt; each - and aggregate into a &lt;strong&gt;regional news data&lt;/strong&gt; store. Use &lt;code&gt;showNumResults&lt;/code&gt; to spot volume spikes without full page downloads.&lt;/p&gt;

&lt;h2&gt;
  
  
  News search API: when to use event vs source filters
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Goal&lt;/th&gt;
&lt;th&gt;Start with&lt;/th&gt;
&lt;th&gt;Add if needed&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Right city, right state&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;city&lt;/code&gt; + &lt;code&gt;state&lt;/code&gt; or structured &lt;code&gt;location&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Keywords, topics, dates&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Statewide or county desk&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;state&lt;/code&gt; or &lt;code&gt;county&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Topic, category, labels&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Outlets in a market&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;sourceCity&lt;/code&gt; on Sources API&lt;/td&gt;
&lt;td&gt;Domain or group filters&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Feed near a user&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;lat&lt;/code&gt;, &lt;code&gt;lon&lt;/code&gt;, &lt;code&gt;maxDistance&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;q&lt;/code&gt; or entities&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Event vs newsroom geography&lt;/td&gt;
&lt;td&gt;event params vs source params&lt;/td&gt;
&lt;td&gt;Combine on Articles API&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8u5dvea51yqj3oixq6vy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8u5dvea51yqj3oixq6vy.png" alt=" " width="800" height="289"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Stack geography filters on the news search API
&lt;/h2&gt;

&lt;p&gt;Geography composes with keywords, source domains, date windows, topics, entities, and label rules on the Articles API. A crime desk might pass &lt;code&gt;county&lt;/code&gt;, a Crime topic, a one-week date window, &lt;code&gt;language&lt;/code&gt;, and &lt;code&gt;showReprints&lt;/code&gt; false - &lt;strong&gt;filter news by location&lt;/strong&gt; and subject in one request.&lt;/p&gt;

&lt;h2&gt;
  
  
  News API plans for local media monitoring
&lt;/h2&gt;

&lt;p&gt;Geography filters on the Articles, Headlines, Stories, and Sources APIs are included across Perigon plans; volume and history depth grow with tier.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Plan&lt;/th&gt;
&lt;th&gt;Best for&lt;/th&gt;
&lt;th&gt;Highlights for local workflows&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Free&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Exploring the API&lt;/td&gt;
&lt;td&gt;150 requests/month for sandbox geo experiments&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Basic&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Eligible startups&lt;/td&gt;
&lt;td&gt;10,000 requests/month, 6 months of history&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Plus&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Higher-volume products&lt;/td&gt;
&lt;td&gt;50,000 requests/month, real-time data, 3 years of history&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Commercial&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Production&lt;/td&gt;
&lt;td&gt;100,000+ requests/month, 10+ years of history&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Data License&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Full commercial data products&lt;/td&gt;
&lt;td&gt;Full license for apps built on Perigon &lt;strong&gt;news data&lt;/strong&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Compare plan features on the pricing page linked in the intro.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key takeaways: local news near me and city news search
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Geography filters on the &lt;strong&gt;Articles API&lt;/strong&gt;, &lt;strong&gt;Stories API&lt;/strong&gt;, and &lt;strong&gt;Sources API&lt;/strong&gt; let you scope &lt;strong&gt;local news&lt;/strong&gt; by city, region, publisher, and radius.&lt;/li&gt;
&lt;li&gt;Structured &lt;code&gt;location&lt;/code&gt; resolves ambiguous &lt;strong&gt;city news search&lt;/strong&gt;; radius params power &lt;strong&gt;geospatial news&lt;/strong&gt; and &lt;strong&gt;local news near me&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;The &lt;strong&gt;Sources API&lt;/strong&gt; discovers &lt;strong&gt;local publishers&lt;/strong&gt;; Articles and Stories APIs filter coverage and narratives in those markets.&lt;/li&gt;
&lt;li&gt;Event params answer where the story happened; &lt;strong&gt;source location&lt;/strong&gt; params answer where the newsroom sits.&lt;/li&gt;
&lt;li&gt;Stack geography with topics and dates for &lt;strong&gt;weather news&lt;/strong&gt; and &lt;strong&gt;politics news&lt;/strong&gt; workflows.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Get started:&lt;/strong&gt; &lt;a href="https://perigon.io/sandbox" rel="noopener noreferrer"&gt;Try local news in the sandbox&lt;/a&gt; · &lt;a href="https://perigon.io/docs/api/local-news" rel="noopener noreferrer"&gt;Local news guide&lt;/a&gt; · &lt;a href="https://perigon.io/reference" rel="noopener noreferrer"&gt;API reference&lt;/a&gt; · &lt;a href="https://perigon.io/products/pricing/apis" rel="noopener noreferrer"&gt;API pricing&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Articles API: Filter and Search News by Google Content Categories</title>
      <dc:creator>Oleksyj Mokrousov</dc:creator>
      <pubDate>Wed, 22 Jul 2026 11:25:25 +0000</pubDate>
      <link>https://dev.to/alexperigon/articles-api-filter-and-search-news-by-google-content-categories-2hbf</link>
      <guid>https://dev.to/alexperigon/articles-api-filter-and-search-news-by-google-content-categories-2hbf</guid>
      <description>&lt;h2&gt;
  
  
  Articles API taxonomy filters beat noisy keyword search
&lt;/h2&gt;

&lt;p&gt;Keyword &lt;strong&gt;news search&lt;/strong&gt; is the right starting point when you know the exact phrase you want. It is the wrong tool when you need a whole industry desk - every banking story, every biotech development note, every sports trade rumor - without writing a hundred OR clauses and still catching opinion blogs, product reviews, and unrelated mentions.&lt;/p&gt;

&lt;p&gt;That is where &lt;strong&gt;news taxonomy&lt;/strong&gt; filtering comes in. Instead of guessing which strings appear in headlines, you filter &lt;strong&gt;news data&lt;/strong&gt; by &lt;strong&gt;content categories&lt;/strong&gt;: hierarchical paths that describe what an article is &lt;em&gt;about&lt;/em&gt;. Perigon's &lt;strong&gt;Articles API&lt;/strong&gt; applies &lt;a href="https://docs.cloud.google.com/natural-language/docs/categories#version_2" rel="noopener noreferrer"&gt;Google Content Categories (Version 2)&lt;/a&gt; to every article - and supports the same paths on story search - so developers can build &lt;strong&gt;filtered news feeds&lt;/strong&gt;, &lt;strong&gt;industry news&lt;/strong&gt; monitors, and &lt;strong&gt;vertical news&lt;/strong&gt; products with &lt;strong&gt;news filtering&lt;/strong&gt; that stays on-category.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Try it live:&lt;/strong&gt; &lt;a href="https://perigon.io/sandbox" rel="noopener noreferrer"&gt;Test article search in the Perigon sandbox&lt;/a&gt; · &lt;strong&gt;Read the docs:&lt;/strong&gt; &lt;a href="https://perigon.io/reference" rel="noopener noreferrer"&gt;Articles API reference&lt;/a&gt; · &lt;strong&gt;Compare plans:&lt;/strong&gt; &lt;a href="https://perigon.io/products/pricing/apis" rel="noopener noreferrer"&gt;API pricing and features&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  The theory: when taxonomy wins over keywords
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;News filtering&lt;/strong&gt; with keywords alone treats every match as equal. Search for "bank" and you get central banking, river banks, bank robbery, and a fintech app's "data bank" feature. Search for "AI" and you pull product launches, research papers, policy hearings, and stock tips - all mixed together.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Taxonomy&lt;/strong&gt; is built for structured industry or category scoping when text search is too noisy. You declare the &lt;em&gt;kind&lt;/em&gt; of content you want - finance, health conditions, team sports, rock music - and the &lt;strong&gt;Articles API&lt;/strong&gt; returns articles whose &lt;strong&gt;article categorization&lt;/strong&gt; aligns with that path. Combine taxonomy filters with &lt;strong&gt;filter news by source&lt;/strong&gt;, &lt;strong&gt;filter news by date&lt;/strong&gt;, and Perigon's own &lt;strong&gt;news categories&lt;/strong&gt; and &lt;strong&gt;news topics&lt;/strong&gt; when you need both precision and control.&lt;/p&gt;

&lt;p&gt;The result is cleaner &lt;strong&gt;news datasets&lt;/strong&gt;, fewer false positives in &lt;strong&gt;news monitoring&lt;/strong&gt;, and &lt;strong&gt;industry news filtering&lt;/strong&gt; that scales without maintaining giant keyword blocklists.&lt;/p&gt;

&lt;h2&gt;
  
  
  How taxonomy filters work on the Articles API
&lt;/h2&gt;

&lt;p&gt;Perigon does not offer a separate taxonomy product. &lt;strong&gt;Google content category&lt;/strong&gt; filtering is built into the &lt;strong&gt;Articles API&lt;/strong&gt; - the same &lt;strong&gt;article search API&lt;/strong&gt; and &lt;strong&gt;news search API&lt;/strong&gt; surface you use for keywords, publishers, dates, companies, and topics.&lt;/p&gt;

&lt;p&gt;Every indexed article already carries hierarchical &lt;strong&gt;content categories&lt;/strong&gt; from Google: full paths with confidence scores that describe industry, subject family, and content type - not just what keywords appear in the text. When you search articles, you filter on those paths. When you search stories, you can filter clustered narratives the same way.&lt;/p&gt;

&lt;p&gt;That gives you three capabilities in one &lt;strong&gt;news data&lt;/strong&gt; workflow:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Pre-classified articles&lt;/strong&gt; - every article in the index carries Google taxonomy paths with confidence scores, so your product knows what kind of story it is before you display it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Taxonomy filters on the Articles API&lt;/strong&gt; - narrow article search to one or more exact Google category paths, or to a whole branch with prefix matching.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Taxonomy filters on the Stories API&lt;/strong&gt; - apply the same category logic to clustered narratives when you track storylines, not individual reprints.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You are not maintaining a category index or running offline classifiers. You query &lt;strong&gt;news articles&lt;/strong&gt; the way you already would - and taxonomy is a filter on top, with enriched category metadata on every result.&lt;/p&gt;

&lt;h2&gt;
  
  
  Taxonomy, category, and topic: three different filters
&lt;/h2&gt;

&lt;p&gt;Perigon exposes three related but distinct dimensions. Using the right one keeps &lt;strong&gt;news classification&lt;/strong&gt; precise.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Dimension&lt;/th&gt;
&lt;th&gt;What it represents&lt;/th&gt;
&lt;th&gt;Examples&lt;/th&gt;
&lt;th&gt;Best for&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Taxonomy&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;
&lt;a href="https://docs.cloud.google.com/natural-language/docs/categories#version_2" rel="noopener noreferrer"&gt;Google Content Category&lt;/a&gt; paths - industry and content-type hierarchy&lt;/td&gt;
&lt;td&gt;Rock Music, Banking, Health Conditions, Team Sports&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;Industry news filtering&lt;/strong&gt;, vertical desks, content-type scoping&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Category&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Perigon broad editorial themes derived from coverage&lt;/td&gt;
&lt;td&gt;Tech, Politics, Sports, Business, Finance, Entertainment&lt;/td&gt;
&lt;td&gt;Fast theme filters, dashboards, mixed-industry products&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Topic&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Granular Perigon topics (entity- and theme-level)&lt;/td&gt;
&lt;td&gt;Markets, Cryptocurrency, College Sports, Crime&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;Filter news by topic&lt;/strong&gt; when you need finer slices than category&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Rule of thumb:&lt;/strong&gt; use &lt;strong&gt;taxonomy&lt;/strong&gt; when the Google path describes the industry or content family you want. Use &lt;strong&gt;category&lt;/strong&gt; for quick Perigon theme buckets. Use &lt;strong&gt;topic&lt;/strong&gt; for specific storyline types. Stack them when a product needs both - for example, all of finance plus a Markets topic, excluding opinion pieces.&lt;/p&gt;

&lt;p&gt;Articles can carry multiple taxonomy paths. Google's V2 model returns every applicable path with reasonable confidence - for example both Science and Astronomy when both fit. A child category labeled Other under a parent indicates the content aligns with the broader parent more than any specific sibling. See the &lt;a href="https://docs.cloud.google.com/natural-language/docs/categories#version_2" rel="noopener noreferrer"&gt;full category list&lt;/a&gt; for every exact string (all paths are English).&lt;/p&gt;

&lt;h2&gt;
  
  
  See what taxonomy filtering delivers
&lt;/h2&gt;

&lt;p&gt;The clearest way to understand the value is to walk through what a customer actually gets back.&lt;/p&gt;

&lt;p&gt;Imagine a music media product that wants &lt;strong&gt;rock music coverage&lt;/strong&gt; - not every headline that mentions a guitar, and not celebrity gossip unless it is genuinely about music. In the sandbox, you filter English articles by the Google path for Rock Music under Arts and Entertainment, sort by publication date, hide reprints, and ask for a page of recent matches.&lt;/p&gt;

&lt;p&gt;One result is a piece from a New Jersey radio station about Metallica closing their M72 world tour with a Black Sabbath tribute one year after Ozzy Osbourne's death. That is exactly the kind of story a rock vertical wants: tour news, tribute performance, venue and residency details - not a generic entertainment mention.&lt;/p&gt;

&lt;p&gt;What Perigon returns on that article is the full &lt;strong&gt;news data&lt;/strong&gt; package your product can surface without extra enrichment:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Editorial classification&lt;/strong&gt; - Perigon category Entertainment, plus Google taxonomies for Rock Music (strongest match), Celebrities and Entertainment News, and Concerts and Music Festivals, each with a confidence score.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The story itself&lt;/strong&gt; - headline, description, full article text, publication and indexing dates, URL, hero image, author byline, and language.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Publisher context&lt;/strong&gt; - source domain, country, and localized publisher geography down to city and coordinates when available.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Entities and people&lt;/strong&gt; - resolved names such as Metallica, Kirk Hammett, Robert Trujillo, and Ozzy Osbourne, with types and mention counts; linked people records where Wikidata IDs exist.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Keywords and summaries&lt;/strong&gt; - weighted keywords (Black Sabbath, M72 Tour, Electric Funeral, London Stadium) plus short and long AI-generated summaries for cards and digests.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sentiment&lt;/strong&gt; - positive, negative, and neutral scores across the piece.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Story linkage&lt;/strong&gt; - a cluster ID tying this article to related coverage, so your app can jump from one article to the broader narrative without rebuilding clustering yourself.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That is what &lt;strong&gt;article categorization&lt;/strong&gt; buys you: the filter defines the vertical, and every match arrives ready for a feed, alert, or dashboard. Your customer sees rock coverage; your backend receives structured &lt;strong&gt;content categories&lt;/strong&gt;, entities, and metadata in one response.&lt;/p&gt;

&lt;h2&gt;
  
  
  How Google content categories improve Articles API search results
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Google news taxonomy&lt;/strong&gt; paths are standardized, hierarchical, and maintained at scale - thousands of &lt;strong&gt;content categories&lt;/strong&gt; covering finance, health, government, sports, entertainment, and more. That beats home-grown tag lists that drift out of date.&lt;/p&gt;

&lt;p&gt;For the &lt;strong&gt;Articles API&lt;/strong&gt;, the payoff is immediate:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Less keyword noise&lt;/strong&gt; - a Funds category finds fund coverage without every headline that mentions "fund" in another sense.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Consistent article categorization across publishers&lt;/strong&gt; - regional, trade, and wire &lt;strong&gt;news sources&lt;/strong&gt; share the same path vocabulary.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Prefix discovery&lt;/strong&gt; - filter by an entire Finance or Health branch without listing every leaf category underneath.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Composable filters&lt;/strong&gt; - taxonomy works alongside keywords, publisher, date range, company, and topic in one &lt;strong&gt;filtered news feed&lt;/strong&gt; query.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Perigon maps these paths onto indexed &lt;strong&gt;news articles&lt;/strong&gt; and story clusters, so &lt;strong&gt;news classification&lt;/strong&gt; is queryable at API speed - not something you run offline per article.&lt;/p&gt;

&lt;h2&gt;
  
  
  Filter articles by exact path or whole industry branch
&lt;/h2&gt;

&lt;p&gt;On the &lt;strong&gt;Articles API&lt;/strong&gt;, you have two taxonomy filter modes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Exact path matching&lt;/strong&gt; accepts one or more full Google category strings. Use this when you know the precise branch - banking versus mutual funds versus insurance - without pulling everything under Finance. A fintech desk might request only Banking and Investing Funds paths, limited to articles published since the start of the month, sorted newest first.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Prefix matching&lt;/strong&gt; filters by the start of a path only. One prefix covers every category beneath it. A finance monitoring product might start with the entire Finance tree across top publishers in English, then layer a Markets topic or a company watchlist on top. Prefix matching is available on the Articles API; the Stories API accepts full taxonomy paths but not prefix - use exact paths on stories, or filter articles first and follow cluster links into narrative views.&lt;/p&gt;

&lt;h3&gt;
  
  
  What your product receives on each article
&lt;/h3&gt;

&lt;p&gt;Beyond taxonomy, each article carries Perigon categories and topics, the publisher record, dates, full text, summaries, sentiment, people and companies, locations, keywords, labels, and cluster membership. Taxonomy scores help you rank, display category chips, or route articles into the right queue in your own &lt;strong&gt;topic classification&lt;/strong&gt; pipeline.&lt;/p&gt;

&lt;h2&gt;
  
  
  Story-level taxonomy for narrative monitoring
&lt;/h2&gt;

&lt;p&gt;For &lt;strong&gt;news monitoring&lt;/strong&gt; at storyline scale, filter clustered stories by the same Google paths. Stories inherit &lt;strong&gt;content categories&lt;/strong&gt; from their constituent articles.&lt;/p&gt;

&lt;p&gt;A sports product might ask for team-sports stories covered by at least five unique publishers, updated recently, sorted by when the narrative last moved. Story results aggregate taxonomies across the cluster - useful when you care about momentum in a vertical, not every single reprint. Pair a Sports category with a finer Google sports path when you want Perigon's broad theme plus a specific subtree.&lt;/p&gt;

&lt;p&gt;Story objects bring the same enrichment customers expect at article level - generated story names, summaries, key points, sentiment, entities, velocity signals, and the related articles inside the cluster.&lt;/p&gt;

&lt;h2&gt;
  
  
  How taxonomy improves news filtering compared with keywords alone
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Approach&lt;/th&gt;
&lt;th&gt;Strength&lt;/th&gt;
&lt;th&gt;Weakness&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Keywords only&lt;/td&gt;
&lt;td&gt;Exact phrases, breaking names, rare terms&lt;/td&gt;
&lt;td&gt;Homonyms, cross-industry noise, endless OR lists&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Perigon category / topic&lt;/td&gt;
&lt;td&gt;Fast, editorially familiar buckets&lt;/td&gt;
&lt;td&gt;Less granular than full Google trees&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Taxonomy&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Industry-wide, hierarchical, standardized &lt;strong&gt;news categories&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;Requires knowing path strings (use &lt;a href="https://docs.cloud.google.com/natural-language/docs/categories#version_2" rel="noopener noreferrer"&gt;Google's list&lt;/a&gt;)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Taxonomy + keywords&lt;/td&gt;
&lt;td&gt;Precise vertical coverage with named entities&lt;/td&gt;
&lt;td&gt;Slightly more complex queries&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The best &lt;strong&gt;news filtering&lt;/strong&gt; stacks layers: a taxonomy prefix for the vertical, keywords or company filters for the watchlist, trusted publishers, a publication or indexing date window, and label exclusions when you want reporting only.&lt;/p&gt;

&lt;p&gt;A healthcare intelligence workflow might combine the full Health taxonomy branch with clinical-trial or FDA keywords, major publishers only, a six-month publication window, and no opinion label - yielding &lt;strong&gt;health&lt;/strong&gt;-classified &lt;strong&gt;news articles&lt;/strong&gt; without every lifestyle blog that casually mentions "health."&lt;/p&gt;

&lt;h2&gt;
  
  
  What is the best way to filter and search news by industry?
&lt;/h2&gt;

&lt;p&gt;For most &lt;strong&gt;industry news&lt;/strong&gt; and &lt;strong&gt;vertical news&lt;/strong&gt; products, this pattern works well:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Start with a taxonomy prefix&lt;/strong&gt; - one branch per industry lane: Finance, Health, Sports, Computers and Electronics, Law and Government.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Add Perigon category or topic&lt;/strong&gt; when you need an editorial theme or storyline type on top of Google paths.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Layer source and date&lt;/strong&gt; - &lt;strong&gt;filter news by source&lt;/strong&gt; (specific domains or curated publisher bundles) and &lt;strong&gt;filter news by date&lt;/strong&gt; (publication window for reports, indexing window for polling alerts).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Switch to exact paths&lt;/strong&gt; when the prefix is too broad - banking only, not all of finance.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Choose stories when the product tracks narratives; choose articles when it needs every piece.&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;That is &lt;strong&gt;industry news filtering&lt;/strong&gt; at API level: structured lanes, optional keywords, trusted &lt;strong&gt;news sources&lt;/strong&gt;, fresh &lt;strong&gt;news data&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Examples by vertical
&lt;/h2&gt;

&lt;p&gt;Try these patterns in the &lt;a href="https://perigon.io/sandbox" rel="noopener noreferrer"&gt;sandbox&lt;/a&gt;. Use exact path strings from the &lt;a href="https://docs.cloud.google.com/natural-language/docs/categories#version_2" rel="noopener noreferrer"&gt;Google Content Categories V2 list&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Finance
&lt;/h3&gt;

&lt;p&gt;Monitor banking and markets coverage across top publishers: Finance prefix, Markets topic, major source bundle, sorted by when articles were indexed. Drill into mutual-fund coverage only with the Investing Funds exact path, a July publication window, and press releases excluded.&lt;/p&gt;

&lt;h3&gt;
  
  
  Technology
&lt;/h3&gt;

&lt;p&gt;Combine Google's Computers and Electronics branch with Perigon's Tech category and artificial-intelligence keywords in English for a &lt;strong&gt;technology news&lt;/strong&gt; lane that stays in-sector.&lt;/p&gt;

&lt;h3&gt;
  
  
  Health
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Healthcare news&lt;/strong&gt; monitoring: Health taxonomy prefix, FDA or clinical-trial keywords, Entertainment category excluded, articles from the past six months - clinical and regulatory signal without wellness listicles.&lt;/p&gt;

&lt;h3&gt;
  
  
  Politics
&lt;/h3&gt;

&lt;p&gt;Policy and government coverage: Law and Government prefix, Politics category, US country filter, sorted by publication date.&lt;/p&gt;

&lt;h3&gt;
  
  
  Sports
&lt;/h3&gt;

&lt;p&gt;Team and league coverage as stories rather than article floods: team-sports taxonomy path, Sports category, minimum unique publisher count, recently updated narratives.&lt;/p&gt;

&lt;h3&gt;
  
  
  Business
&lt;/h3&gt;

&lt;p&gt;Cross-industry business reporting: Business category plus Business and Industrial taxonomy prefix, limited to trusted financial publishers, newest first.&lt;/p&gt;

&lt;h3&gt;
  
  
  Entertainment and music (vertical feed)
&lt;/h3&gt;

&lt;p&gt;Rock Music exact path, English language, reprints hidden, sorted by date - exactly the shape of query that returns tour and tribute coverage like the Metallica M72 finale story, with taxonomies, people, summaries, and cluster linkage included. Your customer gets a &lt;strong&gt;filtered news feed&lt;/strong&gt; of rock coverage; your app gets &lt;strong&gt;news articles&lt;/strong&gt; ready to render.&lt;/p&gt;

&lt;h3&gt;
  
  
  Industry monitoring (multi-vertical product)
&lt;/h3&gt;

&lt;p&gt;Build separate &lt;strong&gt;filtered news feeds&lt;/strong&gt; per customer vertical with the same &lt;strong&gt;Articles API&lt;/strong&gt;:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Customer vertical&lt;/th&gt;
&lt;th&gt;What to combine&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Fintech desk&lt;/td&gt;
&lt;td&gt;Finance prefix + Cryptocurrency topic + indexing window for alerts&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Pharma intelligence&lt;/td&gt;
&lt;td&gt;Health prefix + company domain + opinion excluded&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Logistics SaaS&lt;/td&gt;
&lt;td&gt;Business and Industrial prefix + supply-chain keywords&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Sports media app&lt;/td&gt;
&lt;td&gt;Sports stories + team-sports taxonomy path&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Poll with an indexing-since timestamp for alerts; request total match counts and paginate when exporting &lt;strong&gt;news datasets&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  API plans: start free, scale when you need more
&lt;/h2&gt;

&lt;p&gt;Taxonomy filters on the &lt;strong&gt;Articles API&lt;/strong&gt; and &lt;strong&gt;Stories API&lt;/strong&gt; are part of Perigon's core &lt;strong&gt;news search API&lt;/strong&gt; offering - the same products you use for keyword search, source filters, and date windows. Whether you are prototyping a &lt;strong&gt;filtered news feed&lt;/strong&gt; or running &lt;strong&gt;industry news filtering&lt;/strong&gt; in production, the right plan depends on volume, data freshness, history depth, and which endpoints you need.&lt;/p&gt;

&lt;p&gt;Perigon offers &lt;strong&gt;Free&lt;/strong&gt;, &lt;strong&gt;Basic&lt;/strong&gt;, &lt;strong&gt;Plus&lt;/strong&gt;, &lt;strong&gt;Commercial&lt;/strong&gt;, and &lt;strong&gt;Data License&lt;/strong&gt; tiers. Just getting started or operating at scale? &lt;a href="https://perigon.io/products/pricing/apis" rel="noopener noreferrer"&gt;Compare all features on the API pricing page&lt;/a&gt; - request limits, rate limits, max results per call, real-time vs delayed data, historical lookback, commercial license terms, and which API products are included on each plan.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Plan&lt;/th&gt;
&lt;th&gt;Best for&lt;/th&gt;
&lt;th&gt;Highlights relevant to taxonomy workflows&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Free&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Anyone exploring the API&lt;/td&gt;
&lt;td&gt;150 requests/month - enough to test taxonomy, prefix, and category/topic combinations in the sandbox&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Basic&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Eligible startups&lt;/td&gt;
&lt;td&gt;10,000 requests/month, 6 months of history, Articles and related endpoints&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Plus&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Eligible startups at higher volume&lt;/td&gt;
&lt;td&gt;50,000 requests/month, real-time data, 3 years of history - suited to live &lt;strong&gt;news monitoring&lt;/strong&gt; feeds&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Commercial&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;All businesses&lt;/td&gt;
&lt;td&gt;100,000+ requests/month, custom rate limits, 10+ years of history&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Data License&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Full commercial data use&lt;/td&gt;
&lt;td&gt;Full commercial license for products built on Perigon &lt;strong&gt;news data&lt;/strong&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Across plans, the API surface includes &lt;strong&gt;Articles&lt;/strong&gt;, &lt;strong&gt;Stories&lt;/strong&gt;, &lt;strong&gt;Search Summarizer&lt;/strong&gt;, &lt;strong&gt;Sources&lt;/strong&gt;, &lt;strong&gt;Companies&lt;/strong&gt;, &lt;strong&gt;People&lt;/strong&gt;, &lt;strong&gt;Journalists&lt;/strong&gt;, and &lt;strong&gt;Topics&lt;/strong&gt; - add taxonomy filters on Articles, pull story clusters on Stories, discover category labels on Topics, and narrow publishers on Sources.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Start here:&lt;/strong&gt; sign up on the Free tier, run taxonomy queries in the &lt;a href="https://perigon.io/sandbox" rel="noopener noreferrer"&gt;sandbox&lt;/a&gt;, then upgrade when your &lt;strong&gt;news filtering&lt;/strong&gt; workload outgrows monthly limits or you need real-time &lt;strong&gt;news data&lt;/strong&gt; and deeper archives.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key takeaways
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Perigon does not ship a standalone taxonomy API - &lt;strong&gt;Google content category&lt;/strong&gt; filtering lives on the &lt;strong&gt;Articles API&lt;/strong&gt;, with matching filters on the &lt;strong&gt;Stories API&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Use &lt;strong&gt;exact taxonomy paths&lt;/strong&gt; for precise verticals, &lt;strong&gt;prefix matching&lt;/strong&gt; for whole industry branches on article search, and &lt;strong&gt;taxonomy on stories&lt;/strong&gt; for narrative-level &lt;strong&gt;news filtering&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Taxonomy&lt;/strong&gt;, Perigon &lt;strong&gt;category&lt;/strong&gt;, and &lt;strong&gt;topic&lt;/strong&gt; solve different jobs - combine them with &lt;strong&gt;filter news by source&lt;/strong&gt; and &lt;strong&gt;filter news by date&lt;/strong&gt; for production &lt;strong&gt;filtered news feeds&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Indexed articles expose &lt;strong&gt;taxonomies&lt;/strong&gt; with confidence scores on every result - use them for display, ranking, or routing inside your app.&lt;/li&gt;
&lt;li&gt;Browse the complete path list in &lt;a href="https://docs.cloud.google.com/natural-language/docs/categories#version_2" rel="noopener noreferrer"&gt;Google's Content Categories documentation (Version 2)&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Get started:&lt;/strong&gt; &lt;a href="https://perigon.io/sandbox" rel="noopener noreferrer"&gt;Try taxonomy filters in the sandbox&lt;/a&gt; · &lt;a href="https://perigon.io/reference" rel="noopener noreferrer"&gt;Read the Articles API reference&lt;/a&gt; · &lt;a href="https://perigon.io/products/pricing/apis" rel="noopener noreferrer"&gt;Compare API plans and permissions&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
