# Startpage Images Scraper (`igolaizola/startpage-images-scraper`) Actor

Scrape image SERPs from startpage.com, a privacy-focused alternative to Google Search. Collect original images, thumbnails, source pages, dimensions, formats, file sizes, and rankings. Export JSON, CSV, or Excel, or access results via API.

- **URL**: https://apify.com/igolaizola/startpage-images-scraper.md
- **Developed by:** [Iñigo Garcia Olaizola](https://apify.com/igolaizola) (community)
- **Categories:** SEO tools, Developer tools, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.40 / 1,000 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 Images Scraper — Image SERPs, Sources & Dimensions

Startpage Images Scraper extracts image SERPs from startpage.com, a privacy-focused alternative to Google Search. Use it for visual research, asset discovery, brand monitoring, and image SEO analysis; collect original image URLs, thumbnails, source pages, dimensions, formats, file sizes, and rankings for export in JSON, CSV, or Excel, or access them via API.

### 🤖 What does Startpage Images Scraper do?

- **Original media** — collect direct original image and thumbnail URLs.
- **Source discovery** — capture the page where each image appears.
- **Technical details** — extract image dimensions, thumbnail dimensions, format, and reported file size.
- **Search rankings** — retain overall position, result page, and page-level position.
- **Search targeting** — filter by region, language, Safe Search, time period, and result count.

**Great for:** visual market research, brand monitoring, image sourcing, content planning, and image SEO.

> SEO keywords: **startpage.com image scraper**, **image SERP scraper**, **Google Search alternative**, **image search API alternative**, **original image URL extractor**, **Apify actor**.

### 💡 Why scrape Startpage images?

- 🖼️ **Discover visual assets** — find relevant images and their publishing pages quickly.
- 📊 **Analyze image SEO** — compare which sources and image formats rank for target queries.
- 🏷️ **Monitor brands and products** — track imagery associated with a name or campaign.
- 🔍 **Build research datasets** — collect image URLs with dimensions and file metadata.
- 🌍 **Compare markets** — see how image results vary by region and language.

### 🚀 How to use

1. **Add the actor** — open **Startpage Images Scraper** in Apify Store.
2. **Enter queries** — add one or more descriptions of the images you want to find.
3. **Set `maxItems`** — choose the number of image results and optional filters.
4. **Run the actor** — click **Run** or start it through an Apify integration.
5. **Download results** — export the Dataset as JSON, CSV, Excel, XML, or another supported format.

### 📝 Input Parameters

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `queries` | String array | Yes | Image search keywords. Each query is paginated before the next starts. |
| `maxItems` | Integer | Yes | Maximum image results to save across all queries. Set `0` for unlimited. Minimum `0`; prefilled with `10`. |
| `region` | String | No | Preferred result region. Choose `all` or a supported locale such as `en_US`, `de_DE`, or `es_ES`. Default `all`. |
| `language` | String | No | Preferred result language selected from 82 Startpage-supported languages. Default `english`. |
| `safeSearch` | String | No | Explicit-content filtering: `strict` · `moderate` · `off`. Default `moderate`. |
| `timePeriod` | String | No | Recency filter: `any` · `day` · `week` · `month` · `year`. Default `any`. |

**Visual inspiration research**

```json
{
  "queries": ["sustainable architecture timber", "biophilic office design"],
  "maxItems": 100,
  "region": "en_US",
  "language": "english",
  "safeSearch": "moderate",
  "timePeriod": "year"
}
```

**Recent product imagery**

```json
{
  "queries": ["electric SUV concept interior"],
  "maxItems": 250,
  "region": "de_DE",
  "language": "deutsch",
  "safeSearch": "strict",
  "timePeriod": "month"
}
```

### 📊 Output Results

Each Dataset item can contain:

- **query**, **position**, **page**, **pagePosition** — search and ranking context.
- **title** — image title returned by Startpage.
- **imageUrl** — original image URL.
- **thumbnailUrl** — image preview URL.
- **sourceUrl** — page that publishes the image.
- **width**, **height** — original image dimensions in pixels.
- **thumbnailWidth**, **thumbnailHeight** — thumbnail dimensions in pixels.
- **format** — reported image format.
- **fileSize** — reported file size.
- **anonymousImageUrl** *(conditional)* — Startpage anonymous image link.

```json
{
  "query": "sustainable architecture timber",
  "position": 1,
  "page": 1,
  "pagePosition": 1,
  "title": "Timber office building with planted terraces",
  "imageUrl": "https://images.example.org/architecture/timber-office.jpg",
  "thumbnailUrl": "https://tse3.mm.bing.net/th/id/example",
  "sourceUrl": "https://example.org/projects/timber-office",
  "width": 2400,
  "height": 1600,
  "thumbnailWidth": 474,
  "thumbnailHeight": 316,
  "format": "jpeg",
  "fileSize": "548720 B",
  "anonymousImageUrl": "https://browse.startpage.com/av/anon-image/example"
}
```

### 🧭 Common Recipes

- **Image SEO audit:** search a product or topic and compare `sourceUrl`, format, and dimensions among top results.
- **Fresh campaign monitoring:** set `timePeriod="week"` and schedule recurring runs.
- **High-volume discovery:** raise `maxItems` after testing the query with 30–100 results.
- **Regional visual research:** repeat the same query with different `region` values.

### ⚙️ Best Practices

- Confirm usage rights on the source page before downloading or republishing an image.
- Treat dimensions and file size as source metadata; availability can vary between results.
- Keep filters stable when comparing image rankings over time.
- Original media can move or expire after collection because it is hosted by third-party sites.

### ⚖️ Legal & Ethical Considerations

- Review Startpage's terms and the source website's policies.
- Verify copyright, license, and attribution requirements before using any image.
- Do not use collected images to violate privacy, publicity, or intellectual-property rights.
- Keep request volumes reasonable and store only data needed for a legitimate purpose.
- Follow applicable privacy laws when images contain identifiable people.

This Actor is an independent tool and is **not affiliated with, endorsed by, or sponsored by Startpage**. Images and trademarks belong to their respective owners.

### ❓ FAQ

**Does `imageUrl` point to the original image?**

Yes, when Startpage supplies it. `thumbnailUrl` is the smaller search preview and `sourceUrl` is the publishing page.

**Can I filter by exact image dimensions or license?**

Not currently. The actor records returned dimensions and format so you can filter the Dataset after the run.

**Why are some formats reported as `unknown`?**

The upstream result does not always identify the file type even when an image URL is available.

**Can I reuse every collected image?**

No. Search visibility does not grant reuse rights. Check the source page and applicable license first.

### 🛟 Support

Need another image field, filter, or export workflow? Contact the developer at https://igolaizola.com/#contact or https://t.me/igolaizola.

# Actor input Schema

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

One or more search queries. Each query is paginated fully before the next one starts.

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

Maximum number of image results to save across all queries.

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

Region whose image results should be preferred.

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

Preferred language for search results.

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

Level of explicit-content filtering.

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

Only return results from the selected recent period.

## Actor input object example

```json
{
  "queries": [
    "birds"
  ],
  "maxItems": 10,
  "region": "all",
  "language": "english",
  "safeSearch": "moderate",
  "timePeriod": "any"
}
```

# Actor output Schema

## `results` (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": [
        "birds"
    ],
    "maxItems": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("igolaizola/startpage-images-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": ["birds"],
    "maxItems": 10,
}

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

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).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": [
    "birds"
  ],
  "maxItems": 10
}' |
apify call igolaizola/startpage-images-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=igolaizola/startpage-images-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/uIyY23IJ1L9fgllNP/builds/9RM3vaqao8CAsrqby/openapi.json
