選項

適用於網頁搜尋。回傳包含摘要、網址及縮圖的排序結果。支援最新內容篩選、安全搜尋、Goggles 自訂排序以及分頁功能。主要搜尋端點。

...展開全部
96
更新時間 2026-06-29

關於web-search

web-search 技能提供對 Brave 搜尋引擎的程式化存取,讓使用者能夠進行線上搜尋並擷取結構化結果。此技能旨在回傳包含摘要、網址、縮圖及元資料的排序搜尋結果,協助開發人員和應用程式將網頁搜尋功能直接整合至其工作流程中。 透過支援「安全搜尋」(SafeSearch)、新鮮度篩選器,以及透過 Goggles 進行的自訂排序等功能,此技能能解決從網路上快速取得相關且經過篩選的資訊,並以適合自動化系統和使用者介面的結構化格式呈現。

此技能同時支援 GET 與 POST HTTP 方法,使其能靈活處理簡單查詢,或包含 Goggles 配置以進行自訂結果排序的複雜、較長查詢。透過參數可精確控制搜尋,包括國家、語言、結果數量、內容過濾、日期範圍,以及文字裝飾、拼字檢查和豐富回調等附加功能。 透過「最新度」與「結果篩選」選項,使用者可將搜尋範圍縮小至特定時間區間,或鎖定特定結果類型,例如新聞、影片、討論等。認證機制透過 API 金鑰管理,確保服務存取的安全性。

Web-search 此服務非常適合開發人員建置搜尋介面、資料擷取工具,或需要高速存取精選搜尋結果的應用程式。目標使用者包括那些需要從網路擷取結構化資料以建立搜尋使用者介面、代理程式或儀表板的開發者,以及利用搜尋功能來強化 AI 處理流程與研究工作流程的系統。 其速度、靈活性與結構化輸出相結合的特點,使其特別適合於快速檢索相關網路資訊至關重要,同時又能控制結果呈現與排序的應用場景。

常見問題

如何對發送至web-search 技能的請求進行驗證?

您必須在請求標頭中包含您的 API 金鑰,格式為 `X-Subscription-Token:`。您可從 https://api.search.brave.com 取得金鑰。

我可以根據最新度或內容類型篩選結果嗎?

可以,此技能支援「過去一天」、「過去一週」、「過去一個月」或「過去一年」等新鮮度篩選條件,以及自訂日期範圍。您可透過 `result_filter` 參數,篩選新聞、影片、討論、常見問題等各類結果。

搜尋支援哪些 HTTP 方法?

同時支援 GET 和 POST 方法。若查詢內容較長或使用複雜的 Goggles 設定時,建議使用 POST 方法。

web-search 是否支援安全搜尋?

是的,您可以將 `safesearch` 參數設定為 `off`、`moderate` 或 `strict`,以控制成人內容的過濾。

什麼是 Goggles,它是如何運作的?

Goggles 是一項用於自訂搜尋結果排序的功能,可透過提供 URL 或內嵌設定來實現。它允許您對結果的評分與顯示方式進行細緻的控制。

在 GitHub 上查看

Web 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/web/search?q=python+web+frameworks" \  -H "Accept: application/json" \  -H "X-Subscription-Token: ${BRAVE_SEARCH_API_KEY}"

With Parameters

curl -s "https://api.search.brave.com/res/v1/web/search" \  -H "Accept: application/json" \  -H "X-Subscription-Token: ${BRAVE_SEARCH_API_KEY}" \  -G \  --data-urlencode "q=rust programming tutorials" \  --data-urlencode "country=US" \  --data-urlencode "search_lang=en" \  --data-urlencode "count=10" \  --data-urlencode "safesearch=moderate" \  --data-urlencode "freshness=pm"

Endpoint

GET https://api.search.brave.com/res/v1/web/searchPOST https://api.search.brave.com/res/v1/web/search

Note: Both GET and POST methods are supported. POST is useful for long queries or complex Goggles.

Authentication: X-Subscription-Token: <API_KEY> header

Optional Headers:

  • Accept-Encoding: gzip — Enable gzip compression

When to Use Web Search

FeatureWeb Search (this)LLM Context (llm-context)Answers (answers)
OutputStructured results (links, snippets, metadata)Pre-extracted page content for LLMsEnd-to-end AI answers with citations
Result typesWeb, news, videos, discussions, FAQ, infobox, locations, richExtracted text chunks, tables, codeSynthesized answer + source list
Unique featuresGoggles, structured data (schemas), rich callbacksToken budget control, threshold modesMulti-iteration search, streaming, OpenAI SDK compatible
SpeedFast (~0.5-1s)Fast (<1s)Slower (~30-180s)
Best forSearch UIs, data extraction, custom rankingRAG pipelines, AI agents, groundingChat interfaces, thorough research

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")
countintNo20Max results per page (1-20)
offsetintNo0Page offset for pagination (0-9)
safesearchstringNomoderateAdult content filter (off/moderate/strict)
freshnessstringNo-Time filter (pd/pw/pm/py or date range)
text_decorationsboolNotrueInclude highlight markers
spellcheckboolNotrueAuto-correct query
result_filterstringNo-Filter result types (comma-separated)
gogglesstringNo-Custom ranking filter (URL or inline)
extra_snippetsboolNo-Get up to 5 extra snippets per result
operatorsboolNotrueApply search operators
unitsstringNo-Measurement units (metric/imperial)
enable_rich_callbackboolNofalseEnable rich 3rd party data callback
include_fetch_metadataboolNofalseInclude fetched_content_timestamp on results

Freshness Values

ValueDescription
pdPast day (24 hours)
pwPast week (7 days)
pmPast month (31 days)
pyPast year (365 days)
YYYY-MM-DDtoYYYY-MM-DDCustom date range

Result Filter Values

Filter types: discussions, faq, infobox, news, query, videos, web, locations

# Only web and video resultscurl "...&result_filter=web,videos"

Location Headers (Optional)

For location-aware results, add these headers. Lat/Long is sufficient when coordinates are known — the other headers are only needed as a fallback when coordinates are unavailable.

HeaderTypeDescription
X-Loc-LatfloatUser latitude (-90.0 to 90.0)
X-Loc-LongfloatUser longitude (-180.0 to 180.0)
X-Loc-TimezonestringIANA timezone (e.g., "America/San_Francisco")
X-Loc-CitystringCity name
X-Loc-StatestringState/region code (ISO 3166-2)
X-Loc-State-NamestringState/region full name (e.g., "California")
X-Loc-Countrystring2-letter country code
X-Loc-Postal-CodestringPostal code (e.g., "94105")

Priority: X-Loc-Lat + X-Loc-Long take precedence. When provided, downstream services resolve the location directly from coordinates and the text-based headers (City, State, Country, Postal-Code) are not used for location resolution. Provide text-based headers only when you don't have coordinates. Sending both won't break anything — lat/long simply wins.

Response Format

Response Fields

FieldTypeDescription
typestringAlways "search"
query.originalstringThe original search query
query.alteredstring?Spellcheck-corrected query (if changed)
query.cleanedstring?Cleaned/normalized query
query.spellcheck_offbool?Whether spellcheck was disabled
query.more_results_availableboolWhether more pages exist
query.show_strict_warningbool?True if strict safesearch blocked adult results
query.search_operatorsobject?Applied search operators (applied, cleaned_query, sites)
web.typestringAlways "search"
web.results[].titlestringPage title
web.results[].urlstringPage URL
web.results[].descriptionstring?Snippet/description text
web.results[].agestring?Human-readable age (e.g., "2 days ago")
web.results[].languagestring?Content language code
web.results[].meta_urlobjectURL components (scheme, netloc, hostname, path)
web.results[].thumbnailobject?Thumbnail (src, original)
web.results[].thumbnail.originalstring?Original full-size image URL
web.results[].thumbnail.logobool?Whether the thumbnail is a logo
web.results[].profileobject?Publisher identity (name, url, long_name, img)
web.results[].page_agestring?ISO datetime of publication (e.g., "2025-04-12T14:22:41")
web.results[].extra_snippetslist[str]?Up to 5 additional excerpts
web.results[].deep_resultsobject?Additional links (buttons, links) from the page
web.results[].schemaslist?Raw schema.org structured data
web.results[].productobject?Product info and reviews
web.results[].recipeobject?Recipe details (ingredients, time, ratings)
web.results[].articleobject?Article metadata (author, publisher, date)
web.results[].bookobject?Book info (author, ISBN, rating)
web.results[].softwareobject?Software product info
web.results[].ratingobject?Aggregate ratings
web.results[].faqobject?FAQ found on the page
web.results[].movieobject?Movie info (directors, actors, genre)
web.results[].videoobject?Video metadata (duration, views, creator)
web.results[].locationobject?Location/restaurant details
web.results[].qaobject?Question/answer info
web.results[].creative_workobject?Creative work data
web.results[].music_recordingobject?Music/song data
web.results[].organizationobject?Organization info
web.results[].reviewobject?Review data
web.results[].content_typestring?Content type classification
web.results[].fetched_content_timestampint?Fetch timestamp (with include_fetch_metadata=true)
web.mutated_by_gogglesboolWhether results were re-ranked by Goggles
web.family_friendlyboolWhether results are family-friendly
mixedobject?Preferred display order (see Mixed Response below)
discussions.results[]array?Forum discussion clusters
discussions.results[].data.forum_namestring?Forum/community name
discussions.results[].data.num_answersint?Number of answers/replies
discussions.results[].data.questionstring?Discussion question
discussions.results[].data.top_commentstring?Top-voted comment excerpt
faq.results[]array?FAQ entries
news.results[]array?News articles
videos.results[]array?Video results
infobox.results[]array?Knowledge graph entries
locations.results[]array?Local POI results
rich.hint.verticalstring?Rich result type
rich.hint.callback_keystring?Callback key for rich data

JSON Example

{  "type": "search",  "query": {    "original": "python frameworks",    "altered": "python web frameworks",    "spellcheck_off": false,    "more_results_available": true  },  "web": {    "type": "search",    "results": [      {        "title": "Top Python Web Frameworks",        "url": "https://example.com/python-frameworks",        "description": "A comprehensive guide to Python web frameworks...",        "age": "2 days ago",        "language": "en",        "meta_url": {          "scheme": "https",          "netloc": "example.com",          "hostname": "example.com",          "path": "/python-frameworks"        },        "thumbnail": {          "src": "https://...",          "original": "https://original-image-url.com/img.jpg"        },        "extra_snippets": ["Additional excerpt 1...", "Additional excerpt 2..."]      }    ],    "family_friendly": true  },  "mixed": {    "type": "mixed",    "main": [      {"type": "web", "index": 0, "all": false},      {"type": "web", "index": 1, "all": false},      {"type": "videos", "all": true}    ],    "top": [],    "side": []  },  "videos": { "...": "..." },  "news": { "...": "..." },  "rich": {    "type": "rich",    "hint": {      "vertical": "weather",      "callback_key": "<callback_key_hex>"    }  }}

Mixed Response

The mixed object defines the preferred display order of results across types. It contains three arrays:

ArrayPurpose
mainPrimary result list (ordered sequence of results to display)
topResults to display above main results
sideResults to display alongside main results (e.g., infobox)

Each entry is a ResultReference with type (e.g., "web", "videos"), index (into the corresponding result array), and all (true to include all results of that type at this position).

Search Operators

OperatorSyntaxDescription
Sitesite:example.comLimit results to a specific domain
File extensionext:pdfResults with a specific file extension
File typefiletype:pdfResults created in a specific file type
In titleintitle:pythonPages with term in the title
In bodyinbody:tutorialPages with term in the body
In pageinpage:guidePages with term in title or body
Languagelang:esPages in a specific language (ISO 639-1)
Locationloc:usPages from a specific country (ISO 3166-1 alpha-2)
Include+termForce inclusion of a term
Exclude-termExclude pages containing the term
Exact match"exact phrase"Match the exact phrase in order
ANDterm1 AND term2Both terms required (uppercase)
OR / NOTterm1 OR term2, NOT termLogical operators (uppercase)

Set operators=false to disable operator parsing.

Goggles (Custom Ranking) — Unique to Brave

Goggles let you re-rank search results — boost trusted sources, suppress SEO spam, or build focused search scopes.

MethodExample
Hosted--data-urlencode "goggles=https://raw.githubusercontent.com/brave/goggles-quickstart/main/goggles/rust_programming.goggle"
Inline--data-urlencode 'goggles=$discard$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 (%0A).

Allow list: $discard$site=docs.python.org$site=developer.mozilla.org — Block list: $discard,site=pinterest.com$discard,site=quora.com

Resources: Discover · Syntax · Quickstart

Rich Data Enrichments

For queries about weather, stocks, sports, currency, etc., use the rich callback workflow:

# 1. Search with rich callback enabledcurl -s "https://api.search.brave.com/res/v1/web/search?q=weather+san+francisco&enable_rich_callback=true" \  -H "X-Subscription-Token: ${BRAVE_SEARCH_API_KEY}"# Response includes: "rich": {"hint": {"callback_key": "abc123...", "vertical": "weather"}}# 2. Get rich data with the callback keycurl -s "https://api.search.brave.com/res/v1/web/rich?callback_key=abc123..." \  -H "X-Subscription-Token: ${BRAVE_SEARCH_API_KEY}"

Supported Rich Types: Calculator, Definitions, Unit Conversion, Unix Timestamp, Package Tracker, Stock, Currency, Cryptocurrency, Weather, American Football, Baseball, Basketball, Cricket, Football/Soccer, Ice Hockey, Web3, Translator

Rich Callback Endpoint

GET https://api.search.brave.com/res/v1/web/rich
ParameterTypeRequiredDescription
callback_keystringYesCallback key from the web search rich.hint.callback_key field

Use Cases

  • General-purpose search integration: Richest result set (web, news, videos, discussions, FAQ, infobox, locations) in one call. For RAG/LLM grounding, prefer llm-context.
  • Structured data extraction: Products, recipes, ratings, articles via schemas and typed fields on results.
  • Custom search with Goggles: Unique to Brave. Boost/discard sites with inline rules or hosted Goggles for fully customized ranking.

Notes

  • Pagination: Use offset (0-9) with count to page through results
  • Count: Max 20 for web search; actual results may be less than requested

所有檔案

1 個檔案

安裝 web-search

請下載並將技能檔案解壓縮至您的 .claude/skills/ 目錄中。

下載 ZIP

複製儲存庫並將技能檔案複製到您的專案中。

git clone https://github.com/brave/brave-search-skills/blob/main/skills/web-search/SKILL.md # Copy SKILL.md to your .claude/skills/ directory

複製 複製
快速設定: 將技能資料夾複製到 .claude/skills/,Claude 會自動偵測並使用該技能

相關技能

webapp-testing
更新時間 2026-06-29
agentmail
更新時間 2026-06-29
lark-base
更新時間 2026-07-05
computer-use
更新時間 2026-07-29
OR