Brave Search Scraper
Pricing
from $1.99 / 1,000 search results
Brave Search Scraper
Searches Brave Search and extracts rich, source-backed organic web listing data including publisher paths, snippets, deep links, images, dates, and search context.
Pricing
from $1.99 / 1,000 search results
Rating
0.0
(0)
Developer
Search API
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Search Brave Search using a keyword and save normalized organic web results from the rendered results page. Brave currently exposes no reliable structured search-results API; the Actor validates the HTML response and extracts the visible result cards with Firefox.
What is captured
Each record includes source-backed listing data where Brave displays it:
- Identity:
type,resultType,position,page. - Article and publisher:
title,titleHtml,link,url,displayUrl,displayedUrl,domain,source,publisher,sourceUrl,sourceDomain,favicon. - Text and navigation:
snippet,description,snippetHtml,descriptionHtml,emphasis,sitelinks,breadcrumbs. - Dates and rich details:
author,date,publishedAt,publishedAtRaw,relativeTime,richSnippet,richResultType,rating,ratingCount,reviewCount,price,priceNumeric,currency,cacheLink,additionalInfo,category,tags. - Images and flags:
thumbnail,thumbnailUrl,imageUrl,imageAlt,imageWidth,imageHeight,isAd,isSponsored. - Search context:
engineId,searchQuery,query,country,language,market,safeSearch,searchUrl,scrapedAt,searchMetadata,canonicalUrl.
Unavailable optional fields are omitted recursively. Valid zero values and false flags are preserved. The Actor does not fabricate ratings, prices, authors, categories, or summaries.
Input
| Field | Type | Default | Description |
|---|---|---|---|
query | string | required | Search keywords. |
maxItems | integer | 50 | Maximum records, from 1 to 500. |
maxPages | integer | derived | Maximum Brave result pages, from 1 to 50. |
country | string | us | Two-letter Brave country code. |
language | string | en | Brave language code. |
safeSearch | string | moderate | strict, moderate, or off; applied through Brave's official preference and verified. |
maxRequestRetries | integer | 3 | Bounded retries for 429 and 5xx navigation responses. |
navigationTimeoutSecs | integer | 60 | Navigation timeout, from 10 to 180 seconds. |
headless | boolean | true | Disable only for local browser debugging. |
proxyConfiguration | object | disabled locally | Apify Proxy or custom proxy configuration. |
Example:
{"query": "artificial intelligence","maxItems": 50,"country": "gb","language": "en","safeSearch": "strict","proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"],"apifyProxyCountry": "GB"}}
Pagination and validation
Brave renders 20 organic cards per page and exposes a page-indexed Next link. The Actor follows only an enabled, forward-moving next link, preserves the requested query/country/language/Safe Search values on every page, deduplicates canonical URLs, and stops at maxItems, maxPages, or a reliable end-of-results signal.
Before extraction it validates HTTP status, HTML content type, block/challenge markers, search parameters, and the Safe Search preference cookie. Images are retained; only fonts and media are skipped for efficiency.
Local checks
npm cinpm testapify validate-schemaapify run
Inspect storage/datasets/default after a run. The local INPUT.json is a representative search; a valid no-results query completes with an empty dataset.