Startpage Search Extractor avatar

Startpage Search Extractor

Pricing

from $1.99 / 1,000 results

Go to Apify Store
Startpage Search Extractor

Startpage Search Extractor

Startpage search scraper that extracts organic search results for any keyword list, with rank position, title, URL, domain, and description, so SEO teams can run keyword research and track competitor rankings without personalized results skewing the data.

Pricing

from $1.99 / 1,000 results

Rating

0.0

(0)

Developer

Kawsar

Kawsar

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

6 days ago

Last modified

Categories

Share

Startpage Search Extractor: Scrape Startpage Search Results for Any Keyword

Startpage Search Extractor is a Startpage search scraper that turns a list of keywords into structured SERP data. For every organic search result it saves the rank position, page title, destination URL, domain, and snippet text, then pages through Startpage until it has collected as many results as you asked for. Because Startpage strips out personalization and search history, the rankings you pull are close to a neutral baseline, which makes this a practical way to do SEO keyword research and competitor tracking without your own browsing habits coloring the data.

Give it one keyword or two hundred. The actor handles pagination, retries, proxy rotation, and language or region settings on its own.

Use cases

  • SEO keyword research: collect the full first three pages for a keyword set and see which domains own the topic before you commit to writing anything
  • Rank tracking: run the same keyword list on a schedule and watch your pages move up or down over weeks
  • Competitor monitoring: filter to the past week and catch competitor articles the day they start ranking
  • Link prospecting: pull hundreds of ranking URLs for a niche, then sort by domain to find outreach targets
  • Content gap analysis: compare the URLs ranking for your terms against your own sitemap to find topics you never covered
  • Academic and market research: gather search results in a specific language and country without a personalized feed skewing what comes back

Input

ParameterTypeDefaultDescription
keywordsarrayrequiredSearch terms, one per line. Startpage operators such as site:, intitle:, quoted phrases, and -exclusions all work.
maxItemsinteger10Total results to collect across all keywords. This is the only limit you need to set, and pagination follows from it.
timeoutSecsinteger600Time budget for the run. Anything collected before the cutoff is still saved.
requestTimeoutSecsinteger45How long to wait for a results page to render before retrying.
languagestringenglishLanguage Startpage uses to read the query and return results.
regionstringallCountry to localize results to, such as en_US, de_DE, or en_GB.
timeRangestringanyLimit results to the past day, week, month, or year.
safeSearchstringmediumAdult content filter: off, moderate, or strict.
includeAdsbooleanfalseSave sponsored placements too, flagged with isSponsored.
delayBetweenRequestsSecsinteger1Pause between page requests. Raise it if a run starts getting challenged, lower it to finish faster.
proxyConfigurationobjectResidentialProxy type and location for requests. Startpage challenges datacenter IPs hard, so Residential is preselected and is what you want.

Example input

{
"keywords": [
"best web scraping tools",
"site:apify.com web scraper"
],
"maxItems": 10,
"language": "english",
"region": "en_US",
"timeRange": "month",
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"]
}
}

What data does this actor extract?

Results land in a dataset, one row per search result. Here is a real row:

{
"keyword": "best web scraping tools",
"rankPosition": 3,
"resultTitle": "The 10 Best Web Scraping Tools in 2026",
"url": "https://blog.apify.com/best-web-scraping-tools/",
"displayUrl": "blog.apify.com/best-web-scraping-tools",
"domain": "blog.apify.com",
"site": "Apify",
"resultDescription": "A breakdown of the most widely used scraping tools, what each one costs, and which sites they handle well.",
"isSponsored": false,
"pageNumber": 1,
"searchLanguage": "english",
"searchRegion": "en_US",
"scrapedAt": "2026-09-17T09:14:02.481293+00:00",
"error": null
}
FieldTypeDescription
keywordstringThe search term that produced this result.
rankPositionintegerPosition within the keyword's result list, starting at 1.
resultTitlestringHeadline text shown on the results page.
urlstringDestination URL, with Startpage redirect wrappers already unwrapped.
displayUrlstringShortened URL text printed under the headline.
domainstringHostname of the destination URL, without www..
sitestringReadable site name derived from the domain, for example Goodreads.
resultDescriptionstringSnippet text beneath the headline.
isSponsoredbooleanTrue for paid placements, false for organic results.
pageNumberintegerWhich results page the row came from.
searchLanguagestringLanguage setting used for the search.
searchRegionstringRegion setting used, or all for worldwide.
scrapedAtstringUTC timestamp in ISO 8601 format.
errorstringWhy a keyword failed, if it did. Null on successful rows.

Export any of it as CSV, Excel, JSON, XML, or HTML, push it to Google Sheets, or read it straight from the Apify API.

How it works

  1. Reads your keyword list and drops duplicates.
  2. If the SCRAPE_DO_TOKEN environment variable is set, every results page is fetched through the remote renderer (no local browser). Live tests filled most of a 100-item run this way; blocked pages are retried, then skipped so later pages can still count.
  3. If that token is not set, launches Playwright, clears Startpage's verification check, and pages with Startpage's pagination buttons.
  4. Parses each organic result into title, URL, domain, and snippet.
  5. Saves each row to the dataset. If a keyword fails outright, it saves a row with the reason instead of ending the run.

FAQ

How many search results can I get per run? Up to 1000 rows per run, spread across as many keywords as you like. maxItems is the only limit to set, and the actor pages through Startpage until it gets there.

Why did one keyword return fewer results than maxItems? Startpage stops serving new results for a single query somewhere around 50 to 60 organic hits, usually after five or six pages. Past that it repeats what you already have. If you set maxItems to 100 against one keyword you will get roughly 56, and the log will say the keyword is exhausted. To reach higher totals, spread maxItems across several keywords rather than pushing one term deeper.

Do I need a proxy? If SCRAPE_DO_TOKEN is set, Apify proxy is optional (remote fetch brings its own residential pool). Without that token, yes — use Residential.

What happens if Startpage refuses to serve a page? With remote fetch, that page is retried, then skipped so later pages can still fill maxItems. Without it, page 1 may restart the browser once; a later-page suspension keeps collected rows and moves on.

What decides how long a run takes? With remote fetch, mostly page count (~10s per page in live tests, plus retries). Without it, mostly Startpage's verification check and pagination blocks.

How much memory should I give this actor? With remote fetch, 2 GB is usually enough because no local browser runs. Without it, leave the default 8 GB so verification hashing has CPU.

Why not plain HTTP requests? Startpage answers plain HTTP with a proof-of-work or CAPTCHA page. The remote renderer or Playwright is what clears that and returns real results.

Can I use search operators? Yes. site:, intitle:, inurl:, quoted phrases, and -word exclusions are passed through to Startpage untouched, so site:competitor.com pricing works exactly as it would in the search box.

Are the results personalized to my location? No, and that is the point. Startpage does not profile the caller, so what you get back is the unpersonalized result set. Set region if you specifically want results as they appear in one country.

Why would a keyword return fewer results than I asked for? Either Startpage ran out of results for that query, or the run hit maxItems or timeoutSecs first. The log says which one it was.

Integrations

Connect Startpage Search Extractor with other apps and services using Apify integrations. You can integrate with Make, Zapier, Slack, Airbyte, GitHub, Google Sheets, Google Drive, and many more. You can also use webhooks to trigger actions whenever results are available.

Point it at your keyword list and you have a Startpage search scraper producing clean, exportable SERP data on whatever schedule you set.