
Website Content Crawler
scrape.ly/store/querystone/website-content-crawlerAIDeveloper tools
4 monthly users

Scrape Brave Search results for any query: web results with title, URL, snippet and date, plus free discussions, news, videos, FAQ, knowledge panels, local businesses with phone and rating, and images. 37 regions, time and safe search filters.
Scrape Brave Search results for any query and get clean, structured rows: web results with title, URL, snippet and date, plus the discussions, news, videos, FAQ answers, knowledge panel and local businesses Brave shows next to them. Add images, videos and the news tab with one switch each. No login, no API key, about $2.25 per 1,000 web results, and everything else is free.
type field on every row.site:, quotes, -word) work, and so do Brave Search URLs.type column to split web results from the bonus rows.| Field | What it does |
|---|---|
queries | Search terms, one per line, or Brave Search URLs (https://search.brave.com/search?q=...). |
maxResults | Web results per query. 20 by default; 0 means every web result Brave shows (about 120). |
country | Brave region, e.g. us, gb, de, fr, jp, or all for worldwide. |
timeFilter | pd (past day), pw (past week), pm (past month), py (past year). |
dateFrom / dateTo | A custom publication date range, YYYY-MM-DD. |
safesearch | off, moderate (default) or strict. |
includeExtras | Discussions, news, inline videos, FAQ, knowledge panel and related searches. On by default, free. |
includeLocations | Local businesses for local searches. On by default, free. |
includeImages / includeVideos / includeNews | Load the Images, Videos and News tabs too. Off by default, free. |
{
"queries": ["web scraping", "coffee shops in Berlin"],
"maxResults": 20,
"country": "de",
"timeFilter": "pm",
"includeExtras": true,
"includeLocations": true,
"includeImages": false
}
Every row has a type: web, discussion, news, video_cluster, faq, infobox, location, image, video, news_article or search_metadata, plus the query it belongs to and the country searched.
| Field | Description |
|---|---|
type | What the row is (see above). |
query | The search query. |
position | Rank within its type, starting at 1 (web results are ranked across pages). |
title, url, description | Title, link and snippet. |
age, page_age | How old the page is as Brave shows it, and the publication timestamp. |
hostname, site_name, favicon | Domain, site name and icon. |
language, subtype | Page language and Brave's result kind (generic, article, video, faq...). |
thumbnail, thumbnail_original | Preview image (Brave's copy and the original URL). |
sitelinks, faq, article, rating, product, recipe, video | Rich data Brave attached to the web result, when present. |
page | Results page the web result came from (1–6). |
forum_name, score, num_answers, question, top_comment | Discussion rows. |
address, phone, rating, reviews_count, price_range, categories, cuisine, coordinates, opening_hours | Local business rows. |
image_url, width, height, source | Image rows. |
duration, views, creator, publisher | Video rows. |
related_queries, altered_query, user_location_label | The search_metadata row of each query. |
Real rows from a test run (trimmed):
[
{
"type": "web",
"query": "web scraping",
"position": 2,
"page": 1,
"title": "What is Web Scraping and How to Use It? - GeeksforGeeks",
"url": "https://www.geeksforgeeks.org/blogs/what-is-web-scraping-and-how-to-use-it/",
"description": "Request: Scraper visits each URL like a browser (sends HTTP GET). Load: Downloads HTML (runs JavaScript if needed for dynamic pages). Parse: Turns HTML into a navigable structure...",
"age": "November 12, 2025",
"page_age": "2025-11-12T16:25:54",
"language": "en",
"subtype": "video",
"is_live": false,
"hostname": "www.geeksforgeeks.org",
"site_name": "GeeksforGeeks",
"favicon": "https://imgs.search.brave.com/bGE5KD5Za34la_MeOAt7584d1aXRWEQopsXEQyAALPw/rs:fit:32:32:1:0/g:ce/...",
"thumbnail_original": "https://media.geeksforgeeks.org/wp-content/cdn-uploads/20200622222131/What-is-Web-Scraping-and-How-to-Use-It.png",
"country": "us"
},
{
"type": "location",
"query": "coffee shops in Berlin",
"position": 1,
"title": "Einstein Kaffee",
"url": "https://einstein-kaffee.de/en/cafe/berlin/alexanderplatz",
"description": "Coffee Shop",
"address": "Alexanderpl. 3, 10178 Berlin, Germany",
"phone": "+493024629919",
"rating": 3.3,
"reviews_count": 75,
"price_range": "$$ - $$$",
"categories": ["cafe"],
"coordinates": { "lat": 52.521153, "lng": 13.4149712 },
"opening_hours": { "Monday": "08:00-23:00", "Tuesday": "08:00-23:00", "Friday": "08:00-23:00" },
"country": "de"
}
]
You pay $2.25 per 1,000 web results ($0.00225 each), plus the small platform usage of the run. Discussions, news, videos, FAQ, knowledge panels, local businesses, images, videos and related searches are free.
Example: 1,000 web results ≈ $2.25 in results plus a few tenths of a cent of platform usage (a 20-result run used about $0.0003 in our tests). Bonus rows never add to the bill.
Is it legal to scrape Brave Search? The actor only reads public search result pages, the same pages anyone sees without logging in. You are responsible for how you use the data, especially personal data, under the laws that apply to you (GDPR, CCPA...).
Do I need a Brave account, API key or proxy?
No account and no API key. The run uses Scrapely datacenter proxies by default and retries a blocked request on a fresh IP automatically. Brave challenges a few queries (for example some site: searches) on datacenter IPs; those pages are retried on residential exits, which only adds the residential traffic of those pages (about 0.1 MB each) to the platform usage.
How many results can I get? Brave Search shows at most about 120 web results per query (6 pages of 20), so that is the ceiling for one query. To get more, add more queries; there is no limit on how many queries one run handles. Images return up to about 200 per query.
Why is a field empty?
Brave does not show every detail for every result: a date, thumbnail, rating or opening hours only appear when Brave has them. Empty fields are null.
Can I schedule it or use it from my code? Yes. Schedule runs in the console, call the actor through the Scrapely API, or connect it to your workflows with webhooks and integrations.
What do the countries do? The country picks Brave's region: which market's results rank and which local businesses appear. Brave does not offer a separate search language setting.
user_location_label and local results for non-local queries follow the exit's city.Every field below can be set in the run form, passed through the API, or saved as a task. Unset fields fall back to the defaults shown.
queriesarrayOptionalSearch queries
What to search for, one query per line, exactly as you would type it into Brave Search. Search operators such as site:, quotes and -word work. You can also paste a Brave Search URL (search.brave.com/search?q=...); its query and time filter are used.
maxResultsintegerOptionaldefault 20Maximum web results per query
How many web results (organic links) to save for each query. Brave Search shows at most about 120 web results per query (6 pages of 20), so a query can return fewer than you ask for. Set 0 to save every web result Brave shows. Bonus sections, images and videos are not counted here.
Region, time and safe search, the same filters as on search.brave.com.
countryenumOptionaldefault "us"Country
The Brave Search region to search in. It sets which market's results you get; local pages in that country's language rank higher. 'All regions' searches worldwide.
timeFilterenumOptionaldefault ""Time filter
Only return results published within this period. Ignored when you set a custom date range below.
dateFromstringOptionalPublished from (custom range)
Only return results published on or after this date (YYYY-MM-DD). Use with or without 'Published to'.
dateTostringOptionalPublished to (custom range)
Only return results published on or before this date (YYYY-MM-DD).
safesearchenumOptionaldefault "moderate"Safe search
Brave's adult content filter.
Every row has a <code>type</code> field (web, discussion, news, video_cluster, faq, infobox, location, image, video, news_article, search_metadata). You only pay for web results; every other type is free.
includeExtrasbooleanOptionaldefault trueInclude bonus sections
Also save the extra sections Brave shows on the first results page: discussions (Reddit and forums), news, inline videos, FAQ answers, the knowledge panel and a search summary row with related searches. Free: you only pay for web results.
includeLocationsbooleanOptionaldefault trueInclude local businesses
For local searches (for example 'coffee shops in Berlin') save the businesses Brave shows: address, phone, rating, review count, price range, opening hours and coordinates. Free.
includeImagesbooleanOptionaldefault falseInclude images
Also load Brave's Images tab for each query: up to about 200 images with image URL, size and source page. Free.
includeVideosbooleanOptionaldefault falseInclude videos
Also load Brave's Videos tab for each query: title, URL, duration, creator, publisher and thumbnail. Free.
includeNewsbooleanOptionaldefault falseInclude news tab
Also load Brave's News tab for each query: headline, URL, source, age and thumbnail. Free.
proxyConfigurationobjectOptionaldefault {"useScrapelyProxy":true,"scrapelyProxyGroups":["DATACENTER…Proxy configuration
Scrapely datacenter proxies work well for Brave Search. Each request uses a fresh exit; when Brave keeps challenging a page on datacenter IPs (some queries with operators), that page is retried on residential exits automatically.
Every run writes its results to a dataset. Preview it in the dashboard, then export it or read it through the API.
| Field | Type | Description |
|---|---|---|
| type | string | |
| query | string | |
| position | number | null | |
| title | string | null | |
| url | string | null |
You pay for the events the actor reports, such as each result or page it produces. Platform usage is included in the event prices.
| Event | Charged when | Price |
|---|---|---|
| Web result | One Brave Search web result saved to the dataset. Discussions, news, videos, FAQ, knowledge panels, local businesses, images and related searches are free. Queries with no results are not charged. | $0.0022 |
Run this actor from your own code. Swap in your API token and the examples work as-is.
import { ScrapelyClient } from 'scrapely-client'
const client = new ScrapelyClient({ token: process.env.SCRAPELY_TOKEN })
// Start the actor and wait for the run to finish.
const run = await client.actor('querystone/brave-search-scraper').call({
"queries": [
"web scraping"
],
"maxResults": 20,
"proxyConfiguration": {
"useScrapelyProxy": true,
"scrapelyProxyGroups": [
"DATACENTER"
]
}
})
// Read the dataset the run produced.
const { items } = await client.dataset(run.defaultDatasetId).listItems()
console.log(items)Tokens live in your account settings. Keep them server-side: a token carries the full permissions of your account.
Connect the Scrape.ly MCP server once and your agent can run this actor as a tool. Pick your tool:
Fetch scrape.ly/agents.md and run querystone/brave-search-scraperPaste into Claude Code, Codex, Cursor or any AI agent. It signs you in once in the browser.
{
"mcpServers": {
"scrapely": {
"url": "https://api.scrape.ly/mcp?tools=actors,runs,storage,docs&actors=querystone/brave-search-scraper"
}
}
}No key in the file: your client opens the browser to sign you in the first time it connects.
Inputs the developer prepared for common jobs. Open one to see its input, then copy it to your account to run it as-is or adjust it.
Three pages of Brave web results for 'climate change', web rows only.
20 web results for 'elektroauto test' from Brave's German region.
Fresh 'electric cars' web results from the last 7 days and Brave's News tab.
Coffee shops in Berlin with address, phone, rating and opening hours.
Brave's Images and Videos tabs for 'golden gate bridge', plus 5 web results.
Discussions, FAQ answers, inline videos and related searches for 'how to learn python'.
Two searches in one run, one pasted as a Brave Search URL with its time filter.
Olympics coverage from July and August 2024 with strict safe search.

Scrape Google Maps places for any search term and city, with no code or with one API call. A real run, its output, its log and its exact cost, plus the limits and the legal side.
Read the article
Paste an Amazon search or product URL into a ready-made Actor and get one row per product with price, ASIN, rating and review count. This guide covers the no-code steps, the API, ZIP code pricing, a real run and its cost.
Read the article
Scrape Google search results by query and country and get each results page as JSON: organic results with positions, People Also Ask and related searches. Run it without code or from Python, with a real run, the cost per page and Google's terms.
Read the articleScrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes. The advantage lasts forever.