# Startpage Search Scraper (`parsebird/startpage-search-scraper`) Actor

Scrape Startpage search results — a Google SERP alternative with no tracking. Get organic rankings, titles, URLs, snippets, domains, and sitelinks for any query. Filter by region, language, safe search, and time period. Export as JSON, CSV, Excel.

- **URL**: https://apify.com/parsebird/startpage-search-scraper.md
- **Developed by:** [ParseBird](https://apify.com/parsebird) (community)
- **Categories:** SEO tools, Integrations, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.00 / 1,000 startpage search results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

### Startpage Search Scraper

Scrape organic search results from [Startpage](https://www.startpage.com), the leading **Google SERP alternative** that returns Google-quality results without tracking or ads based on your search history. The Startpage Search Scraper is a **Google search alternative** API for developers — enter one or more queries and get back structured rankings, titles, URLs, snippets, and sitelinks, ready for SEO research, rank tracking, or AI agent workflows.

<table><tr>
<td style="border-left:4px solid #1C1917;padding:12px 16px;font-weight:600">
Run unlimited queries with pagination, filter by 63 regions, 82 languages, safe search level, and time period — get clean organic rankings without ads, knowledge panels, or personalization noise.
</td>
</tr></table>

##### Copy to your AI assistant

Copy this block into ChatGPT, Claude, Cursor, or any LLM to start using this actor.

```
Startpage Search Scraper (parsebird/startpage-search-scraper) — Scrapes organic search results from Startpage, a Google SERP alternative / Google search alternative with no tracking. Input: {"queries": ["web scraping"], "maxItems": 10, "region": "all", "language": "english", "safeSearch": "moderate", "timePeriod": "any"}. Fields: queries (string array, required — each query is fully paginated before the next starts), maxItems (integer, required — max organic results across all queries combined, 0 = unlimited), region (63 supported locales, e.g. en_US, de_DE, es_ES, en-GB_GB; default all), language (82 supported languages; default english), safeSearch (strict/moderate/off; default moderate), timePeriod (any/day/week/month/year; default any). Outputs per result: query, position, page, pagePosition, title, url, displayUrl, domain, snippet, sitelinks (conditional), anonymousViewUrl (conditional). API: POST https://api.apify.com/v2/acts/parsebird~startpage-search-scraper/runs?token=YOUR_TOKEN. Get token: https://console.apify.com/account#/integrations
```

### What does Startpage Search Scraper do?

**Startpage Search Scraper** turns any Startpage query into structured JSON, CSV, or Excel data — the same organic results you see at [startpage.com](https://www.startpage.com), but machine-readable. Startpage is a **Google search alternative** that proxies Google's index while stripping tracking, making it a common **Google SERP alternative** for SEO research and privacy-conscious data collection. Enter your queries, set your filters, and the scraper:

- 🔍 Runs one or more search queries, each fully paginated before the next starts
- 📊 Extracts organic rankings, titles, URLs, display URLs, domains, and snippets
- 🔗 Captures sitelinks and Anonymous View proxy links when Startpage includes them
- 🌍 Filters by region (63 Startpage-supported locales) and language (82 supported languages)
- 🛡️ Controls explicit-content filtering with strict, moderate, or off safe search
- ⏱️ Restricts results to a recent time window — past day, week, month, or year
- ♾️ Paginates automatically up to your `maxItems` limit, or scrape as many pages as Startpage returns
- ⚡ Runs on lightweight infrastructure (128–512 MB) — fast and cost-efficient

Because Startpage is a **Google SERP alternative**, this scraper is a practical way to pull Google-quality organic rankings for rank tracking and competitor research without dealing with Google's own bot defenses directly.

### What data can you extract from Startpage search results?

| Field | Description |
|-------|-------------|
| `query` | The original search query that produced this result |
| `position` | Overall rank across all pages saved for this query |
| `page` | Startpage result page number |
| `pagePosition` | Rank within that specific page |
| `title` | Result headline as displayed on Startpage |
| `url` | Destination URL |
| `displayUrl` | URL text shown in the result |
| `domain` | Destination hostname |
| `snippet` | Result description |
| `sitelinks` | Related links shown below the result, when present |
| `anonymousViewUrl` | Startpage's Anonymous View proxy link, when present |

### How to scrape Startpage search results

1. Open the [Startpage Search Scraper](https://apify.com/parsebird/startpage-search-scraper) on Apify
2. Enter one or more **Search Queries** — keywords or operators like `site:apify.com actors`
3. Set **Max Results** to control how many organic results to collect across all queries (default: 10)
4. Optionally choose a **Region** and **Language** to localize results
5. Set **Safe Search** and **Time Period** if you need filtered or recent results
6. Click **Start** and wait for results
7. Export your data as **JSON, CSV, or Excel** from the dataset tab

**Quick start input:**

```json
{
    "queries": ["best web scraping platforms", "web scraping API"],
    "maxItems": 50,
    "region": "en_US",
    "language": "english",
    "safeSearch": "moderate",
    "timePeriod": "month"
}
```

**Domain-scoped search:**

```json
{
    "queries": ["site:apify.com scraping actors"],
    "maxItems": 100,
    "region": "en-GB_GB",
    "language": "english",
    "safeSearch": "strict",
    "timePeriod": "week"
}
```

### Input parameters

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| `queries` | string array | **Yes** | — | Keywords or search operators. Each query is fully paginated before the next starts |
| `maxItems` | integer | **Yes** | 10 | Maximum organic results to save across all queries combined. Set 0 for unlimited |
| `region` | string | No | all | Preferred result region — choose `all` or a supported locale such as `en_US`, `de_DE`, `es_ES`, `en-GB_GB` |
| `language` | string | No | english | Preferred result language, selected from Startpage's 82 supported languages |
| `safeSearch` | string | No | moderate | Explicit-content filtering: `strict`, `moderate`, or `off` |
| `timePeriod` | string | No | any | Recency filter: `any`, `day`, `week`, `month`, or `year` |

### Output example

```json
{
    "query": "best web scraping platforms",
    "position": 1,
    "page": 1,
    "pagePosition": 1,
    "title": "Web Scraping, Data Extraction and Automation",
    "url": "https://apify.com/",
    "displayUrl": "https://apify.com/",
    "domain": "apify.com",
    "snippet": "Build and run web scrapers and automation tools in the cloud.",
    "sitelinks": [
        { "title": "Apify Store", "url": "https://apify.com/store" }
    ],
    "anonymousViewUrl": "https://us3-browse.startpage.com/av/proxy?ep=..."
}
```

### Use cases

- **SEO rank tracking** — Monitor how your pages rank on a Google SERP alternative over time
- **Competitor research** — See which pages and domains rank for your target keywords
- **SERP feature audits** — Compare sitelinks, snippets, and titles across queries
- **Content gap analysis** — Discover which topics and domains dominate a keyword
- **Domain-scoped audits** — Use `site:` operators to check indexing for a specific site
- **AI agent grounding** — Feed structured Google search alternative results into LLM pipelines and RAG systems
- **Privacy-conscious research** — Collect search data without triggering Google's own tracking or personalization
- **Trend monitoring** — Schedule recurring runs to track how rankings shift over time

### How much does it cost to scrape Startpage?

The Startpage Search Scraper uses [pay-per-event pricing](https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event). You are charged per organic result scraped — no separate compute fees on top.

| Event | Price per event | Price per 1,000 |
|-------|----------------|-----------------|
| `result-scraped` (Free) | $0.0015 | **$1.50** |
| `result-scraped` (Bronze) | $0.0014 | **$1.40** |
| `result-scraped` (Silver) | $0.0012 | **$1.20** |
| `result-scraped` (Gold) | $0.001 | **$1.00** |

Each result pushed to the dataset counts as one event. For example, scraping 1,000 results on the Free plan costs $1.50, and $1.00 on the Gold plan.

[Apify's Free plan](https://apify.com/pricing) includes monthly platform credits, so you can try the Startpage Search Scraper's free trial before committing to a paid plan.

### Integrations and API access

Use the Startpage Search Scraper programmatically via the [Apify API](https://docs.apify.com/api/v2), [JavaScript client](https://docs.apify.com/api/client/js), or [Python client](https://docs.apify.com/api/client/python).

**Python:**

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_API_TOKEN")

run = client.actor("parsebird/startpage-search-scraper").call(run_input={
    "queries": ["web scraping API"],
    "maxItems": 50,
    "region": "en_US",
})

for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item["position"], item["title"], item["url"])
```

**JavaScript:**

```javascript
import { ApifyClient } from "apify-client";

const client = new ApifyClient({ token: "YOUR_API_TOKEN" });

const run = await client.actor("parsebird/startpage-search-scraper").call({
    queries: ["web scraping API"],
    maxItems: 50,
    region: "en_US",
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => console.log(item.position, item.title, item.url));
```

You can also connect the Startpage Search Scraper to [Google Sheets](https://apify.com/integrations/google-sheets), [Slack](https://apify.com/integrations/slack), [Zapier](https://apify.com/integrations/zapier), [Make](https://apify.com/integrations/make), and other platforms via [Apify integrations](https://apify.com/integrations). Schedule runs [daily, weekly, or at any interval](https://docs.apify.com/platform/schedules) for automated rank tracking, and export results as JSON, CSV, or Excel directly from the dataset tab.

### Is it legal to scrape Startpage?

Scraping publicly available search results is generally considered legal based on the [2022 US appeals court ruling](https://blog.apify.com/is-web-scraping-legal/) in *hiQ Labs v. LinkedIn*. This actor only accesses publicly available organic search results — it does not log in, bypass paywalls, or access private data.

Always review [Startpage's Terms of Service](https://www.startpage.com/en/terms-of-service.html) and comply with applicable laws in your jurisdiction. For guidance, see [Apify's guide to web scraping legality](https://blog.apify.com/is-web-scraping-legal/).

### Related Actors

Looking for other search or SEO data sources on Apify?

- [Startpage News Scraper](https://apify.com/parsebird/startpage-news-scraper) — Scrape Startpage news search results, a Google News alternative
- [Startpage Images Scraper](https://apify.com/parsebird/startpage-images-scraper) — Scrape Startpage image search results, a Google Images alternative
- [Startpage Videos Scraper](https://apify.com/parsebird/startpage-videos-scraper) — Scrape Startpage video search results, a Google Videos alternative
- [YouTube Search Scraper](https://apify.com/parsebird/youtube-search-scraper) — Scrape YouTube search results for videos, channels, and playlists
- [Pinterest Search Scraper](https://apify.com/parsebird/pinterest-search-scraper) — Scrape Pinterest search results and pin data

### FAQ

**Is Startpage really a Google search alternative?**
Yes. Startpage licenses Google's search index and displays Google-quality organic results while stripping tracking, ads personalization, and search history logging — making it one of the most widely used privacy-focused **Google SERP alternatives**.

**How many results can I scrape per run?**
Set `maxItems` to any number, or `0` to paginate until Startpage stops returning results. Results are shared across all queries in the `queries` list, and each query is fully paginated before the next one starts.

**Why do my region or language filters not change every result?**
Startpage — like Google — still ranks pages by relevance first. A strongly English-dominant query can keep returning English-language results even with a different language filter applied. Region and language settings bias which locale of the index is queried, but don't force a specific language onto every result.

**What is the `anonymousViewUrl` field?**
It's Startpage's built-in Anonymous View link — a proxy URL that lets you open a result without the destination site seeing your IP address or browser fingerprint. It's only included when Startpage provides one for a result.

**Can I schedule recurring runs?**
Yes. Use [Apify's scheduling feature](https://docs.apify.com/platform/schedules) to run the scraper daily, weekly, or at any custom interval — useful for ongoing rank tracking on this Google SERP alternative.

**Can I use this with my AI assistant or MCP server?**
Yes. Copy the AI assistant block from the top of this page into ChatGPT, Claude, or Cursor. You can also use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp) to connect this actor to any AI agent framework.

**Something isn't working. How do I get help?**
Open an issue in the [Issues tab](https://apify.com/parsebird/startpage-search-scraper/issues) on the actor page. Include your input configuration and any error messages.

# Actor input Schema

## `queries` (type: `array`):

Keywords or search operators to look up on Startpage (e.g. 'web scraping', 'site:apify.com actors'). Each query is fully paginated before the next one starts.

## `maxItems` (type: `integer`):

Maximum number of organic results to save across all queries combined. Set to 0 for unlimited (paginate until Startpage stops returning results).

## `region` (type: `string`):

Preferred result region. Choose 'All regions' for unfiltered global results, or a specific locale for region-targeted results.

## `language` (type: `string`):

Preferred result and interface language, selected from Startpage's 82 supported languages.

## `safeSearch` (type: `string`):

Explicit-content filtering level applied to results.

## `timePeriod` (type: `string`):

Restrict results to pages indexed within a recent time frame.

## `proxyConfiguration` (type: `object`):

Startpage blocks most datacenter IPs outright. Residential proxies are strongly recommended for reliable results.

## Actor input object example

```json
{
  "queries": [
    "web scraping"
  ],
  "maxItems": 10,
  "region": "all",
  "language": "english",
  "safeSearch": "moderate",
  "timePeriod": "any",
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# Actor output Schema

## `dataset` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "queries": [
        "web scraping"
    ],
    "maxItems": 10,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("parsebird/startpage-search-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "queries": ["web scraping"],
    "maxItems": 10,
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("parsebird/startpage-search-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "queries": [
    "web scraping"
  ],
  "maxItems": 10,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call parsebird/startpage-search-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,parsebird/startpage-search-scraper"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/Eh0UZN1ewk6gNthaf/builds/hablwxTCPhXayppnB/openapi.json
