# Brave AI Mode Scraper (`rainminer/brave-ai-mode-scraper`) Actor

Extract Brave Search AI Mode answers for any query. Get the full AI summary text, cited sources, related questions, and accompanying organic web results — one dataset row per query. Geo-target with country and language codes. Export JSON, CSV, or Excel and automate via the Apify API.

- **URL**: https://apify.com/rainminer/brave-ai-mode-scraper.md
- **Developed by:** [rainminer](https://apify.com/rainminer) (community)
- **Categories:** AI, SEO tools, Other
- **Stats:** 3 total users, 2 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.99 / 1,000 brave ai answer scrapeds

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

![Brave Search](https://cdn.search.brave.com/serp/v3/_app/immutable/assets/favicon-96x96.whEolsYu.png)

### What does Brave AI Mode Scraper do?

**Brave AI Mode Scraper** extracts **Brave Search AI Mode answers** from [Brave Search](https://search.brave.com/) (`search.brave.com`). Send one or more queries and export the **full AI summary**, **cited sources**, **related questions**, and **organic web results** — one dataset row per query.

No Brave account and no coding. Run it on the **Apify platform** to schedule batch queries, export JSON, CSV, or Excel, and pull results through the API.

### Why scrape Brave AI Mode answers?

Brave Search generates **privacy-first AI answers** with cited sources — independent from Google AI Overviews and other big-tech stacks. SEO teams, researchers, and AI analysts use Brave AI Mode to study how queries are answered on an independent search index.

- **AI answer research** — Capture full Brave AI summaries for benchmark queries.
- **Source attribution** — See which pages Brave AI cites as authoritative sources.
- **Related questions** — Collect follow-up questions Brave suggests for content planning.
- **SERP context** — Export organic web results shown alongside the AI answer.
- **Geo targeting** — Set country and language codes for localized AI responses.
- **Batch automation** — Process hundreds of queries via the Apify API or scheduled runs.
- **Competitive intel** — Compare Brave AI answers against other AI search engines.

### How to scrape Brave AI Mode

1. Open **Brave AI Mode Scraper** in Apify Console.
2. Add one or more queries to the **Queries** list. The default is `What is web scraping`.
3. Set **Maximum queries** (how many queries to process). Use 1–3 for a quick test.
4. Optionally set **Country** and **Language** (defaults: `us`, `en`).
5. Keep **Apify residential proxy** enabled for reliable AI summary access.
6. Run the Actor and download the dataset as JSON, CSV, Excel, or HTML.

Each query produces **one dataset row** with the AI answer and metadata. There is no pagination — one query, one AI answer.

### What data can you extract from Brave AI Mode?

| Field | Description |
| --- | --- |
| query | The search query sent to Brave AI Mode |
| aiSummary | Full text of the AI-generated answer |
| aiSummaryLength | Character count of the AI summary |
| hasSummary | Whether Brave returned an AI answer |
| sources | Cited sources as `{title, url}` objects |
| sourcesCount | Number of cited sources |
| relatedQuestions | Follow-up questions suggested by Brave AI |
| organicResults | Organic web results `{title, url, snippet}` |
| matchedSelector | CSS selector that matched the summary container |
| searchUrl | Full Brave search URL used |
| country | Country code used |
| language | Language code used |
| error | Error message when no AI answer was retrieved |
| scrapedAt | ISO 8601 scrape timestamp |

### How much does it cost to scrape Brave AI Mode?

This Actor uses a browser to load Brave Search AI Mode with the `summary=1` parameter. You pay per **successful AI answer** saved to the dataset, plus compute and proxy usage for the browser run. A short test with 1–2 queries is enough to confirm fields before a larger batch.

Residential proxy is recommended because Brave may show bot verification on datacenter IPs. See the Input tab for proxy settings.

### Input

**Queries**, **Maximum queries**, **Country**, **Language**, **Summary timeout**, and **Proxy configuration**. Residential Apify Proxy is on by default.

```json
{
  "queries": ["What is web scraping", "How does Brave AI work?"],
  "maxItems": 3,
  "country": "us",
  "language": "en",
  "summaryTimeoutMs": 15000,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": ["RESIDENTIAL"]
  }
}
```

### Output

You can download the dataset extracted by Brave AI Mode Scraper in JSON, HTML, CSV, or Excel.

```json
{
  "query": "What is web scraping?",
  "aiSummary": "Web scraping is the automated extraction of data from websites...",
  "aiSummaryLength": 1842,
  "hasSummary": true,
  "sources": [
    {
      "title": "Web scraping - Wikipedia",
      "url": "https://en.wikipedia.org/wiki/Web_scraping"
    }
  ],
  "sourcesCount": 8,
  "relatedQuestions": [
    "Is web scraping legal?",
    "What tools are used for web scraping?"
  ],
  "organicResults": [
    {
      "title": "What Is Web Scraping?",
      "url": "https://example.com/web-scraping",
      "snippet": "Web scraping collects structured data from public web pages..."
    }
  ],
  "matchedSelector": "#summary-container",
  "searchUrl": "https://search.brave.com/search?q=What+is+web+scraping&summary=1&country=us&lang=en",
  "country": "us",
  "language": "en",
  "error": null,
  "scrapedAt": "2026-10-07T12:00:00.000Z"
}
```

### FAQ

#### Is it legal to scrape Brave AI Mode?

This Actor collects **public AI answers and search results** shown on Brave Search. It does not log in and does not collect private account data. Use the data only when you have a legitimate reason, and get advice if you are unsure.

#### Do I need a Brave account?

No. The Actor reads public Brave Search AI Mode pages only.

#### Why is `hasSummary` false for some queries?

Brave may not return an AI answer for very recent events, unsupported query types, or when bot verification blocks the page. Check the `error` field and retry with residential proxy.

#### Why use residential proxy?

Brave Search may show a bot verification page on shared datacenter IPs. Residential Apify Proxy improves access to AI Mode answers.

#### Can I process many queries in one run?

Yes. Add queries to the **Queries** list and raise **Maximum queries**. Each query produces one dataset row.

#### Where can I get help?

Open the **Issues** tab on the Actor page if a query returns no summary or a field looks wrong.

### Image Credit

Image credit: [search.brave.com](https://search.brave.com/)

# Actor input Schema

## `queries` (type: `array`):

Search queries to send to Brave AI Mode. One dataset row is returned per query.

## `maxItems` (type: `integer`):

Maximum number of queries to process from the queries list.

## `country` (type: `string`):

Brave country code for localized AI answers (e.g. us, gb, de).

## `language` (type: `string`):

Brave language code (e.g. en, de, fr).

## `summaryTimeoutMs` (type: `integer`):

Maximum time to wait for the Brave AI summary block to appear.

## `proxyConfiguration` (type: `object`):

Apify Proxy settings. Residential proxies are recommended for reliable Brave AI Mode access.

## Actor input object example

```json
{
  "queries": [
    "What is web scraping"
  ],
  "maxItems": 3,
  "country": "us",
  "language": "en",
  "summaryTimeoutMs": 15000,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# Actor output Schema

## `overview` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "queries": [
        "What is web scraping"
    ],
    "country": "us",
    "language": "en"
};

// Run the Actor and wait for it to finish
const run = await client.actor("rainminer/brave-ai-mode-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "queries": ["What is web scraping"],
    "country": "us",
    "language": "en",
}

# Run the Actor and wait for it to finish
run = client.actor("rainminer/brave-ai-mode-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "queries": [
    "What is web scraping"
  ],
  "country": "us",
  "language": "en"
}' |
apify call rainminer/brave-ai-mode-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,rainminer/brave-ai-mode-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/OHJWMYWMxjdKTZgmh/builds/SdGm30LVcCVuGxSGP/openapi.json
