Brave Search Scraper
Pricing
from $1.00 / 1,000 results
Brave Search Scraper
Scrape Brave Search results in bulk with organic rankings, sponsored results, pagination, country and Safe Search controls, target-domain tracking, and structured datasets. HTTP-only, fast, and built for SEO research and SERP monitoring.
Pricing
from $1.00 / 1,000 results
Rating
0.0
(0)
Developer
SearchShark Tools
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
15 hours ago
Last modified
Categories
Share
π¦ Brave Search Scraper
Brave Search Scraper lets you extract structured organic and sponsored search results from Brave Search for SEO research, SERP monitoring, competitor analysis, and automation.
Collect real observed search rankings, titles, URLs, domains, descriptions, publication dates, ads, sitelinks, and more β without manually checking Brave Search.
- π― Track organic rankings: preserve the observed organic position for every search result
- π Analyze competitors: see which domains and pages rank for your target searches
- π Research SERPs: collect structured Brave Search results across many queries
- π£ Capture sponsored results: extract ads separately without affecting organic rankings
- π Track target domains: find the best observed position of specific websites
- β‘ Run searches in bulk: process many independent search terms in one Actor run
- π§Ή Avoid duplicate organic results: URL-based deduplication keeps output cleaner
- π Automate workflows: export results through Apify Dataset, API, integrations, or downstream applications
π¦ What data does Brave Search Scraper extract?
| π Search query | π Organic rank |
| π Page number | π Position on page |
| π¦ Brave SERP position | π° Result title |
| π Destination URL | π Domain |
| π§ Displayed URL | π Description |
| π Published date | πΌ Favicon |
| πΌ Thumbnail | π Sitelinks |
| π§© Result type | π£ Sponsored status |
| π’ Sponsored position | π Advertising metadata |
| π Country setting | π‘ Safe Search setting |
| π Source URL | π Scrape timestamp |
Missing fields are returned as
null. The Actor does not invent information that Brave Search does not expose.
π Features
Brave Search Scraper is designed for SEO research, SERP intelligence, competitor monitoring, and structured search-data collection.
- Bulk search terms: process up to 1,000 queries in one Actor run
- Up to 100 organic results per search term
- Organic ranking preservation: results retain their actual observed organic position
- Sponsored result extraction: ads are collected separately from organic results
- Sponsored results do not affect organic rank
- Automatic pagination: continue through Brave result pages until the requested limit is reached
- Country controls: apply a two-letter country setting such as
us,gb,ca, orau - Safe Search controls: choose
off,moderate, orstrict - Target-domain tracking: monitor up to 100 domains in each run
- Per-query URL deduplication: duplicate organic destination URLs are not returned repeatedly
- Structured supplemental datasets: target-domain and search-run summaries are generated automatically
- Retry handling: temporary request failures are retried automatically
- Partial failure protection: one failed query does not discard successful queries
- HTTP-only architecture: normal searches do not require browser automation
- API-friendly output: structured results are easy to consume from other applications
β¬οΈ Input
You can configure Brave Search Scraper directly from the Apify Console or send the input programmatically through the Apify API.
π Search terms
Add one or more searches you want to run on Brave Search.
Example:
plumber los angelesdentist los angeleshvac contractor los angeles
Each search term is processed independently.
You can provide:
Minimum: 1 search termMaximum: 1,000 search termsMaximum length per term: 512 characters
For example:
best crm softwareemergency plumber chicagoseo agency new yorksite:example.com marketing
Brave search operators can be included directly in the search term when supported by Brave Search.
π’ Maximum results per search
Set the maximum number of unique organic results to collect for each search term.
Minimum: 1Default: 100Maximum: 100
For example:
Search terms:plumber los angelesdentist los angelesMaximum results per search:100
can return up to:
100 organic results for plumber los angeles+100 organic results for dentist los angeles=200 organic results
Sponsored rows may also be included in the default Dataset, so the total Dataset row count can be higher than the requested organic-result maximum.
The requested number is a maximum, not a guarantee.
If Brave stops exposing new organic results before the requested limit is reached, the Actor stops naturally.
π Country
Choose the country context applied to Brave Search.
Use a lowercase two-letter country code.
Examples:
usgbcaaudefr
Default:
us
The country setting is applied to every search term in the run.
Search results can still vary over time because search-engine ranking is dynamic.
π‘ Safe Search
Choose the Brave Search Safe Search setting.
Available values:
offmoderatestrict
Default:
moderate
This setting is applied to every search in the run.
π― Target domains
Optionally provide domains you want to track across the organic search results.
Example:
yelp.comangi.comexample.com
You can track:
Maximum: 100 target domains
Target-domain tracking does not make additional website requests.
It only analyzes the organic Brave results already collected.
Subdomain matching
A subdomain can match its parent target domain.
For example:
Target:example.comResult:blog.example.comMatch:Yes
But similar-looking domains are not treated as the same website.
For example:
roto-rooter.comrotorooter.com
are considered different domains.
π Proxy configuration
Apify Proxy can be used for network requests.
The Actor uses ordinary HTTP requests and does not require browser automation for normal Brave Search result extraction.
π§ͺ Example input
{"searchTerms": ["plumber los angeles","dentist los angeles","hvac contractor los angeles"],"maxResultsPerSearch": 50,"country": "us","safeSearch": "moderate","targetDomains": ["yelp.com","angi.com"],"proxyConfiguration": {"useApifyProxy": true}}
β¬οΈ Output
Brave Search Scraper creates three structured datasets:
defaulttarget_domain_summarysearch_summary
The main search results are stored in the Actor's default Dataset.
You can access the output through:
OutputStorageApify APIIntegrations
π Main results Dataset
The default Dataset contains both:
organicsponsored
search results.
π Example organic result
{"query": "plumber los angeles","rank": 1,"page": 1,"pagePosition": 1,"braveSerpPosition": 1,"sponsoredPosition": null,"title": "Example Plumbing Company","url": "https://www.example.com/plumbing","displayedUrl": "example.com βΊ plumbing","domain": "example.com","description": "Professional plumbing services in Los Angeles...","publishedDate": null,"favicon": "https://example.com/favicon.ico","thumbnail": null,"sitelinks": [{"title": "Emergency Plumbing","url": "https://www.example.com/emergency"}],"resultType": "organic","isSponsored": null,"adPlacementId": null,"adCreativeInstanceId": null,"adCreativeSetId": null,"adCampaignId": null,"adAdvertiserId": null,"country": "us","safeSearch": "moderate","sourceUrl": "https://search.brave.com/search?q=plumber+los+angeles","scrapedAt": "2026-09-08T04:32:09.000Z"}
The values above are illustrative. Actual search results depend on what Brave Search returns at the time of the run.
π£ Example sponsored result
Sponsored results are stored in the same default Dataset with:
resultType: sponsoredisSponsored: truerank: nullpagePosition: null
Example:
{"query": "plumber los angeles","rank": null,"page": 1,"pagePosition": null,"braveSerpPosition": 2,"sponsoredPosition": 1,"title": "Example Sponsored Plumbing Result","url": "https://www.example-advertiser.com/","displayedUrl": "example-advertiser.com","domain": "example-advertiser.com","description": "Book plumbing service today.","publishedDate": null,"resultType": "sponsored","isSponsored": true,"country": "us","safeSearch": "moderate"}
π Organic rank
One of the most important fields returned by the Actor is:
rank
This represents:
The observed organic Brave Search position for that query during the scrape.
For example:
Result A β rank 1Result B β rank 2Result C β rank 3
Only organic web results increment this rank.
Sponsored results do not consume an organic rank.
π¦ Brave SERP position
The Actor also preserves:
braveSerpPosition
This is Brave's observed mixed SERP position when available.
A Brave results page can contain different elements such as:
Sponsored resultsOrganic web resultsOther search modules
Because these can be mixed together, braveSerpPosition may differ from the organic rank.
For SEO ranking analysis, use:
rank
For the observed mixed Brave SERP position, use:
braveSerpPosition
π Page and page position
Organic results also include:
pagepagePosition
Example:
rank: 39page: 2pagePosition: 20
This tells you both the global organic position and where the result appeared on the fetched Brave page.
π§Ή Organic URL deduplication
Organic results are deduplicated within each search query using normalized destination URLs.
The Actor normalizes URLs by handling things such as:
Hostname casingDefault portsURL fragmentsRoot slash equivalenceCommon tracking parameters
Common marketing parameters removed during comparison include:
utm_sourceutm_mediumutm_campaignutm_termutm_contentgclidfbclidmsclkid
Meaningful paths and query parameters are preserved.
Ranking is not renumbered after deduplication
Suppose Brave exposes:
Rank 1 β Website ARank 2 β Website BRank 3 β duplicate of Website ARank 4 β Website C
The Actor may return:
Website A β rank 1Website B β rank 2Website C β rank 4
It does not rename Website C to rank 3.
This preserves the real observed organic ranking.
That also means a run requesting 100 unique organic results can occasionally have a highest observed rank greater than 100.
π― Target-domain summary
When targetDomains are supplied, the Actor creates a separate:
target_domain_summary
Dataset.
Each row contains:
querytargetDomainbestRankmatchingResults
Example:
{"query": "plumber los angeles","targetDomain": "yelp.com","bestRank": 1,"matchingResults": 3}
This means yelp.com appeared three times among the collected organic results and its best observed organic rank was 1.
If a domain does not appear:
{"query": "plumber los angeles","targetDomain": "example.com","bestRank": null,"matchingResults": 0}
Why this is useful
Use the target-domain summary to quickly answer questions such as:
Where does my website rank?Does a competitor appear?What is the competitor's best position?How many pages from that domain appear?
without manually filtering the entire result Dataset.
π Search summary
The Actor also creates:
search_summary
This provides one summary row for each search term.
Fields include:
querystatusfailureStatusstopReasonresultsCollectedsponsoredResultsCollectedpagesFetchedhttpStatuserrorMessagechallengeMarkersstartedAtfinishedAt
Example:
{"query": "plumber los angeles","status": "success","failureStatus": null,"stopReason": "max_results_reached","resultsCollected": 20,"sponsoredResultsCollected": 2,"pagesFetched": 2,"httpStatus": 200,"errorMessage": null,"challengeMarkers": [],"startedAt": "2026-09-08T04:32:07.000Z","finishedAt": "2026-09-08T04:32:11.000Z"}
β Search statuses
A query can finish with statuses such as:
successpartialno_resultsrate_limitedblockedhttp_errorparse_errorretry_exhausted
This makes it easier to determine whether a search completed normally or encountered a network/search-engine issue.
π Pagination
Brave Search Scraper automatically requests additional search-result pages.
The search can stop when:
- π― Requested maximum results reached
- π No organic results are returned
- π No new normalized organic URLs are found
- π A previously observed result page repeats
- β οΈ Request retries are exhausted
- π‘ The defensive page ceiling is reached
- π« Brave returns a blocking or rate-limit response
The current defensive pagination limit is:
10 pages per search term
π Published dates
When Brave exposes a publication date, the Actor attempts to extract it into:
publishedDate
Examples can include:
May 16, 2018June 10, 2026September 26, 2024todayyesterday3 days ago
When an explicit absolute date is available, it is preferred over a generic relative label when possible.
If Brave does not expose a usable date:
publishedDate: null
β‘ Performance
Brave Search Scraper uses an HTTP-only architecture for normal searches.
Instead of launching a full browser, it processes Brave's server-rendered search-result HTML directly.
This generally provides:
Faster startupLower memory usageLower compute overheadEfficient bulk searching
Search terms can run concurrently while the individual pages of each search are processed in sequence.
π‘ Reliability
The Actor includes defensive handling for temporary request and parsing problems.
It can detect conditions such as:
HTTP 403HTTP 429HTTP 5xx errorsRate-limit pagesChallenge pagesParser failuresNetwork failures
Temporary failures can be retried automatically.
The Actor does not attempt to solve or bypass CAPTCHA or challenge systems.
If one query fails during a multi-query run, successful queries can still retain their results.
π API & integrations
Brave Search Scraper can be used programmatically through the Apify API.
You can connect results to workflows such as:
- Google Sheets
- Make
- Zapier
- CRMs
- SEO dashboards
- Internal APIs
- Data warehouses
- Competitive intelligence systems
- AI agents
- MCP workflows
The main result rows are stored in the default Dataset, making them easy to consume from another application.
π‘ Example use cases
π― SEO rank tracking
Search:
emergency plumber los angeles
Track:
Your domainCompetitor domainsBest observed rankingNumber of ranking URLs
Use targetDomains to create a ready-made ranking summary.
π Competitor research
Run searches such as:
best crm softwareemail marketing softwaresales automation platform
Analyze:
Which domains rank most oftenWhich pages hold top positionsWhich competitors advertiseWhat titles and descriptions competitors use
π SERP research
Collect structured results for many related searches:
seo agency los angelesseo company los angeleslocal seo los angelestechnical seo agency
Use the output to study:
Ranking patternsDomain visibilitySERP overlapCompetitor coverageSearch intent
π£ Sponsored result research
Sponsored Brave Search results are captured separately from organic rankings.
Use them to research:
Which advertisers appearSponsored landing pagesAd headlinesAd descriptionsAdvertising visibility
π Country-specific research
Run the same search under different country settings.
Example:
usgbcaau
This can help compare how Brave Search results differ between country contexts.
π― Target-domain monitoring
Provide:
example.comcompetitor.comanothercompetitor.com
and let the Actor produce:
Best observed rankMatching organic resultsPer-query domain visibility
β οΈ Current limitations
The current version focuses on reliable Brave web-search result extraction.
It does not currently perform:
Image-search scrapingNews-search scrapingVideo-search scrapingLocal/map-result extractionFull webpage crawling of every resultEmail extraction from ranking websitesSocial-profile enrichmentSearch-result personalization by user accountCAPTCHA solvingBrowser fingerprint spoofing
The Actor does not visit every result website unless a future feature explicitly adds that behavior.
β FAQ
How does Brave Search Scraper work?
The Actor sends normal HTTP requests to Brave Search for each supplied query.
It then:
Fetches search-result pagesParses organic web resultsParses sponsored resultsTracks organic rankingNormalizes URLsRemoves duplicate organic URLsAutomatically paginatesTracks requested target domainsCreates structured summary datasets
How many results can I scrape?
The current maximum is:
100 unique organic results per search term
Brave may expose fewer results.
The requested number is therefore a maximum rather than a guarantee.
How many searches can I run at once?
You can provide up to:
1,000 search terms
in a single Actor input.
Each search term is handled as its own search context.
Are sponsored results included?
Yes.
Sponsored results are stored in the default Dataset with:
resultType: sponsoredisSponsored: true
They are kept separate from organic ranking logic.
Do ads affect the organic rank?
No.
Organic rank counts only organic web results.
Sponsored results have:
rank: nullpagePosition: null
and receive their own:
sponsoredPosition
Why do rank numbers sometimes have gaps?
Because rank represents the observed organic Brave Search position before URL deduplication.
If an organic destination URL appears again later, the duplicate can be removed while subsequent rankings remain unchanged.
For example:
Returned row 99rank 100Returned row 100rank 101
can be valid.
The Actor preserves the observed SERP ranking instead of renumbering results.
What is the difference between rank and braveSerpPosition?
Use:
rank
for the organic-only ranking.
Use:
braveSerpPosition
for Brave's observed mixed SERP position when available.
Sponsored or other Brave modules can cause these numbers to differ.
Why are some fields null?
Brave does not expose every field for every search result.
The Actor returns:
null
when a value cannot be extracted confidently.
It does not fabricate missing values.
Can I track my website or competitors?
Yes.
Add domains to:
targetDomains
The target_domain_summary Dataset will report:
bestRankmatchingResults
for every query and target domain.
Does target-domain tracking make extra requests?
No.
Target-domain tracking analyzes the organic search results already collected by the Actor.
It does not separately visit the target website.
Can I use Brave Search Scraper through an API?
Yes.
Every Actor can be started through the Apify API, and its datasets can be consumed programmatically.
This makes the Actor suitable for automated SEO, SERP-monitoring, and competitive-intelligence workflows.
Can I export the results?
Yes.
Apify Dataset results can be exported in supported formats such as:
JSONCSVExcelXMLHTML
Does this Actor require a browser?
Not for the normal search workflow.
Brave Search Scraper uses direct HTTP requests and HTML parsing instead of launching browser automation for standard searches.
Does this Actor require a Brave Search API key?
No Brave Search API key is required for the current scraping workflow.
The Actor works from the public Brave Search result pages rather than the Brave Search API.
Is this Actor affiliated with Brave?
No.
This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Brave Software.
Brave and related names or marks belong to their respective owners.
π΅ Pricing
Brave Search Scraper uses pay-per-event pricing.
The main billable result event is each row written to the Actor's default Dataset.
This means both:
Organic result rowsSponsored result rows
can count as billable result events.
The current Store pricing is shown directly on the Actor page before a run is started.
Your Apify platform usage is handled according to the pricing shown by Apify for the Actor.
π§ Recommended workflow
For useful SEO coverage, use distinct search intents and keywords rather than large numbers of nearly identical queries.
Good:
emergency plumber los angelescommercial plumber los angeleswater heater repair los angelesdrain cleaning los angeles
Potentially repetitive:
plumber los angelesplumbers los angelesplumbing los angelesplumbing company los angeles
Closely related searches can naturally return many of the same websites.
π¬ Feedback & support
Found a bug or have a feature request?
Use the Actor's Issues tab on Apify.
Useful future additions may include:
More Brave Search verticalsAdditional localization controlsAdvanced SERP feature extractionRanking-history workflowsExpanded advertising analyticsAdditional export summaries
π Brave Search data without the manual searching
Enter your queries, choose your country and Safe Search settings, optionally track target domains, run the Actor, and receive structured Brave Search data ready for SEO research, SERP monitoring, competitor analysis, APIs, and automation.