Startpage SERP Scraper – Organic Search API
Pricing
from $0.45 / 1,000 organic startpage results
Startpage SERP Scraper – Organic Search API
Scrape Startpage organic search results for up to 1,000 queries. Collect rankings, titles, URLs, domains, snippets, localization, Safe Search, date filters, and pagination. Export clean SERP data as JSON, CSV, or Excel, use the Apify API, or schedule recurring SEO and competitor monitoring.
Pricing
from $0.45 / 1,000 organic startpage results
Rating
0.0
(0)
Developer
DataScraperES
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
Turn Startpage searches into structured organic SERP data without manually copying result pages. Enter one or more queries and receive ranked titles, URLs, domains, snippets, localization settings, and timestamps in an export-ready Dataset.
What this Actor does
Startpage SERP Scraper collects organic web results for SEO research, rank tracking, competitor monitoring, and search visibility analysis. It supports pagination, regional markets, result languages, Safe Search, date filters, duplicate-query normalization, and resumable runs.
Each successful Dataset row represents one unique organic result. Operational summaries and per-query statuses remain separate from customer result rows, making the Dataset ready for analysis or downstream processing.
Use cases
- Track organic keyword positions for brands, products, and topics.
- Compare localized result ordering across countries and languages.
- Discover relevant pages and competing domains.
- Build clean URL lists for enrichment or content research.
- Compare Startpage visibility with other search engines.
How to use
- Open the Actor in Apify Console.
- Add at least one value to Search queries and adjust the result or localization options if needed.
- Click Start and open the Dataset when the run finishes.
Input
| Field | Type | Default | Description |
|---|---|---|---|
queries | array of strings | required | One to 1,000 queries. Blank values are rejected, internal whitespace is normalized, and duplicates are removed case-insensitively. |
maxResultsPerQuery | integer | 20 | Maximum unique organic results delivered per query, from 1 to 100. |
maxPagesPerQuery | integer | 2 | Maximum result pages requested per query, from 1 to 10. |
region | string | en_US | Regional market, such as en_US, es_ES, or de_DE. Select all for no country-specific region. |
language | string | english | Result language, such as english, espanol, or deutsch. |
safeSearch | string | moderate | Accepts off, moderate, or strict. |
timeRange | string | any | Accepts any, day, week, month, or year. |
Each query can contain up to 500 characters. The complete region and language choices are available in the Actor input form.
{"queries": ["Apify web scraping"],"maxResultsPerQuery": 3,"maxPagesPerQuery": 1,"region": "en_US","language": "english","safeSearch": "moderate","timeRange": "any"}
Output
Results are stored in the default Dataset and can be exported as JSON, JSONL, CSV, Excel, XML, or RSS. One item represents one unique organic result for one query.
This is the complete Dataset item from a real successful run:
{"type": "organicResult","query": "Apify web scraping","queryId": "0577f6b27431c332d8eb7b4e","region": "en_US","language": "english","safeSearch": "moderate","timeRange": "any","pagesFetched": 1,"organicResultsFound": 3,"paginationStoppedReason": "max_results","fetchedAt": "2026-08-30T19:39:26.075450+00:00","resultId": "5a832fbfaab16fdceb20392c6987c209","page": 1,"pagePosition": 1,"position": 1,"title": "Apify: The largest marketplace of trusted tools for AI","url": "https://apify.com/","domain": "apify.com","displayUrl": "apify.com","description": "65,449 tools for your AI ... Apify is the largest marketplace of trusted tools for AI. Get real-time web data, track competitors, generate leads, monitor social ..."}
The default Key-Value Store also contains:
SUMMARY: aggregate query, page, retry, challenge, delivery, and charged-result counters.QUERY_STATUSES: one status record per processed query, including empty and failed queries.RUN_STATE: the checkpoint used to resume an interrupted run with the same input.
Pricing
The Actor uses pay-per-event pricing. Each unique organic result delivered to the default Dataset triggers one organic-result charge; the actual billing unit remains one delivered result.
| Apify plan tier | Price per organic result | Equivalent per 1,000 organic results |
|---|---|---|
| Free | $0.0006 | $0.60 |
| Bronze | $0.00055 | $0.55 |
| Silver | $0.0005 | $0.50 |
| Gold | $0.00045 | $0.45 |
| Platinum | $0.00045 | $0.45 |
| Diamond | $0.00045 | $0.45 |
Empty or failed queries, duplicate results, SUMMARY, QUERY_STATUSES, and RUN_STATE do not trigger an organic-result charge. If a maximum total charge is configured, the Actor stops delivering new results when the remaining limit cannot cover another result. The Actor's Pricing tab is the source of truth for active prices.
Related Actors
| Actor | Best for |
|---|---|
| Google SERP Scraper API – Search Results Scraper | Google organic search monitoring and result collection. |
| Brave Search Scraper – Organic SERP Results | Privacy-focused Brave Search organic results. |
| Bing Search Scraper – SERP Results | Bing search result collection and comparison. |
| DuckDuckGo Search Scraper — Organic SERP API | DuckDuckGo organic results for privacy-focused research. |
| Yahoo Search Results Scraper | Yahoo Search result collection. |
Limits and data quality
- The Actor returns organic web results. It does not return ads, shopping panels, maps, news carousels, or AI-generated answers.
- Results can vary by time, region, language, Safe Search settings, filters, and Startpage availability.
- A query can legitimately return no results. Check
QUERY_STATUSESto distinguish an empty result set from a failed request. - The Actor stops at the requested result limit, page limit, end of pagination, or a page containing no new results.
- Destination URLs are deduplicated within each query. Stable result IDs prevent duplicate delivery after a resumed run.
- Retries can recover temporary request failures. A query that still fails keeps its status in
QUERY_STATUSESwithout creating a result charge.
Frequently asked questions
Can I search several queries in one run?
Yes. Add up to 1,000 values to queries. Each normalized query receives its own result positions and status record.
Can I request results for a specific country?
Yes. Select a supported regional market in region, such as en_US, es_ES, or de_DE, together with the desired result language.
Why did I receive fewer results than requested?
Startpage may expose fewer unique organic results, a filter may narrow the result set, or pagination may end before the configured maximum. paginationStoppedReason records why collection stopped.
How do I inspect failed or empty queries?
Open QUERY_STATUSES in the run's default Key-Value Store. It contains the status, result count, pages fetched, retry count, and a sanitized error when applicable.
Responsible use
Use this Actor only for lawful purposes and in accordance with applicable terms, privacy requirements, and data-protection rules. Users are responsible for how they collect, store, and use the resulting data.
Support
Open an issue in the Actor's Issues tab and include the run ID, sanitized input, affected query, and relevant QUERY_STATUSES entry. Do not include access tokens or other secrets.