Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
brave avatar

News Search

  • 1.2k installs
  • 164 repo stars
  • Updated August 3, 2026
  • brave/brave-search-skills

news-search is an agent skill that queries the Brave News Search API and returns recent articles with titles, URLs, descriptions, thumbnails, and age metadata for developers who need programmatic news retrieval inside AI

About

news-search is a Brave Search Skills agent integration that calls `https://api.search.brave.com/res/v1/news/search` and returns structured news results—title, URL, description, age, and thumbnail—for agent-driven research. It requires a Brave Search API key on the Search plan and supports freshness windows, explicit date ranges, SafeSearch filtering, and Goggles for custom ranking. Developers reach for news-search when building agents that monitor breaking topics, summarize recent coverage, or validate assumptions against current headlines without hand-writing curl requests each time. Example calls use `X-Subscription-Token` headers and standard JSON responses, including a past-24-hours freshness pattern documented in the skill readme.

  • Returns structured news results including title, URL, description, age and thumbnail
  • Supports freshness filters (past day, week, month, year) and custom date ranges
  • SafeSearch filtering and Goggles for custom result ranking
  • Works with both GET and POST requests to the Brave News Search endpoint
  • Requires only a Brave Search API key (included in the Search plan)

News Search by the numbers

  • 1,155 all-time installs (skills.sh)
  • +48 installs in the week ending Aug 5, 2026 (Skillselion tracking)
  • Ranked #949 of 16,546 AI & Agent Building skills by installs in the Skillselion catalog
  • Security screen: MEDIUM risk (skills.sh audit)
  • Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/brave/brave-search-skills --skill news-search

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs1.2k
repo stars164
Security audit2 / 3 scanners passed
Last updatedAugust 3, 2026
Repositorybrave/brave-search-skills

How do agents fetch recent news articles programmatically?

Quickly retrieve recent news articles with titles, URLs, descriptions, thumbnails, and age metadata directly from an AI agent.

Who is it for?

Developers wiring AI agents to Brave Search who need filtered, recent news JSON without building the HTTP client from scratch.

Skip if: Developers who only need general web search or lack a Brave Search API key on the Search plan.

When should I use this skill?

The user asks for recent news, headline monitoring, or Brave News API integration inside an agent workflow.

What you get

Structured news article records with URLs, descriptions, thumbnails, and age metadata from Brave Search.

  • News article JSON results
  • Filtered recent-headline sets

Files

SKILL.mdMarkdownGitHub ↗

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

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"

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

ParameterTypeRequiredDefaultDescription
qstringYes-Search query (1-400 chars, max 50 words)
countrystringNoUSSearch country (2-letter country code or ALL)
search_langstringNoenLanguage preference (2+ char language code)
ui_langstringNoen-USUI language (e.g., "en-US")
countintNo20Number of results (1-50)
offsetintNo0Page offset (0-9)
safesearchstringNostrictAdult content filter (off/moderate/strict)
freshnessstringNo-Time filter (pd/pw/pm/py or date range)
spellcheckboolNotrueAuto-correct query
extra_snippetsboolNo-Up to 5 additional excerpts per result
gogglesstring or arrayNo-Custom ranking filter (URL or inline; repeat param for multiple)
operatorsboolNotrueApply search operators
include_fetch_metadataboolNofalseInclude fetch timestamps in results

Freshness Values

ValueDescription
pdPast day (24 hours) - ideal for breaking news
pwPast week (7 days)
pmPast month (31 days)
pyPast year (365 days)
YYYY-MM-DDtoYYYY-MM-DDCustom 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

FieldTypeDescription
typestringAlways "news"
query.originalstringThe original search query
query.alteredstring?Spellcheck-corrected query (if changed)
query.cleanedstring?Cleaned/normalized query from spellchecker
query.spellcheck_offbool?Whether spellcheck was disabled
query.show_strict_warningbool?True if strict safesearch blocked results
query.search_operatorsobject?Applied search operators
query.search_operators.appliedboolWhether operators were applied
query.search_operators.cleaned_querystring?Query after operator processing
query.search_operators.siteslist[str]?Domains from site: operators
results[].typestringAlways "news_result"
results[].titlestringArticle title
results[].urlstringSource URL of the article
results[].descriptionstring?Article description/summary
results[].agestring?Human-readable age (e.g. "2 hours ago")
results[].page_agestring?Publication date from source (ISO datetime)
results[].page_fetchedstring?When page was last fetched (ISO datetime)
results[].fetched_content_timestampint?Fetch timestamp (only with include_fetch_metadata=true)
results[].meta_url.schemestring?URL protocol scheme
results[].meta_url.netlocstring?Network location
results[].meta_url.hostnamestring?Lowercased domain name
results[].meta_url.faviconstring?Favicon URL
results[].meta_url.pathstring?URL path
results[].thumbnail.srcstringServed thumbnail URL
results[].thumbnail.originalstring?Original thumbnail URL
results[].extra_snippetslist[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.

MethodExample
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.orgBlock 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=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

Related skills

How it compares

Choose news-search over general web-search skills when you specifically need news-index results with age metadata and freshness filters.

FAQ

What API does news-search use?

news-search calls Brave Search at `https://api.search.brave.com/res/v1/news/search`, passing `X-Subscription-Token` with a Brave Search API key from the Search plan dashboard.

What fields does news-search return?

news-search returns news articles with title, URL, description, age metadata, and thumbnail, with optional freshness, date-range, SafeSearch, and Goggles ranking filters.

Is News Search safe to install?

skills.sh reports 2 of 3 security scanners passed. Review the Security Audits panel on this page before installing in production.

AI & Agent Buildingresearchautomation

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.