news-search
USE FOR news search. Returns news articles with title, URL, description, age, thumbnail, profile. Supports freshness and date range filtering, SafeSearch filter and Goggles for custom ranking.
By brave · 1,418 installs
npx skills add brave/brave-search-skills --skill news-search
Source repository · Upstream listing
News Search
Requires API Key : Get one at https://api.search.brave.com
Plan : Included in the Search plan. See https://api dashboard.search.brave.com/app/subscriptions/subscribe
Quick Start (cURL)
Basic Search
Recent News (Past 24 Hours)
Date Range Filter
Endpoint
Authentication : X Subscription Token: <API KEY header
Note : Both GET and POST are supported. POST is useful for long queries or complex Goggles.
Parameters
Parameter Type Required Default Description
q string Yes Search query (1 400 chars, max 50 words)
country string No US Search country (2 letter country code or ALL )
search lang string No en Language preference (2+ char language code)
ui lang string No en US UI language (e.g., "en US")
count int No 20 Number of results (1 50)
offset int No 0 Page offset (0 9)
safesearch string No strict Adult content filter ( off / moderate / strict )
freshness string No Time filter ( pd / pw / pm / py or date range)
spellcheck bool No true Auto correct query
extra snippets bool No Up to 5 additional excerpts per result
goggles string or array No Custom ranking filter (URL or inline; repeat param for multiple)
operators bool No true Apply search operators
include fetch metadata bool No false Include fetch timestamps in results
Freshness Values
Value Description
pd Past day (24 hours) ideal for breaking news
pw Past week (7 days)
pm Past month (31 days)
py Past year (365 days)
YYYY MM DDtoYYYY MM DD Custom date range
Response Format
Response Fields
Field Type Description
type string Always "news"
query.original string The original search query
query.altered string? Spellcheck corrected query (if changed)
query.cleaned string? Cleaned/normalized query from spellchecker
query.spellcheck off bool? Whether spellcheck was disabled
query.show strict warning bool? True if strict safesearch blocked results
query.search operators object? Applied search operators
query.search operators.applied bool Whether operators were applied
query.search operators.cleaned query string? Query after operator processing
query.search operators.sites list[str]? Domains from site: operators
results[].type string Always "news result"
results[].title string Article title
results[].url string Source URL of the article
results[].description string? Article description/summary
results[].age string? Human readable age (e.g. "2 hours ago")
results[].page age string? Publication date from source (ISO datetime)
results[].page fetched string? When page was last fetched (ISO datetime)
results[].fetched content timestamp int? Fetch timestamp (only with include fetch metadata=true )
results[].meta url.scheme string? URL protocol scheme
results[].meta url.netloc string? Network location
results[].meta url.hostname string? Lowercased domain name
results[].meta url.favicon string? Favicon URL
results[].meta url.path string? URL path
results[].thumbnail.src string Served thumbnail URL
results[].thumbnail.original string? Original thumbnail URL
results[].extra snippets list[str]? Up to 5 additional excerpts per result
results[].profile.name string? Name of the site
results[].profile.url string? The original URL where the profile is available
results[].profile.long name string? The long name of the site
results[].profile.img string? The served image URL representing the profile
Goggles (Custom Ranking) — Unique to Brave
Goggles let you re rank news results — boost trusted outlets or suppress unwanted sources.
Method Example
Hosted data urlencode "goggles=https://raw.githubusercontent.com/brave/goggles quickstart/main/goggles/hacker news.goggle"
Inline data urlencode 'goggles=$discard\n$site=example.com'
Hosted goggles must be on GitHub/GitLab, include ! name: , ! description: , ! author: headers, and be registered at https://search.brave.com/goggles/create. Inline rules need no registration.
Syntax : Rules start with $ + comma separated options. Actions (pick one): discard , boost[=N] , downrank[=N] — N is an integer 1–10. Site filter : site=DOMAIN . Example: $site=example.com,boost=3 . Separate rules with \n ( %0A ).
Allow list : $discard\n$site=docs.python.org\n$site=developer.mozilla.org — Block list : $discard,site=pinterest.com\n$discard,site=quora.com
Resources : [Discover](https://search.brave.com/goggles/discover) · [Syntax](https://search.brave.com/help/goggles) · [Quickstart](https://github.com/brave/goggles quickstart)
Search Operators
Use search operators to refine results:
site:local paper.com Limit to specific news site
"exact phrase" Match exact phrase
exclude Exclude term
Set operators=false to disable operator parsing.
Use Cases
Breaking news monitoring : Use freshness=pd for the most recent articles on a topic.
Custom news feeds with Goggles : Boost trusted sources and discard other sources — unique to Brave.
Historical news research : Use freshness=YYYY MM DDtoYYYY MM DD to find articles from specific time periods.
Multilingual news : Combine country , search lang , and ui lang for cross locale results.
Data pipelines : Set include fetch metadata=true for fetched content timestamp on each result.
Notes
SafeSearch : Defaults to strict
Pagination : Use offset (0 9) with count
Extra snippets : Up to 5 additional excerpts when extra snippets=true