# Unsplash Image Scraper (`parsebird/unsplash-image-scraper`) Actor

Scrape Unsplash images by keyword with orientation, color, and sort filters. Extract image URLs, photographer info, tags, and metadata. No API key needed. Export as JSON, CSV, Excel.

- **URL**: https://apify.com/parsebird/unsplash-image-scraper.md
- **Developed by:** [ParseBird](https://apify.com/parsebird) (community)
- **Categories:** Social media, Videos, Automation
- **Stats:** 3 total users, 2 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.00 / 1,000 image scrapeds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use 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

### Unsplash Image Scraper

Extract high-quality image data from [Unsplash](https://unsplash.com/) — the internet's largest source of freely-usable photos, with over 5 million images contributed by a global community of photographers.

<table><tr>
<td style="border-left:4px solid #1C1917;padding:12px 16px;font-weight:600">
Search multiple keywords at once, filter by orientation, color, and sort order — get structured image data with URLs in 5 resolutions, photographer attribution, tags, and engagement metrics ready for download or integration.
</td>
</tr></table>

##### Copy to your AI assistant

Copy this block into ChatGPT, Claude, Cursor, or any LLM to start using this actor.

````

parsebird/unsplash-image-scraper on Apify. Call: ApifyClient("TOKEN").actor("parsebird/unsplash-image-scraper").call(run\_input={...}), then client.dataset(run\["defaultDatasetId"]).list\_items().items for results. Key inputs: queries (array of strings, e.g. \["nature", "coffee shop"]), maxItemsPerQuery (integer, default 20), maxTotalItems (integer, default 100), sortBy (string: "relevant"/"latest", default "relevant"), orientation (string: "any"/"landscape"/"portrait"/"squarish", default "any"), color (string: "any"/"black\_and\_white"/"black"/"white"/"yellow"/"orange"/"red"/"purple"/"magenta"/"green"/"teal"/"blue", default "any"). Output fields: imageId, title, description, altDescription, urls (raw/full/regular/small/thumb), photographer (name/username/profileUrl), tags, engagement (likes), color, blurHash, sourceUrl, unsplashUrl. Full actor spec: fetch via GET https://api.apify.com/v2/acts/parsebird~unsplash-image-scraper (Bearer TOKEN). Get token: https://console.apify.com/account/integrations

````

### What is Unsplash Image Scraper?

**Unsplash Image Scraper** extracts structured image data from [Unsplash](https://unsplash.com/) search results. It collects image URLs in multiple resolutions, photographer attribution, descriptions, tags, dimensions, and engagement metrics — all without requiring an Unsplash API key.

Use it as an **Unsplash API alternative** to get image data in JSON, CSV, or Excel. No coding required — enter your search terms, set your filters, click Start, and download the results. Or integrate via the [Apify API](https://docs.apify.com/api/v2) to automate image data collection for your workflows.

### What can Unsplash Image Scraper do?

- 🔍 **Search by keyword** — enter one or more search terms like "nature", "coffee shop", "minimal workspace", or "SaaS dashboard"
- 🖼️ **Five image resolutions** — get URLs for raw, full (2000px), regular (1080px), small (400px), and thumbnail (200px) versions
- 🎨 **Color filtering** — narrow results by dominant color: black & white, black, white, yellow, orange, red, purple, magenta, green, teal, or blue
- 📐 **Orientation filtering** — restrict to landscape, portrait, or squarish images
- 📊 **Sort by relevance or date** — get the most relevant images or the latest uploads first
- 👤 **Photographer data** — collect name, username, profile URL, and portfolio link for attribution
- 🏷️ **Tags and metadata** — extract image tags, dimensions, alt descriptions, and blur hashes
- 🔄 **Schedule recurring runs** — monitor new uploads and build image datasets over time with [Apify scheduling](https://docs.apify.com/platform/schedules)
- 🔗 **API access and integrations** — connect to Google Sheets, Zapier, Make, webhooks, or any workflow via the [Apify API](https://docs.apify.com/api/v2)

### What data can you extract from Unsplash?

| Field | Description |
|-------|-------------|
| `imageId` | Unique Unsplash photo identifier |
| `title` / `description` | Photo title and description set by the photographer |
| `altDescription` | Machine-generated alt text for the image |
| `urls.raw` | Original unprocessed image URL |
| `urls.full` | High-quality JPEG (2000px width) |
| `urls.regular` | Standard JPEG (1080px width) |
| `urls.small` | Small JPEG (400px width) |
| `urls.thumb` | Thumbnail JPEG (200px width) |
| `photographer.name` | Photographer's display name |
| `photographer.username` | Unsplash username |
| `photographer.profileUrl` | Link to the photographer's Unsplash profile |
| `photographer.portfolioUrl` | External portfolio link |
| `tags` | Array of image tags |
| `engagement.likes` | Number of likes on Unsplash |
| `color` | Dominant hex color of the image |
| `blurHash` | BlurHash placeholder string |
| `width` / `height` | Image dimensions in pixels |
| `createdAt` / `updatedAt` | Upload and last update timestamps |
| `unsplashUrl` | Direct link to the photo on Unsplash |

### How to scrape Unsplash images

1. Go to the [Unsplash Image Scraper](https://apify.com/parsebird/unsplash-image-scraper) page on Apify Store
2. Click **Try for free** to open the Actor console
3. Enter one or more **search queries** (e.g. nature, coffee shop, minimal workspace)
4. Set **Max Images per Query** to control how many images to collect per search term (default: 20)
5. Optionally set **Sort By**, **Orientation**, and **Color** filters
6. Click **Start** and wait for the run to finish
7. Download your data in **JSON, CSV, Excel**, or connect via the **Apify API**

#### Python API example

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_API_TOKEN")

run = client.actor("parsebird/unsplash-image-scraper").call(run_input={
    "queries": ["nature", "coffee shop"],
    "maxItemsPerQuery": 20,
    "maxTotalItems": 50,
    "sortBy": "relevant",
    "orientation": "landscape",
})

for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(f"{item['imageId']} — {item['photographer']['name']} — {item['urls']['regular']}")
````

#### JavaScript API example

```javascript
import { ApifyClient } from "apify-client";

const client = new ApifyClient({ token: "YOUR_API_TOKEN" });

const run = await client.actor("parsebird/unsplash-image-scraper").call({
    queries: ["nature", "coffee shop"],
    maxItemsPerQuery: 20,
    maxTotalItems: 50,
    sortBy: "relevant",
    orientation: "landscape",
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.log(`${item.imageId} — ${item.photographer.name} — ${item.urls.regular}`);
});
```

### Input parameters

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| `queries` | array | **Yes** | — | Search terms (e.g. `["nature", "coffee shop"]`). Each term runs as a separate search. |
| `maxItemsPerQuery` | integer | No | `20` | Maximum images to collect per search term |
| `maxTotalItems` | integer | No | `100` | Maximum images to collect across all search terms |
| `sortBy` | string | No | `"relevant"` | Sort order: `relevant` or `latest` |
| `orientation` | string | No | `"any"` | Image orientation: `any`, `landscape`, `portrait`, `squarish` |
| `color` | string | No | `"any"` | Dominant color filter: `any`, `black_and_white`, `black`, `white`, `yellow`, `orange`, `red`, `purple`, `magenta`, `green`, `teal`, `blue` |
| `proxyConfiguration` | object | No | Apify Proxy | Proxy settings for the scraper |

### Output example

```json
{
    "query": "nature",
    "queryIndex": 0,
    "rank": 1,
    "imageId": "cssvEZacHvQ",
    "title": null,
    "description": null,
    "altDescription": "gray concrete bridge and waterfalls during daytime",
    "createdAt": null,
    "updatedAt": null,
    "width": null,
    "height": null,
    "urls": {
        "raw": "https://images.unsplash.com/photo-1433086966358-54859d0ed716?auto=format",
        "full": "https://images.unsplash.com/photo-1433086966358-54859d0ed716?auto=format&fit=crop&q=85&w=2000",
        "regular": "https://images.unsplash.com/photo-1433086966358-54859d0ed716?auto=format&fit=crop&q=80&w=1080",
        "small": "https://images.unsplash.com/photo-1433086966358-54859d0ed716?auto=format&fit=crop&q=80&w=400",
        "thumb": "https://images.unsplash.com/photo-1433086966358-54859d0ed716?auto=format&fit=crop&q=80&w=200"
    },
    "links": {
        "html": "https://unsplash.com/photos/gray-concrete-bridge-and-waterfalls-during-daytime-cssvEZacHvQ",
        "download": "https://images.unsplash.com/photo-1433086966358-54859d0ed716?auto=format&fit=crop&q=85&w=2000",
        "downloadLocation": null
    },
    "photographer": {
        "id": null,
        "username": "blakeverdoorn",
        "name": null,
        "profileUrl": "https://unsplash.com/@blakeverdoorn",
        "portfolioUrl": null
    },
    "tags": [],
    "engagement": {
        "likes": null,
        "downloads": null
    },
    "color": null,
    "blurHash": null,
    "sourceUrl": "https://unsplash.com/s/photos/nature",
    "unsplashUrl": "https://unsplash.com/photos/gray-concrete-bridge-and-waterfalls-during-daytime-cssvEZacHvQ",
    "downloadLocationUrl": null,
    "scrapedAt": "2026-05-23T02:24:44.000Z"
}
```

Download results in JSON, HTML, CSV, or Excel.

### Use cases

- 🎨 **Design and branding** — Build mood boards, source hero images, and find on-brand visuals by color and orientation
- 📝 **Content creation** — Find high-quality stock photos for blog posts, social media, newsletters, and presentations
- 🤖 **AI and machine learning** — Collect labeled image datasets for training computer vision models, classifiers, or generative AI
- 📊 **Market research** — Analyze visual trends, popular photography styles, and content patterns across categories
- 🖥️ **Web development** — Source placeholder images, populate design prototypes, and generate image galleries programmatically
- 🔄 **Automated pipelines** — Schedule recurring runs to collect fresh images and feed them into content management systems or design tools

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

| Event | Price per event | Price per 1,000 |
|-------|----------------|-----------------|
| `image-scraped` | $0.002 | **$2.00** |

One event is charged each time an image is successfully scraped and saved to the dataset. You only pay for images actually returned.

**Cost examples:**

| Images | Cost |
|--------|------|
| 20 (default run) | $0.04 |
| 100 | $0.20 |
| 1,000 | $2.00 |
| 10,000 | $20.00 |

Apify offers a **free trial** with $5 of platform credits — enough to scrape ~2,500 Unsplash images at no cost.

### How it works

1. Accepts your search queries and filter settings (orientation, color, sort order)
2. For each query, opens the Unsplash search page in a headless Chromium browser
3. Intercepts internal API responses or extracts structured data from the rendered page
4. Maps each photo to a clean output schema with URLs, photographer info, and metadata
5. Paginates through results until the per-query or total limit is reached
6. Pushes all results to the Apify dataset for download or API access

### FAQ

**What search terms can I use?**
Any keyword or phrase that works on [unsplash.com](https://unsplash.com/) — single words like "mountain" or "coffee", multi-word phrases like "minimal workspace" or "SaaS dashboard", and category terms like "architecture" or "food photography".

**Can I search for multiple topics in one run?**
Yes. Add multiple search terms to the `queries` array. Each term is searched separately, and you can control both the per-query limit and the total limit across all queries.

**Why are some fields null in the output?**
Unsplash's public search results do not always expose every metadata field. Fields like `title`, `description`, `downloads`, and `downloadLocation` may be `null` depending on what the photographer provided and what Unsplash returns for that search. The image URLs, photographer info, and core metadata are reliably present.

**Does this scraper download the actual image files?**
No. The scraper returns image URLs in five resolutions (raw, full, regular, small, thumb). You can download the images yourself using the URLs provided, or use them directly in your application.

**Is this an official Unsplash API client?**
No. This Actor scrapes publicly available data from Unsplash's search functionality. It is not affiliated with or endorsed by Unsplash Inc. For official API access, see the [Unsplash API documentation](https://unsplash.com/documentation).

**Can I filter images by color?**
Yes. Use the `color` input to filter by dominant color: black & white, black, white, yellow, orange, red, purple, magenta, green, teal, or blue. This is useful for brand guidelines, mood boards, and design research.

**Can I schedule recurring scrapes?**
Yes. Use [Apify scheduling](https://docs.apify.com/platform/schedules) to run daily, weekly, or at any custom interval. Combine with [webhooks](https://docs.apify.com/platform/integrations/webhooks) or [integrations](https://docs.apify.com/platform/integrations) to automate your image data pipeline.

**Can I access the data via API?**
Yes. Every run produces a dataset accessible via the [Apify API](https://docs.apify.com/api/v2). Integrate with Python, JavaScript, Google Sheets, Zapier, Make, or any HTTP-capable tool.

**What are the result limits?**
Results depend on what Unsplash returns for the public search at run time. The number of available images varies by search term and filter combination. Very specific or niche queries may return fewer results.

### Is it legal to scrape Unsplash?

This Actor extracts publicly available data from [Unsplash](https://unsplash.com/). Scraping public data is generally considered legal based on recent court rulings, including the US Ninth Circuit's decision in *hiQ Labs v. LinkedIn*. However, this Actor does not provide legal advice about how you may use the images or data. Users are responsible for reviewing the [Unsplash License](https://unsplash.com/license) and individual image-owner terms for their specific use case. Do not use extracted data for purposes incompatible with applicable terms of service. For more information, read Apify's blog post on [web scraping legality](https://blog.apify.com/is-web-scraping-legal/).

### Other ParseBird scrapers

| Actor | Description |
|-------|-------------|
| [Unsplash Image Scraper](https://apify.com/parsebird/unsplash-image-scraper) | Search and extract Unsplash image data |
| [Dribbble Designers Scraper](https://apify.com/parsebird/dribbble-designers-scraper) | Extract designer profiles from Dribbble |
| [Framer Templates Scraper](https://apify.com/parsebird/framer-templates-scraper) | Scrape Framer template listings |
| [YouTube Thumbnail Downloader](https://apify.com/parsebird/youtube-thumbnail-downloader) | Download YouTube video thumbnails |
| [HTTP Request Actor](https://apify.com/parsebird/http-request-actor) | Send custom HTTP requests from the cloud |

Browse all ParseBird actors on the [Apify Store](https://apify.com/parsebird).

# Actor input Schema

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

Add one or more search terms such as nature, coffee shop, minimal workspace, or SaaS dashboard. Each term runs as a separate Unsplash search.

## `maxItemsPerQuery` (type: `integer`):

Maximum number of images to collect for each search term. Keep this low (e.g. 20) for a quick first run.

## `maxTotalItems` (type: `integer`):

Maximum number of images to collect across all search terms combined.

## `sortBy` (type: `string`):

Choose whether Unsplash returns the most relevant images first or the latest matching images.

## `orientation` (type: `string`):

Restrict results to images with a specific orientation. Leave as 'Any' to include all orientations.

## `color` (type: `string`):

Filter images by dominant color. Useful for brand kits, mood boards, or design research.

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

Proxy settings for the scraper. Residential proxies are recommended for Unsplash.

## Actor input object example

```json
{
  "queries": [
    "nature",
    "coffee shop"
  ],
  "maxItemsPerQuery": 20,
  "maxTotalItems": 100,
  "sortBy": "relevant",
  "orientation": "any",
  "color": "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": [
        "nature",
        "coffee shop"
    ],
    "maxItemsPerQuery": 20,
    "maxTotalItems": 100,
    "sortBy": "relevant",
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("parsebird/unsplash-image-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": [
        "nature",
        "coffee shop",
    ],
    "maxItemsPerQuery": 20,
    "maxTotalItems": 100,
    "sortBy": "relevant",
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("parsebird/unsplash-image-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": [
    "nature",
    "coffee shop"
  ],
  "maxItemsPerQuery": 20,
  "maxTotalItems": 100,
  "sortBy": "relevant",
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call parsebird/unsplash-image-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Unsplash Image Scraper",
        "description": "Scrape Unsplash images by keyword with orientation, color, and sort filters. Extract image URLs, photographer info, tags, and metadata. No API key needed. Export as JSON, CSV, Excel.",
        "version": "1.1",
        "x-build-id": "gycEKZcg0Vs0N8coB"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/parsebird~unsplash-image-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-parsebird-unsplash-image-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/parsebird~unsplash-image-scraper/runs": {
            "post": {
                "operationId": "runs-sync-parsebird-unsplash-image-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/parsebird~unsplash-image-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-parsebird-unsplash-image-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "queries"
                ],
                "properties": {
                    "queries": {
                        "title": "Search Queries",
                        "type": "array",
                        "description": "Add one or more search terms such as nature, coffee shop, minimal workspace, or SaaS dashboard. Each term runs as a separate Unsplash search.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxItemsPerQuery": {
                        "title": "Max Images per Query",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Maximum number of images to collect for each search term. Keep this low (e.g. 20) for a quick first run.",
                        "default": 20
                    },
                    "maxTotalItems": {
                        "title": "Max Total Images",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Maximum number of images to collect across all search terms combined.",
                        "default": 100
                    },
                    "sortBy": {
                        "title": "Sort By",
                        "enum": [
                            "relevant",
                            "latest"
                        ],
                        "type": "string",
                        "description": "Choose whether Unsplash returns the most relevant images first or the latest matching images.",
                        "default": "relevant"
                    },
                    "orientation": {
                        "title": "Orientation",
                        "enum": [
                            "any",
                            "landscape",
                            "portrait",
                            "squarish"
                        ],
                        "type": "string",
                        "description": "Restrict results to images with a specific orientation. Leave as 'Any' to include all orientations.",
                        "default": "any"
                    },
                    "color": {
                        "title": "Color Filter",
                        "enum": [
                            "any",
                            "black_and_white",
                            "black",
                            "white",
                            "yellow",
                            "orange",
                            "red",
                            "purple",
                            "magenta",
                            "green",
                            "teal",
                            "blue"
                        ],
                        "type": "string",
                        "description": "Filter images by dominant color. Useful for brand kits, mood boards, or design research.",
                        "default": "any"
                    },
                    "proxyConfiguration": {
                        "title": "Proxy Configuration",
                        "type": "object",
                        "description": "Proxy settings for the scraper. Residential proxies are recommended for Unsplash.",
                        "default": {
                            "useApifyProxy": true,
                            "apifyProxyGroups": [
                                "RESIDENTIAL"
                            ]
                        }
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
