·
Last changedVersion:
This version passed the hardening gate. Hardening applied 7 targeted changes and preserved all other text. Classified findings before hardening: 2. Classified findings closed: 0. Classified findings remaining: 2. Unclassified scanner findings remaining: 0. Review findings closed: 2. Review findings remaining: 13.
1
1
1
1
Expand | File | Group | Subtype | Severity | Status |
|---|---|---|---|---|---|
SKILL.md | Sensitive Data & Secret Exposure | Data exfiltration | Medium | Open | |
SKILL.md | Prompt Injection | Third-party content as instructions | Low | Open |
2 findings
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| 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 ( | 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 |
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| string | Yes | - | Search query (1-400 chars, max 50 words) |
| string | No |
| Search country (2-letter country code or |
| string | No |
| Language preference (2+ char language code) |
| string | No |
| UI language (e.g., "en-US") |
| int | No |
| Max results per page (1-20) |
| int | No |
| Page offset for pagination (0-9) |
| string | No |
| Adult content filter ( |
| string | No | - | Time filter ( |
| bool | No |
| Include highlight markers |
| bool | No |
| Auto-correct query |
| string | No | - | Filter result types (comma-separated) |
| string | No | - | Custom ranking filter (URL or inline) |
| bool | No | - | Get up to 5 extra snippets per result |
| bool | No |
| Apply search operators |
| string | No | - | Measurement units ( |
| bool | No |
| Enable rich 3rd party data callback |
| bool | No |
| Include |
| Value | Description |
|---|---|
| Past day (24 hours) |
| Past week (7 days) |
| Past month (31 days) |
| Past year (365 days) |
| Custom date range |
Filter types: discussions, faq, infobox, news, query, videos, web, locations
For location-aware results, add these headers.
| Header | Type | Description |
|---|---|---|
| float | User latitude (-90.0 to 90.0) |
| float | User longitude (-180.0 to 180.0) |
| string | IANA timezone |
| string | City name |
| string | State/region code (ISO 3166-2) |
| string | State/region full name (e.g., "California") |
| string | 2-letter country code |
| string | Postal code (e.g., "94105") |
| Field | Type | Description |
|---|---|---|
| string | Always |
| string | The original search query |
| string? | Spellcheck-corrected query (if changed) |
| string? | Cleaned/normalized query |
| bool? | Whether spellcheck was disabled |
| bool | Whether more pages exist |
| bool? | True if strict safesearch blocked adult results |
| object? | Applied search operators ( |
| string | Always |
| string | Page title |
| string | Page URL |
| string? | Snippet/description text |
| string? | Human-readable age (e.g., "2 days ago") |
| string? | Content language code |
| object | URL components ( |
| object? | Thumbnail ( |
| string? | Original full-size image URL |
| bool? | Whether the thumbnail is a logo |
| object? | Publisher identity ( |
| string? | ISO datetime of publication (e.g., |
| list[str]? | Up to 5 additional excerpts |
| object? | Additional links ( |
| list? | Raw schema.org structured data |
| object? | Product info and reviews |
| object? | Recipe details (ingredients, time, ratings) |
| object? | Article metadata (author, publisher, date) |
| object? | Book info (author, ISBN, rating) |
| object? | Software product info |
| object? | Aggregate ratings |
| object? | FAQ found on the page |
| object? | Movie info (directors, actors, genre) |
| object? | Video metadata (duration, views, creator) |
| object? | Location/restaurant details |
| object? | Question/answer info |
| object? | Creative work data |
| object? | Music/song data |
| object? | Organization info |
| object? | Review data |
| string? | Content type classification |
| int? | Fetch timestamp (with |
| bool | Whether results were re-ranked by Goggles |
| bool | Whether results are family-friendly |
| object? | Preferred display order (see Mixed Response below) |
| array? | Forum discussion clusters |
| string? | Forum/community name |
| int? | Number of answers/replies |
| string? | Discussion question |
| string? | Top-voted comment excerpt |
| array? | FAQ entries |
| array? | News articles |
| array? | Video results |
| array? | Knowledge graph entries |
| array? | Local POI results |
| string? | Rich result type |
| string? | Callback key for rich data |
The mixed object defines the preferred display order of results across types. It contains three arrays:
| Array | Purpose |
|---|---|
| Primary result list (ordered sequence of results to display) |
| Results to display above main results |
| 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).
| Operator | Syntax | Description |
|---|---|---|
Site |
| Limit results to a specific domain |
File extension |
| Results with a specific file extension |
File type |
| Results created in a specific file type |
In title |
| Pages with term in the title |
In body |
| Pages with term in the body |
In page |
| Pages with term in title or body |
Language |
| Pages in a specific language (ISO 639-1) |
Location |
| Pages from a specific country (ISO 3166-1 alpha-2) |
Include |
| Force inclusion of a term |
Exclude |
| Exclude pages containing the term |
Exact match |
| Match the exact phrase in order |
AND |
| Both terms required (uppercase) |
OR / NOT |
| Logical operators (uppercase) |
Set operators=false to disable operator parsing.
Goggles let you re-rank search results — boost trusted sources, suppress SEO spam, or build focused search scopes.
| Method | Example |
|---|---|
Inline |
|
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 · Syntax · Quickstart
For queries about weather, stocks, sports, currency, etc., use the rich callback workflow:
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
| Parameter | Type | Required | Description |
|---|---|---|---|
| string | Yes | Callback key from the web search |
llm-context.schemas and typed fields on results.offset (0-9) with count to page through resultsGet started with chainctlchainctl skill install public/brave/web-search:latest
Bring Chainguard's hardening pipeline to your first-party skills — custom rulesets, automated remediation, full audit trail.
skills.cgr.dev/public/github.com/brave/skills/web-search:latest
MIT
HARDENING.md
LICENSE
SKILL.md