diff --git a/src/assets/docs/agent-connectors/brave-search/add-connected-account.png b/src/assets/docs/agent-connectors/brave-search/add-connected-account.png
new file mode 100644
index 000000000..514fa1e0d
Binary files /dev/null and b/src/assets/docs/agent-connectors/brave-search/add-connected-account.png differ
diff --git a/src/assets/docs/agent-connectors/brave-search/add-credentials.png b/src/assets/docs/agent-connectors/brave-search/add-credentials.png
new file mode 100644
index 000000000..7fa1f09f5
Binary files /dev/null and b/src/assets/docs/agent-connectors/brave-search/add-credentials.png differ
diff --git a/src/assets/docs/agent-connectors/brave-search/create-api-key.png b/src/assets/docs/agent-connectors/brave-search/create-api-key.png
new file mode 100644
index 000000000..34dd15a15
Binary files /dev/null and b/src/assets/docs/agent-connectors/brave-search/create-api-key.png differ
diff --git a/src/components/templates/agent-connectors/_setup-brave-search.mdx b/src/components/templates/agent-connectors/_setup-brave-search.mdx
new file mode 100644
index 000000000..6b642e8e5
--- /dev/null
+++ b/src/components/templates/agent-connectors/_setup-brave-search.mdx
@@ -0,0 +1,83 @@
+import { Steps, Aside, Tabs, TabItem } from '@astrojs/starlight/components'
+
+Register your Brave Search API key with Scalekit so it can authenticate and proxy search requests on behalf of your users. Unlike OAuth connectors, Brave Search uses API key authentication — there is no redirect URI or OAuth flow.
+
+
+1. ## Get a Brave Search API key
+
+ - Go to [api.search.brave.com](https://api.search.brave.com) and sign in or create a free account.
+
+ - In the left sidebar, click **API Keys** → **+ New Key**. Give it a name (e.g., `Agent Auth`) and click **Create**.
+
+ - Copy the key immediately — it is shown only once.
+
+ 
+
+
+
+2. ## Create a connection in Scalekit
+
+ - In [Scalekit dashboard](https://app.scalekit.com), go to **Agent Auth** → **Create Connection**. Find **Brave Search** and click **Create**.
+
+ - Note the **Connection name** — you will use this as `connection_name` in your code (e.g., `brave-search`).
+
+ 
+
+3. ## Add a connected account
+
+ Connected accounts link a specific user identifier in your system to a Brave Search API key. Add them via the dashboard for testing, or via the Scalekit API in production.
+
+ **Via dashboard (for testing)**
+
+ - Open the connection you created and click the **Connected Accounts** tab → **Add account**.
+
+ - Fill in:
+ - **Your User's ID** — a unique identifier for this user in your system (e.g., `user_123`)
+ - **API Key** — the Brave Search API key you copied in step 1
+
+ - Click **Save**.
+
+ 
+
+ **Via API (for production)**
+
+
+
+ ```typescript
+ await scalekit.actions.upsertConnectedAccount({
+ connectionName: 'brave-search',
+ identifier: 'user_123', // your user's unique ID
+ credentials: { api_key: 'BSA...' },
+ });
+ ```
+
+
+ ```python
+ scalekit_client.actions.upsert_connected_account(
+ connection_name="brave-search",
+ identifier="user_123",
+ credentials={"api_key": "BSA..."}
+ )
+ ```
+
+
+
+
+
+
+
diff --git a/src/components/templates/agent-connectors/_usage-brave-search.mdx b/src/components/templates/agent-connectors/_usage-brave-search.mdx
new file mode 100644
index 000000000..724286877
--- /dev/null
+++ b/src/components/templates/agent-connectors/_usage-brave-search.mdx
@@ -0,0 +1,296 @@
+import { Tabs, TabItem, Aside } from '@astrojs/starlight/components'
+
+Once a connected account is set up, make search API calls through the Scalekit proxy. Scalekit injects the Brave Search API key automatically as the `X-Subscription-Token` header — you never handle credentials in your application code.
+
+You can interact with Brave Search in two ways — via direct proxy API calls or via Scalekit optimized tool calls. Scroll down to see the list of available Scalekit tools.
+
+## Proxy API calls
+
+
+
+ ```typescript
+ import { ScalekitClient } from '@scalekit-sdk/node';
+ import 'dotenv/config';
+
+ const connectionName = 'brave-search'; // connection name from your Scalekit dashboard
+ const identifier = 'user_123'; // your user's unique identifier
+
+ // Get your credentials from app.scalekit.com → Developers → Settings → API Credentials
+ const scalekit = new ScalekitClient(
+ process.env.SCALEKIT_ENV_URL,
+ process.env.SCALEKIT_CLIENT_ID,
+ process.env.SCALEKIT_CLIENT_SECRET
+ );
+ const actions = scalekit.actions;
+
+ // Web search via Scalekit proxy — no API key needed here
+ const result = await actions.request({
+ connectionName,
+ identifier,
+ path: '/res/v1/web/search',
+ method: 'GET',
+ queryParams: { q: 'best open source LLM frameworks 2025', count: '5' },
+ });
+ console.log(result.data.web.results);
+ ```
+
+
+ ```python
+ import scalekit.client, os
+ from dotenv import load_dotenv
+ load_dotenv()
+
+ connection_name = "brave-search" # connection name from your Scalekit dashboard
+ identifier = "user_123" # your user's unique identifier
+
+ # Get your credentials from app.scalekit.com → Developers → Settings → API Credentials
+ scalekit_client = scalekit.client.ScalekitClient(
+ client_id=os.getenv("SCALEKIT_CLIENT_ID"),
+ client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"),
+ env_url=os.getenv("SCALEKIT_ENV_URL"),
+ )
+ actions = scalekit_client.actions
+
+ # Web search via Scalekit proxy — no API key needed here
+ result = actions.request(
+ connection_name=connection_name,
+ identifier=identifier,
+ path="/res/v1/web/search",
+ method="GET",
+ params={"q": "best open source LLM frameworks 2025", "count": 5}
+ )
+ print(result["web"]["results"])
+ ```
+
+
+
+
+
+## Scalekit tools
+
+Use `actions.execute_tool()` to call Brave Search tools directly. Scalekit injects credentials automatically — your application code never handles the API key.
+
+### Web search
+
+Search the web and retrieve real-time results. Works on all plans including Free.
+
+```python title="examples/brave_web_search.py"
+import os
+from scalekit.client import ScalekitClient
+
+scalekit_client = ScalekitClient(
+ client_id=os.environ["SCALEKIT_CLIENT_ID"],
+ client_secret=os.environ["SCALEKIT_CLIENT_SECRET"],
+ env_url=os.environ["SCALEKIT_ENV_URL"],
+)
+
+# Ensure a connected account exists for this user before making tool calls
+scalekit_client.actions.get_or_create_connected_account(
+ connection_name="brave-search",
+ identifier="user_123",
+)
+
+# Search for recent articles — freshness "pw" limits results to the past 7 days
+result = scalekit_client.actions.execute_tool(
+ connection_name="brave-search",
+ identifier="user_123",
+ tool_name="brave_web_search",
+ input={
+ "q": "open source LLM frameworks 2025",
+ "count": 5,
+ "freshness": "pw",
+ },
+)
+
+for item in result["web"]["results"]:
+ print(item["title"], item["url"])
+```
+
+### News search
+
+Retrieve recent news articles by topic or keyword. Useful for monitoring a brand, topic, or competitor.
+
+```python title="examples/brave_news_search.py"
+# Fetch the latest news on a topic from the past 24 hours
+result = scalekit_client.actions.execute_tool(
+ connection_name="brave-search",
+ identifier="user_123",
+ tool_name="brave_news_search",
+ input={
+ "q": "AI regulation Europe",
+ "count": 10,
+ "freshness": "pd", # pd = past 24 hours
+ },
+)
+
+for article in result["results"]:
+ print(article["title"], article["age"], article["url"])
+```
+
+### LLM grounding context
+
+Retrieve search results structured specifically for grounding LLM responses. Requires Pro plan. Use `token_budget` to stay within your model's context window.
+
+```python title="examples/brave_llm_context.py"
+# Get search context sized to fit a 4 000-token budget
+result = scalekit_client.actions.execute_tool(
+ connection_name="brave-search",
+ identifier="user_123",
+ tool_name="brave_llm_context",
+ input={
+ "q": "vector database comparison 2025",
+ "count": 5,
+ "token_budget": 4000,
+ },
+)
+
+# Pass the structured context directly to your LLM
+grounding_context = result["context"]
+print(grounding_context)
+```
+
+### AI chat completions grounded in search
+
+Get an AI-generated answer backed by real-time Brave Search results, using an OpenAI-compatible interface. Requires AI plan.
+
+```python title="examples/brave_chat_completions.py"
+# Drop-in replacement for OpenAI /v1/chat/completions — results are grounded in live search
+result = scalekit_client.actions.execute_tool(
+ connection_name="brave-search",
+ identifier="user_123",
+ tool_name="brave_chat_completions",
+ input={
+ "messages": [
+ {"role": "user", "content": "What are the latest developments in quantum computing?"}
+ ],
+ "model": "brave/serp-claude-3-5-haiku",
+ },
+)
+
+print(result["choices"][0]["message"]["content"])
+# Each answer includes citations back to source URLs
+for source in result.get("search_results", []):
+ print(source["title"], source["url"])
+```
+
+### Local place search and POI details
+
+Find nearby businesses or points of interest, then retrieve full details. Requires Data for AI plan.
+
+```python title="examples/brave_local_search.py"
+# Step 1: Find coffee shops near San Francisco city centre
+places = scalekit_client.actions.execute_tool(
+ connection_name="brave-search",
+ identifier="user_123",
+ tool_name="brave_local_place_search",
+ input={
+ "q": "specialty coffee",
+ "location": "San Francisco, CA",
+ "count": 5,
+ },
+)
+
+location_ids = [p["id"] for p in places["results"]]
+
+# Step 2: Fetch rich details (hours, ratings, address) for those locations
+# Location IDs expire after ~8 hours — always fetch details in the same session
+pois = scalekit_client.actions.execute_tool(
+ connection_name="brave-search",
+ identifier="user_123",
+ tool_name="brave_local_pois",
+ input={"ids": location_ids},
+)
+
+for poi in pois["results"]:
+ print(poi["name"], poi["address"], poi["rating"])
+```
+
+### AI summary with follow-up queries
+
+Get an AI-generated summary for a search query, then surface follow-up questions. Requires Pro plan.
+
+```python title="examples/brave_summarizer.py"
+# Step 1: Web search with summary: true to obtain a summarizer key
+search_result = scalekit_client.actions.execute_tool(
+ connection_name="brave-search",
+ identifier="user_123",
+ tool_name="brave_web_search",
+ input={
+ "q": "benefits of RAG vs fine-tuning for enterprise LLMs",
+ "summary": True,
+ "count": 5,
+ },
+)
+
+summarizer_key = search_result["summarizer"]["key"]
+
+# Step 2: Retrieve the full AI summary using the key
+summary = scalekit_client.actions.execute_tool(
+ connection_name="brave-search",
+ identifier="user_123",
+ tool_name="brave_summarizer_search",
+ input={"key": summarizer_key, "entity_info": True},
+)
+
+print(summary["title"])
+print(summary["summary"])
+
+# Step 3: Get follow-up questions for a conversational search experience
+followups = scalekit_client.actions.execute_tool(
+ connection_name="brave-search",
+ identifier="user_123",
+ tool_name="brave_summarizer_followups",
+ input={"key": summarizer_key},
+)
+
+for q in followups["queries"]:
+ print("-", q)
+```
+
+### LangChain integration
+
+Use Scalekit's LangChain helper to load all Brave Search tools into a LangChain agent. The agent selects and calls the right tool automatically based on the user's query.
+
+```python title="examples/brave_langchain_agent.py"
+import os
+from langchain.agents import AgentExecutor, create_tool_calling_agent
+from langchain_anthropic import ChatAnthropic
+from langchain_core.prompts import ChatPromptTemplate
+from scalekit.client import ScalekitClient
+
+scalekit_client = ScalekitClient(
+ client_id=os.environ["SCALEKIT_CLIENT_ID"],
+ client_secret=os.environ["SCALEKIT_CLIENT_SECRET"],
+ env_url=os.environ["SCALEKIT_ENV_URL"],
+)
+
+# Load all Brave Search tools — Scalekit handles auth for each call
+tools = scalekit_client.actions.langchain.get_tools(
+ providers=["BRAVE_SEARCH"],
+ identifier="user_123",
+)
+
+llm = ChatAnthropic(
+ model="claude-sonnet-4-6",
+ api_key=os.environ["ANTHROPIC_API_KEY"],
+)
+
+prompt = ChatPromptTemplate.from_messages([
+ ("system", "You are a helpful research assistant with access to Brave Search tools."),
+ ("human", "{input}"),
+ ("placeholder", "{agent_scratchpad}"),
+])
+
+agent = create_tool_calling_agent(llm, tools, prompt)
+agent_executor = AgentExecutor(agent=agent, tools=tools, verbose=True)
+
+response = agent_executor.invoke({
+ "input": (
+ "Find the top 5 news articles about AI regulation in Europe from the past week "
+ "and give me a one-sentence summary of each."
+ )
+})
+print(response["output"])
+```
diff --git a/src/components/templates/agent-connectors/index.ts b/src/components/templates/agent-connectors/index.ts
index ac59762eb..5be441ef2 100644
--- a/src/components/templates/agent-connectors/index.ts
+++ b/src/components/templates/agent-connectors/index.ts
@@ -3,6 +3,7 @@ export { default as SetupApolloSection } from './_setup-apollo.mdx'
export { default as SetupAttioSection } from './_setup-attio.mdx'
export { default as SetupAsanaSection } from './_setup-asana.mdx'
export { default as SetupBigquerySection } from './_setup-bigquery.mdx'
+export { default as SetupBraveSearchSection } from './_setup-brave-search.mdx'
export { default as SetupClickupSection } from './_setup-clickup.mdx'
export { default as SetupConfluenceSection } from './_setup-confluence.mdx'
export { default as SetupDropboxSection } from './_setup-dropbox.mdx'
@@ -50,6 +51,7 @@ export { default as UsageChorusSection } from './_usage-chorus.mdx'
export { default as UsageClariCopilotSection } from './_usage-clari_copilot.mdx'
export { default as UsageClickupSection } from './_usage-clickup.mdx'
export { default as UsageConfluenceSection } from './_usage-confluence.mdx'
+export { default as UsageBraveSearchSection } from './_usage-brave-search.mdx'
export { default as UsageDropboxSection } from './_usage-dropbox.mdx'
export { default as UsageExaSection } from './_usage-exa.mdx'
export { default as UsageFathomSection } from './_usage-fathom.mdx'
diff --git a/src/content/docs/reference/agent-connectors/brave-search.mdx b/src/content/docs/reference/agent-connectors/brave-search.mdx
new file mode 100644
index 000000000..beb992c85
--- /dev/null
+++ b/src/content/docs/reference/agent-connectors/brave-search.mdx
@@ -0,0 +1,309 @@
+---
+title: Brave Search
+description: Connect to Brave Search to run privacy-first web, news, and local searches, retrieve AI summaries, get LLM grounding context, and use search-backed chat completions.
+tags: [agent-connectors, brave-search, search, ai, privacy, news, local, summarizer, llm, integration, tool]
+tableOfContents: true
+sidebar:
+ label: Brave Search
+head:
+ - tag: style
+ content: |
+ .sl-markdown-content h2 {
+ font-size: var(--sl-text-xl);
+ }
+ table td:first-child, table th:first-child {
+ white-space: nowrap;
+ }
+---
+
+import { Card, CardGrid, Tabs, TabItem, Badge, Steps, Aside, Code } from '@astrojs/starlight/components'
+import { Accordion, AccordionItem } from 'accessible-astro-components'
+import { SetupBraveSearchSection } from '@components/templates'
+import { UsageBraveSearchSection } from '@components/templates'
+
+
+
+ Connect to Brave Search to run privacy-first web, news, image, video, and local searches; retrieve AI-generated summaries and entity data; get LLM-optimized context for grounding; and use OpenAI-compatible chat completions backed by real-time search results.
+
+
+
+
+
+
+Supports authentication:
+
+
+What you can build with this connector
+
+| Use case | Tools involved |
+|---|---|
+| **Real-time web research** | `brave_web_search` → feed results into LLM context |
+| **News monitoring** | `brave_news_search` with `freshness: pd` → summarise headlines |
+| **LLM grounding** | `brave_llm_context` → pass structured snippets directly to your model |
+| **Search-augmented chat** | `brave_chat_completions` with conversation history → cited AI answers |
+| **Local business lookup** | `brave_local_place_search` → `brave_local_pois` → display hours, ratings, address |
+| **AI summaries with follow-ups** | `brave_web_search` (summary: true) → `brave_summarizer_search` → `brave_summarizer_followups` |
+
+**Key concepts:**
+- **Plan tiers**: Free covers core search. Pro adds `brave_llm_context` and summarizer tools. AI plan adds `brave_chat_completions`. Data for AI plan adds local/POI tools.
+- **Summarizer two-step**: First call `brave_web_search` with `summary: true` to get a `summarizer.key`, then pass that key to `brave_summarizer_*` tools.
+- **LLM context vs web search**: `brave_llm_context` returns token-budgeted, snippet-optimised output specifically for grounding — prefer it over raw web search results when feeding an LLM.
+- **Rate limits**: Free plan allows 1 req/s. Paid plans scale to 20 req/s. Handle `429` errors with backoff.
+
+
+
+
+
+## Set up the agent connector
+
+
+
+## Usage
+
+
+
+## Tool list
+
+The following tools are available when you connect a Brave Search account. Each tool maps to a Brave Search API endpoint. Required plan is noted per tool.
+
+## `brave_web_search`
+
+Search the web using Brave's privacy-focused search engine. Returns real-time results including web pages, news, videos, images, and rich data. Supports filtering by country, language, recency, and custom re-ranking via Goggles.
+
+**Required plan**: Free and above.
+
+| Name | Type | Required | Description |
+| --- | --- | --- | --- |
+| `q` | string | Yes | Search query. Maximum 400 characters, 50 words. |
+| `country` | string | No | Country code (ISO 3166-1 alpha-2, e.g., `US`, `GB`, `DE`) to localise results. |
+| `search_lang` | string | No | Language of search results (ISO 639-1, e.g., `en`, `fr`, `de`). |
+| `ui_lang` | string | No | UI language for rendering result labels (e.g., `en-US`). |
+| `count` | integer | No | Number of results per page (1–20, default 20). |
+| `offset` | integer | No | Pagination offset (0–9). Use with `count` to page through up to 200 results. |
+| `safesearch` | string | No | Content filter: `off`, `moderate` (default), or `strict`. |
+| `freshness` | string | No | Recency filter: `pd` (24 h), `pw` (7 days), `pm` (31 days), `py` (1 year), or a date range `YYYY-MM-DDtoYYYY-MM-DD`. |
+| `text_decorations` | boolean | No | Include bold markers in result snippets for query-term highlighting. |
+| `spellcheck` | boolean | No | Automatically spellcheck the query before searching. |
+| `goggles_id` | string | No | URL of a Goggles re-ranking file for custom result ordering. |
+| `units` | string | No | Unit system for unit-sensitive results: `metric` or `imperial`. |
+| `extra_snippets` | boolean | No | Return up to 5 additional snippets per result. **Requires Pro plan.** |
+| `summary` | boolean | No | Request an AI summarizer key in the response for use with `brave_summarizer_*` tools. **Requires Pro plan.** |
+
+## `brave_news_search`
+
+Search for recent news articles using Brave Search. Returns results with titles, URLs, snippets, publication dates, and source information. Supports filtering by country, language, and recency.
+
+**Required plan**: Free and above.
+
+| Name | Type | Required | Description |
+| --- | --- | --- | --- |
+| `q` | string | Yes | News search query. |
+| `country` | string | No | Country code (ISO 3166-1 alpha-2) to localise news results. |
+| `search_lang` | string | No | Language of news results (ISO 639-1). |
+| `count` | integer | No | Number of results (1–20, default 20). |
+| `offset` | integer | No | Pagination offset (0–4). |
+| `freshness` | string | No | Recency filter: `pd` (24 h), `pw` (7 days), `pm` (31 days). |
+| `extra_snippets` | boolean | No | Return additional text snippets per result. **Requires Pro plan.** |
+| `goggles_id` | string | No | URL of a Goggles re-ranking file. |
+| `safesearch` | string | No | Content filter: `off`, `moderate` (default), or `strict`. |
+| `spellcheck` | boolean | No | Automatically spellcheck the query before searching. |
+
+## `brave_image_search`
+
+Search for images using Brave Search. Returns image results with thumbnails, source URLs, dimensions, and metadata.
+
+**Required plan**: Free and above.
+
+| Name | Type | Required | Description |
+| --- | --- | --- | --- |
+| `q` | string | Yes | Image search query. |
+| `country` | string | No | Country code (ISO 3166-1 alpha-2) to localise results. |
+| `search_lang` | string | No | Language filter (ISO 639-1). |
+| `count` | integer | No | Number of image results to return (1–3 per API call). |
+| `safesearch` | string | No | Content filter: `off`, `moderate` (default), or `strict`. |
+| `spellcheck` | boolean | No | Automatically spellcheck the query before searching. |
+
+## `brave_video_search`
+
+Search for videos using Brave Search. Returns results with titles, URLs, thumbnails, durations, and publisher metadata.
+
+**Required plan**: Free and above.
+
+| Name | Type | Required | Description |
+| --- | --- | --- | --- |
+| `q` | string | Yes | Video search query. |
+| `country` | string | No | Country code (ISO 3166-1 alpha-2) to localise results. |
+| `search_lang` | string | No | Language filter (ISO 639-1). |
+| `count` | integer | No | Number of results (1–20, default 20). |
+| `offset` | integer | No | Pagination offset (0–9). |
+| `freshness` | string | No | Recency filter: `pd`, `pw`, `pm`, or a date range. |
+| `safesearch` | string | No | Content filter: `off`, `moderate` (default), or `strict`. |
+| `spellcheck` | boolean | No | Automatically spellcheck the query before searching. |
+
+## `brave_suggest_search`
+
+Get autocomplete search suggestions from Brave Search for a given query prefix. Useful for query completion, exploring related search terms, and building search UIs.
+
+**Required plan**: Free and above.
+
+| Name | Type | Required | Description |
+| --- | --- | --- | --- |
+| `q` | string | Yes | Query prefix to get autocomplete suggestions for. |
+| `country` | string | No | Country code (ISO 3166-1 alpha-2) to localise suggestions. |
+| `count` | integer | No | Number of suggestions to return (1–20, default 5). |
+
+## `brave_spellcheck`
+
+Check and correct spelling of a query using Brave Search's spellcheck engine. Returns suggested corrections for misspelled queries.
+
+**Required plan**: Free and above.
+
+| Name | Type | Required | Description |
+| --- | --- | --- | --- |
+| `q` | string | Yes | The query to spellcheck. |
+| `country` | string | No | Country code (ISO 3166-1 alpha-2) to apply locale-aware corrections. |
+
+## `brave_llm_context`
+
+Retrieve real-time web search results structured as grounding context for LLMs. Returns curated snippets, source URLs, titles, and metadata specifically formatted to maximise contextual relevance for AI-generated answers. Supports fine-grained token and snippet budgets to control context size.
+
+**Required plan**: Pro and above.
+
+| Name | Type | Required | Description |
+| --- | --- | --- | --- |
+| `q` | string | Yes | Search query to retrieve grounding context for. |
+| `count` | integer | No | Number of web results to include (1–20, default 5). |
+| `token_budget` | integer | No | Maximum total tokens for the returned context. Use to fit within your LLM's context window. |
+| `snippet_budget` | integer | No | Maximum number of snippets to include across all results. |
+| `country` | string | No | Country code (ISO 3166-1 alpha-2) to localise results. |
+| `search_lang` | string | No | Language filter (ISO 639-1). |
+| `freshness` | string | No | Recency filter: `pd`, `pw`, `pm`, `py`, or date range. |
+| `safesearch` | string | No | Content filter: `off`, `moderate` (default), or `strict`. |
+
+## `brave_chat_completions`
+
+Get AI-generated answers grounded in real-time Brave Search results using an OpenAI-compatible chat completions interface. Returns summarised, cited answers with source references and token usage statistics. Drop-in replacement for OpenAI `/v1/chat/completions` for search-augmented generation.
+
+**Required plan**: AI plan.
+
+| Name | Type | Required | Description |
+| --- | --- | --- | --- |
+| `messages` | array | Yes | Conversation history in OpenAI format: `[{"role": "user", "content": "..."}]`. Supported roles: `system`, `user`, `assistant`. |
+| `model` | string | No | Model identifier (e.g., `brave/serp-claude-3-5-haiku`). Defaults to the plan's included model. |
+| `stream` | boolean | No | Stream the response using server-sent events (SSE). Default `false`. |
+| `country` | string | No | Country code (ISO 3166-1 alpha-2) to localise the underlying search. |
+| `search_lang` | string | No | Language filter for the underlying search (ISO 639-1). |
+| `safesearch` | string | No | Content filter applied to the underlying search: `off`, `moderate`, or `strict`. |
+| `freshness` | string | No | Recency filter for the underlying search results. |
+
+## `brave_local_place_search`
+
+Search 200M+ Points of Interest (POIs) by geographic centre and radius. Supports searching by coordinates or location name with an optional keyword query. Returns location IDs that you can use with `brave_local_pois` and `brave_local_descriptions` to get full details.
+
+**Required plan**: Data for AI plan.
+
+| Name | Type | Required | Description |
+| --- | --- | --- | --- |
+| `q` | string | No | Keyword to filter POIs (e.g., `coffee shop`, `hospital`). |
+| `lat` | number | No | Latitude of the search centre (–90 to 90). Use with `lon` instead of `location`. |
+| `lon` | number | No | Longitude of the search centre (–180 to 180). Use with `lat` instead of `location`. |
+| `location` | string | No | Human-readable location name (e.g., `San Francisco, CA`). Alternative to `lat`/`lon`. |
+| `radius` | integer | No | Search radius in metres from the centre point. |
+| `count` | integer | No | Number of POI results to return (1–20, default 5). |
+
+## `brave_local_pois`
+
+Fetch detailed Point of Interest data for up to 20 location IDs returned by `brave_local_place_search`. Returns rich local business data including address, phone, opening hours, ratings, and reviews.
+
+**Required plan**: Data for AI plan.
+
+
+
+| Name | Type | Required | Description |
+| --- | --- | --- | --- |
+| `ids` | array | Yes | List of location IDs from a `brave_local_place_search` response (maximum 20 IDs per call). |
+
+## `brave_local_descriptions`
+
+Fetch AI-generated descriptions for locations using IDs from a `brave_local_place_search` response. Returns natural language summaries describing the place, its atmosphere, and what visitors can expect.
+
+**Required plan**: Data for AI plan.
+
+
+
+| Name | Type | Required | Description |
+| --- | --- | --- | --- |
+| `ids` | array | Yes | List of location IDs from a `brave_local_place_search` response (maximum 20 IDs per call). |
+
+## `brave_summarizer_search`
+
+Retrieve a full AI-generated summary for a summarizer key obtained from a `brave_web_search` response (requires `summary: true` on the web search call). Returns the complete summary with title, content, enrichments, follow-up queries, and entity details.
+
+**Required plan**: Pro and above.
+
+
+
+| Name | Type | Required | Description |
+| --- | --- | --- | --- |
+| `key` | string | Yes | Summarizer key from the `summarizer.key` field of a `brave_web_search` response. |
+| `entity_info` | boolean | No | Include entity metadata (people, places, organisations) referenced in the summary. |
+| `raw` | boolean | No | Return unformatted (raw) summary text without inline citation markers. |
+
+## `brave_summarizer_summary`
+
+Fetch only the complete AI-generated summary content for a summarizer key. Use when you only need the summary text without enrichments or follow-up data.
+
+**Required plan**: Pro and above.
+
+| Name | Type | Required | Description |
+| --- | --- | --- | --- |
+| `key` | string | Yes | Summarizer key from a `brave_web_search` response. |
+
+## `brave_summarizer_enrichments`
+
+Fetch enrichment data for a Brave AI summary key. Returns associated images, Q&A pairs, entity details, and source references that accompany the summary.
+
+**Required plan**: Pro and above.
+
+| Name | Type | Required | Description |
+| --- | --- | --- | --- |
+| `key` | string | Yes | Summarizer key from a `brave_web_search` response. |
+
+## `brave_summarizer_followups`
+
+Fetch suggested follow-up queries for a Brave AI summary key. Useful for building conversational search flows and helping users explore related topics.
+
+**Required plan**: Pro and above.
+
+| Name | Type | Required | Description |
+| --- | --- | --- | --- |
+| `key` | string | Yes | Summarizer key from a `brave_web_search` response. |
+
+## `brave_summarizer_entity_info`
+
+Fetch detailed entity metadata for a specific entity mentioned in a Brave AI summary. Returns structured information about people, places, organisations, and concepts referenced in the summary.
+
+**Required plan**: Pro and above.
+
+| Name | Type | Required | Description |
+| --- | --- | --- | --- |
+| `key` | string | Yes | Summarizer key from a `brave_web_search` response. |
+| `entity` | string | Yes | Name of the entity to retrieve details for (must be present in the summary). |
+
+## `brave_summarizer_title`
+
+Fetch only the title component of a Brave AI summary. Use when you need a short heading for the summary without loading the full content.
+
+**Required plan**: Pro and above.
+
+| Name | Type | Required | Description |
+| --- | --- | --- | --- |
+| `key` | string | Yes | Summarizer key from a `brave_web_search` response. |