
news-search
✓ Official★ 158by brave · part of brave/brave-search-skills
USE FOR news search. Returns news articles with title, URL, description, age, thumbnail. Supports freshness and date range filtering, SafeSearch filter and…
USE FOR news search. Returns news articles with title, URL, description, age, thumbnail. Supports freshness and date range filtering, SafeSearch filter and…
Inspect the full instructions your agent will receiveExpandCollapse
This is the exact playbook injected into your agent when the skill activates — shown here so you can audit it before installing. You don't need to read it to use the skill.
by brave
USE FOR news search. Returns news articles with title, URL, description, age, thumbnail. Supports freshness and date range filtering, SafeSearch filter and…
npx skills add https://github.com/brave/brave-search-skills --skill news-search
Download ZIPGitHub158
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
Endpoint
GET https://api.search.brave.com/res/v1/news/search
POST https://api.search.brave.com/res/v1/news/search
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
{
"type": "news",
"query": {
"original": "space exploration"
},
"results": [
{
"type": "news_result",
"title": "New Developments in Space Exploration",
"url": "https://news.example.com/space-exploration",
"description": "Recent missions have advanced our understanding of...",
"age": "2 hours ago",
"page_age": "2026-01-15T14:30:00",
"page_fetched": "2026-01-15T15:00:00Z",
"meta_url": {
"scheme": "https",
"netloc": "news.example.com",
"hostname": "news.example.com",
"favicon": "https://imgs.search.brave.com/favicon/news.example.com",
"path": "/space-exploration"
},
"thumbnail": {
"src": "https://imgs.search.brave.com/..."
}
}
]
}
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
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: $boost=N / $downrank=N (1–10), $discard, $site=example.com. Combine with commas: $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 · Syntax · 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=pdfor 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-DDto find articles from specific time periods. -
Multilingual news: Combine
country,search_lang, andui_langfor cross-locale results. -
Data pipelines: Set
include_fetch_metadata=trueforfetched_content_timestampon each result.
Notes
-
SafeSearch: Defaults to
strict -
Pagination: Use
offset(0-9) withcount -
Extra snippets: Up to 5 additional excerpts when
extra_snippets=true
npx skills add https://github.com/brave/brave-search-skills --skill news-searchRun this in your project — your agent picks the skill up automatically.
Quick Start (cURL)
Basic Search
curl -s "https://api.search.brave.com/res/v1/news/search?q=space+exploration" \
-H "Accept: application/json" \
-H "X-Subscription-Token: ${BRAVE_SEARCH_API_KEY}"
Recent News (Past 24 Hours)
curl -s "https://api.search.brave.com/res/v1/news/search" \
-H "Accept: application/json" \
-H "X-Subscription-Token: ${BRAVE_SEARCH_API_KEY}" \
-G \
--data-urlencode "q=cybersecurity" \
--data-urlencode "country=US" \
--data-urlencode "freshness=pd" \
--data-urlencode "count=20"
Date Range Filter
curl -s "https://api.search.brave.com/res/v1/news/search" \
-H "Accept: application/json" \
-H "X-Subscription-Token: ${BRAVE_SEARCH_API_KEY}" \
-G \
--data-urlencode "q=climate summit" \
--data-urlencode "freshness=2026-01-01to2026-01-31"
No common issues documented yet. If you hit a problem, the repository's GitHub Issues page is the best place to look.