web-search
brave/brave-search-skills
UTILIZAR PARA pesquisa na web. Retorna resultados classificados com trechos, URLs e miniaturas. Suporta filtros de atualização, SafeSearch, Goggles para classificação personalizada e paginação. Ponto de acesso principal para pesquisa.
...Expandir tudoSobre web-search
A habilidade “ web-search ” oferece acesso programático ao mecanismo de busca Brave Search, permitindo que os usuários realizem buscas online e obtenham resultados estruturados. Essa habilidade foi projetada para retornar resultados de busca classificados que incluem trechos, URLs, miniaturas e metadados, ajudando desenvolvedores e aplicativos a integrar a funcionalidade de busca na web diretamente em seus fluxos de trabalho. Ao oferecer suporte a recursos como o SafeSearch, filtros de atualidade e classificação personalizada por meio do Goggles, ela resolve o problema de obter rapidamente informações relevantes e filtradas da web em um formato estruturado adequado para sistemas automatizados e interfaces de usuário.
A skill suporta os métodos HTTP GET e POST, tornando-a flexível para lidar com consultas simples ou consultas complexas e mais longas, que podem incluir configurações do Goggles para classificação personalizada de resultados. Os parâmetros permitem um controle preciso sobre a pesquisa, incluindo país, idioma, número de resultados, filtragem de conteúdo, intervalos de datas e recursos adicionais, como formatação de texto, verificação ortográfica e callbacks avançados. As opções de atualização e filtragem de resultados permitem que os usuários restrinjam as buscas a intervalos de tempo específicos ou tipos de resultados, como notícias, vídeos, discussões e muito mais. A autenticação é gerenciada por meio de uma chave de API, garantindo acesso seguro ao serviço.
Web-search É ideal para desenvolvedores que criam interfaces de busca, ferramentas de extração de dados ou aplicativos que exigem acesso em alta velocidade a resultados de busca selecionados. Os usuários-alvo incluem aqueles que criam interfaces de usuário de busca, agentes ou painéis que precisam de dados estruturados da web, bem como sistemas que utilizam a busca para aprimorar pipelines de IA e fluxos de trabalho de pesquisa. Sua combinação de velocidade, flexibilidade e saída estruturada torna-o particularmente adequado para aplicativos em que a recuperação rápida de informações relevantes da web é fundamental, ao mesmo tempo em que oferece controle sobre a apresentação e a classificação dos resultados.
Perguntas frequentes
Como faço para autenticar solicitações à habilidade “ web-search ”?
Você deve incluir sua chave de API no cabeçalho da solicitação usando `X-Subscription-Token:
Posso filtrar os resultados por data de publicação ou tipo de conteúdo?
Sim, a skill suporta filtros de atualidade, como último dia, semana, mês ou ano, bem como intervalos de datas personalizados. Tipos de resultados como notícias, vídeos, discussões, perguntas frequentes e outros podem ser filtrados usando o parâmetro `result_filter`.
Quais métodos HTTP são suportados para a pesquisa?
Os métodos GET e POST são suportados. O POST é recomendado para consultas longas ou ao usar configurações complexas do Goggles.
O SafeSearch está disponível no web-search?
Sim, você pode definir o parâmetro `safesearch` como `off`, `moderate` ou `strict` para controlar a filtragem de conteúdo adulto.
O que é o Goggles e como ele funciona?
O Goggles é um recurso para classificação personalizada dos resultados de pesquisa, seja por meio de uma URL ou de uma configuração embutida. Ele permite um controle detalhado sobre como os resultados são pontuados e exibidos.
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
| Feature | Web Search (this) | LLM Context (llm-context) | Answers (answers) |
|---|---|---|---|
| Output | Structured results (links, snippets, metadata) | Pre-extracted page content for LLMs | End-to-end AI answers with citations |
| Result types | Web, news, videos, discussions, FAQ, infobox, locations, rich | Extracted text chunks, tables, code | Synthesized answer + source list |
| Unique features | Goggles, structured data (schemas), rich callbacks | Token budget control, threshold modes | Multi-iteration search, streaming, OpenAI SDK compatible |
| Speed | Fast (~0.5-1s) | Fast (<1s) | Slower (~30-180s) |
| Best for | Search UIs, data extraction, custom ranking | RAG pipelines, AI agents, grounding | Chat interfaces, thorough research |
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 | Max results per page (1-20) |
offset | int | No | 0 | Page offset for pagination (0-9) |
safesearch | string | No | moderate | Adult content filter (off/moderate/strict) |
freshness | string | No | - | Time filter (pd/pw/pm/py or date range) |
text_decorations | bool | No | true | Include highlight markers |
spellcheck | bool | No | true | Auto-correct query |
result_filter | string | No | - | Filter result types (comma-separated) |
goggles | string | No | - | Custom ranking filter (URL or inline) |
extra_snippets | bool | No | - | Get up to 5 extra snippets per result |
operators | bool | No | true | Apply search operators |
units | string | No | - | Measurement units (metric/imperial) |
enable_rich_callback | bool | No | false | Enable rich 3rd party data callback |
include_fetch_metadata | bool | No | false | Include fetched_content_timestamp on results |
Freshness Values
| Value | Description |
|---|---|
pd | Past day (24 hours) |
pw | Past week (7 days) |
pm | Past month (31 days) |
py | Past year (365 days) |
YYYY-MM-DDtoYYYY-MM-DD | Custom 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.
| Header | Type | Description |
|---|---|---|
X-Loc-Lat | float | User latitude (-90.0 to 90.0) |
X-Loc-Long | float | User longitude (-180.0 to 180.0) |
X-Loc-Timezone | string | IANA timezone (e.g., "America/San_Francisco") |
X-Loc-City | string | City name |
X-Loc-State | string | State/region code (ISO 3166-2) |
X-Loc-State-Name | string | State/region full name (e.g., "California") |
X-Loc-Country | string | 2-letter country code |
X-Loc-Postal-Code | string | Postal code (e.g., "94105") |
Priority:
X-Loc-Lat+X-Loc-Longtake 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
| Field | Type | Description |
|---|---|---|
type | string | Always "search" |
query.original | string | The original search query |
query.altered | string? | Spellcheck-corrected query (if changed) |
query.cleaned | string? | Cleaned/normalized query |
query.spellcheck_off | bool? | Whether spellcheck was disabled |
query.more_results_available | bool | Whether more pages exist |
query.show_strict_warning | bool? | True if strict safesearch blocked adult results |
query.search_operators | object? | Applied search operators (applied, cleaned_query, sites) |
web.type | string | Always "search" |
web.results[].title | string | Page title |
web.results[].url | string | Page URL |
web.results[].description | string? | Snippet/description text |
web.results[].age | string? | Human-readable age (e.g., "2 days ago") |
web.results[].language | string? | Content language code |
web.results[].meta_url | object | URL components (scheme, netloc, hostname, path) |
web.results[].thumbnail | object? | Thumbnail (src, original) |
web.results[].thumbnail.original | string? | Original full-size image URL |
web.results[].thumbnail.logo | bool? | Whether the thumbnail is a logo |
web.results[].profile | object? | Publisher identity (name, url, long_name, img) |
web.results[].page_age | string? | ISO datetime of publication (e.g., "2025-04-12T14:22:41") |
web.results[].extra_snippets | list[str]? | Up to 5 additional excerpts |
web.results[].deep_results | object? | Additional links (buttons, links) from the page |
web.results[].schemas | list? | Raw schema.org structured data |
web.results[].product | object? | Product info and reviews |
web.results[].recipe | object? | Recipe details (ingredients, time, ratings) |
web.results[].article | object? | Article metadata (author, publisher, date) |
web.results[].book | object? | Book info (author, ISBN, rating) |
web.results[].software | object? | Software product info |
web.results[].rating | object? | Aggregate ratings |
web.results[].faq | object? | FAQ found on the page |
web.results[].movie | object? | Movie info (directors, actors, genre) |
web.results[].video | object? | Video metadata (duration, views, creator) |
web.results[].location | object? | Location/restaurant details |
web.results[].qa | object? | Question/answer info |
web.results[].creative_work | object? | Creative work data |
web.results[].music_recording | object? | Music/song data |
web.results[].organization | object? | Organization info |
web.results[].review | object? | Review data |
web.results[].content_type | string? | Content type classification |
web.results[].fetched_content_timestamp | int? | Fetch timestamp (with include_fetch_metadata=true) |
web.mutated_by_goggles | bool | Whether results were re-ranked by Goggles |
web.family_friendly | bool | Whether results are family-friendly |
mixed | object? | Preferred display order (see Mixed Response below) |
discussions.results[] | array? | Forum discussion clusters |
discussions.results[].data.forum_name | string? | Forum/community name |
discussions.results[].data.num_answers | int? | Number of answers/replies |
discussions.results[].data.question | string? | Discussion question |
discussions.results[].data.top_comment | string? | 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.vertical | string? | Rich result type |
rich.hint.callback_key | string? | 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:
| Array | Purpose |
|---|---|
main | Primary result list (ordered sequence of results to display) |
top | Results to display above main results |
side | Results 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
| Operator | Syntax | Description |
|---|---|---|
| Site | site:example.com | Limit results to a specific domain |
| File extension | ext:pdf | Results with a specific file extension |
| File type | filetype:pdf | Results created in a specific file type |
| In title | intitle:python | Pages with term in the title |
| In body | inbody:tutorial | Pages with term in the body |
| In page | inpage:guide | Pages with term in title or body |
| Language | lang:es | Pages in a specific language (ISO 639-1) |
| Location | loc:us | Pages from a specific country (ISO 3166-1 alpha-2) |
| Include | +term | Force inclusion of a term |
| Exclude | -term | Exclude pages containing the term |
| Exact match | "exact phrase" | Match the exact phrase in order |
| AND | term1 AND term2 | Both terms required (uppercase) |
| OR / NOT | term1 OR term2, NOT term | Logical 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.
| Method | Example |
|---|---|
| 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
| Parameter | Type | Required | Description |
|---|---|---|---|
callback_key | string | Yes | Callback 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
schemasand 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) withcountto page through results - Count: Max 20 for web search; actual results may be less than requested
Instalar web-search
Baixe e extraia os arquivos de habilidades para o diretório .claude/skills/.
Baixar ZIPClone o repositório e copie os arquivos da habilidade para o seu projeto.
git clone https://github.com/brave/brave-search-skills/blob/main/skills/web-search/SKILL.md # Copy SKILL.md to your .claude/skills/ directory
Copiar





Lar
