# Ozon.ru Scraper (`natanielsantos/ozon-scraper`) Actor

Easily scrape Ozon's product data. You can use it to extract name, prices, images, description, and more

- **URL**: https://apify.com/natanielsantos/ozon-scraper.md
- **Developed by:** [Nataniel Santos](https://apify.com/natanielsantos) (community)
- **Categories:** E-commerce, Developer tools
- **Stats:** 158 total users, 23 monthly users, 100.0% runs succeeded, 3 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.50 / 1,000 products

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 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

### 🔍 What does Ozon.ru Scraper do?

This actor allows you to scrape product details from Ozon.ru without having to write any code. Just provide a list of product URLs or search keywords as input, and the actor will do the rest. The scraped data includes product title, price, discount, rating, reviews count, images, videos, and more.

----

### ✨ What Does This Tool Do?

- 🛍️ Scrape using product URLs, category URLs or search results URLs
- ☁️ Cloud-based and runs on the Apify platform
- 🧑‍💻 Perfect for non-technical users
- 🔒 No need for authentication
- 🔄 Automatically handles retries for failed requests
- 📦 Outputs data in JSON format for easy integration with other tools

----

### 🎯 Who Is This For?
- E-commerce sellers looking to monitor competitors' products on Ozon.ru
- Market researchers analyzing product trends and pricing on Ozon.ru
- Data analysts needing structured product data from Ozon.ru for analysis
- Anyone interested in learning how to scrape data from Ozon.ru without coding
- Businesses looking to integrate Ozon.ru product data into their applications or databases

----

### ⬇️ What You Need to Provide
- 🔗 **Start URLs** from ozon.ru. You can provide the scraper with the following types of URLs:
    - Product URLs (e.g. https://www.ozon.ru/product/futbolka-futbolka-weezer-blue-checkered-box-natural-alternative-rock-music-band-shirt-3239894044/)
    - Search results URLs (e.g. https://www.ozon.ru/search/?from_global=true&text=shirt+blue)
    - Category URLs (e.g. https://www.ozon.ru/category/odezhda-16500/)
    - Seller URLs (e.g. https://www.ozon.ru/seller/partkom-dlya-lyudey-i-avto/)
    - Highlight URLs (e.g. https://www.ozon.ru/highlight/sdelano-v-rossii-1097658/)
    - Share URLs (e.g. https://ozon.ru/t/4kRkn1I)
- 🔍 **Search Keywords** - Alternatively to using search URLs, you can provide search keywords
- 🔀 **Search Sort By** - If you provide search keywords, you can also specify how the search results should be sorted. The options are: 'popular', 'new', 'moreExpensive', 'cheaper 'rating', 'discount'. Only applicable if you're scraping by search keywords instead of search URLs
- 📊 **Max items per URL or search keyword** - Defalt: 100
- 📄 **Scrape product description** - Default: false
- ⚙️ **Scrape product specifications** - Default: false

----
### 💡 Example Input

- **Scraping by product URLs** (with description and specifications)
```json
{
    "startUrls": [
        "https://www.ozon.ru/product/futbolka-futbolka-weezer-blue-checkered-box-natural-alternative-rock-music-band-shirt-3239894044/",
        "https://www.ozon.ru/product/naushniki-xiaomi-redmi-buds-3-pro-global-chernyy-3239894038/"
    ],
    "scrapeDescription": true,
    "scrapeSpecifications": true
}
````

- **Scraping by category URLs** (50 products per URL)

```json
{
    "startUrls": [
        "https://www.ozon.ru/category/odezhda-16500/",
        "https://www.ozon.ru/category/naushniki-i-garnitury-15502/"
    ],
    "maxItems": 50
}
```

- **Scraping by search keywords** (50 products per keyword, sorted by rating)

```json
{
    "searchKeywords": [
        "blue shirt",
        "red shirt"
    ],
    "sortSearchBy": "rating",
    "maxItems": 50
}
```

- **Scraping by search URLs with filters** (50 products per URL)

```json
{
    "startUrls": [
        "https://www.ozon.ru/search/?currency_price=750.000%3B1000.000&from_global=true&sorting=rating&text=shirt+blue"
    ],
    "maxItems": 50
}
```

- **Scraping by seller URL** (50 products)

```json
{
    "startUrls": [
        "https://www.ozon.ru/seller/partkom-dlya-lyudey-i-avto/"
    ],
    "maxItems": 50
}
```

***

For more details on input parameters, check out the [Input schema](https://apify.com/natanielsantos/ozon-scraper/input-schema) section.

### 📦 What You’ll Get (Output)

Each product result includes:

- **🛒 Product Info** - url, sku, title, variants, and more
- **💰 Pricing** - current price, original price, and discount
- **⭐ Reviews** - rating and reviews count
- **🖼️ Media** - images and videos
- **📄 Description** - product description (if scrapeDescription is true)
- **⚙️ Specifications** - product specifications (if scrapeSpecifications is true)
- **👨‍💼 Seller Info** - name, url, rating, and icon
- and more...

***

### 📥 Output Example

```json
{
    "priceString": "2 318 ₽",
    "price": 2318,
    "sku": "1770456600",
    "url": "https://www.ozon.ru/product/bryuki-shirokie-topyoungs-flis-1770456600/",
    "title": "Брюки широкие TopYoungs Флис",
    "rating": 4.9,
    "reviewsCount": 1194,
    "images": [
        "https://ir.ozone.ru/s3/multimedia-1-5/8401509221.jpg",
        "https://ir.ozone.ru/s3/multimedia-1-p/7211157901.jpg",
        "https://ir.ozone.ru/s3/multimedia-1-d/7244399173.jpg",
        "https://ir.ozone.ru/s3/multimedia-1-9/8412922233.jpg",
        "https://ir.ozone.ru/s3/multimedia-1-d/8082494869.jpg",
        "https://ir.ozone.ru/s3/multimedia-1-h/8222370605.jpg",
        "https://ir.ozone.ru/s3/multimedia-1-0/7231115988.jpg",
        "https://ir.ozone.ru/s3/multimedia-1-3/7231115991.jpg",
        "https://ir.ozone.ru/s3/multimedia-1-8/7211157848.jpg",
        "https://ir.ozone.ru/s3/multimedia-1-z/7231115987.jpg",
        "https://ir.ozone.ru/s3/multimedia-1-2/7211157842.jpg",
        "https://ir.ozone.ru/s3/multimedia-1-6/7211157846.jpg",
        "https://ir.ozone.ru/s3/multimedia-1-2/7231115990.jpg",
        "https://ir.ozone.ru/s3/multimedia-1-y/7231115986.jpg",
        "https://ir.ozone.ru/s3/multimedia-1-1/7231115989.jpg",
        "https://ir.ozone.ru/s3/multimedia-1-7/7211157847.jpg",
        "https://ir.ozone.ru/s3/multimedia-1-3/7211157843.jpg"
    ],
    "mainImage": "https://ir.ozone.ru/s3/multimedia-1-5/8401509221.jpg",
    "videos": [
        "https://cdnvideo.v.ozone.ru/vod/video-65/01K6E5RWKQYZXZCTSNX3QXN1E6/asset_0_h264.mp4?type=pdp"
    ],
    "questionsCount": 34,
    "sellerInfo": {
        "name": "TopYoungs",
        "url": "https://www.ozon.ru/seller/topyoungs/",
        "rating": 4.9,
        "orders": "58.5 K",
        "icon": "https://cdn1.ozonusercontent.com/s3/marketing-api/banners/M5/5O/M55OXOEN1We0mbZs5g1p8QTantiLygax.jpg",
        "ogrn": "320519000022642",
        "legalName": "ИП Штенгелова Юлия Олеговна"
    },
    "variants": [
        {
            "title": "Брюки широкие TopYoungs Флис",
            "sku": "1770456600",
            "url": "https://www.ozon.ru/product/bryuki-shirokie-topyoungs-flis-1770456600/",
            "availability": "inStock",
            "price": 2130,
            "originalPrice": 2318,
            "priceString": "2 130 ₽",
            "originalPriceString": "2 318 ₽",
            "mainImage": "https://ir.ozone.ru/s3/multimedia-1-5/wc140/8401509221.jpg",
            "attributes": [
                {
                    "name": "Цвет",
                    "key": "Color",
                    "value": "серый"
                },
                {
                    "name": "Размер",
                    "key": "size",
                    "value": "46 RU / L"
                }
            ]
        },
        {
            "title": "Брюки широкие TopYoungs Флис",
            "sku": "1689907596",
            "url": "https://www.ozon.ru/product/bryuki-shirokie-topyoungs-flis-1689907596/",
            "availability": "inStock",
            "price": 2066,
            "originalPrice": 2247,
            "priceString": "2 066 ₽",
            "originalPriceString": "2 247 ₽",
            "mainImage": "https://ir.ozone.ru/s3/multimedia-1-r/wc140/8082494883.jpg",
            "attributes": [
                {
                    "name": "Цвет",
                    "key": "Color",
                    "value": "черный, черный графит"
                },
                {
                    "name": "Размер",
                    "key": "size",
                    "value": "48 RU / XL"
                }
            ]
        },
        {
            "title": "Брюки широкие TopYoungs Флис",
            "sku": "1770456783",
            "url": "https://www.ozon.ru/product/bryuki-shirokie-topyoungs-flis-1770456783/",
            "availability": "inStock",
            "price": 2133,
            "originalPrice": 2321,
            "priceString": "2 133 ₽",
            "originalPriceString": "2 321 ₽",
            "mainImage": "https://ir.ozone.ru/s3/multimedia-1-5/wc140/8401509221.jpg",
            "attributes": [
                {
                    "name": "Цвет",
                    "key": "Color",
                    "value": "серый"
                },
                {
                    "name": "Размер",
                    "key": "size",
                    "value": "44 RU / M"
                }
            ]
        },
        {
            "title": "Брюки широкие TopYoungs Флис",
            "sku": "1770457385",
            "url": "https://www.ozon.ru/product/bryuki-shirokie-topyoungs-flis-1770457385/",
            "availability": "inStock",
            "price": 2131,
            "originalPrice": 2319,
            "priceString": "2 131 ₽",
            "originalPriceString": "2 319 ₽",
            "mainImage": "https://ir.ozone.ru/s3/multimedia-1-5/wc140/8401509221.jpg",
            "attributes": [
                {
                    "name": "Цвет",
                    "key": "Color",
                    "value": "серый"
                },
                {
                    "name": "Размер",
                    "key": "size",
                    "value": "48 RU / XL"
                }
            ]
        },
        {
            "title": "Брюки широкие TopYoungs Флис",
            "sku": "1770456610",
            "url": "https://www.ozon.ru/product/bryuki-shirokie-topyoungs-flis-1770456610/",
            "availability": "inStock",
            "price": 1646,
            "originalPrice": 1792,
            "priceString": "1 646 ₽",
            "originalPriceString": "1 792 ₽",
            "mainImage": "https://ir.ozone.ru/s3/multimedia-1-5/wc140/8401509221.jpg",
            "attributes": [
                {
                    "name": "Цвет",
                    "key": "Color",
                    "value": "серый"
                },
                {
                    "name": "Размер",
                    "key": "size",
                    "value": "50 RU / 2XL"
                }
            ]
        },
        {
            "title": "Брюки широкие TopYoungs Флис",
            "sku": "1689908106",
            "url": "https://www.ozon.ru/product/bryuki-shirokie-topyoungs-flis-1689908106/",
            "availability": "inStock",
            "price": 2075,
            "originalPrice": 2256,
            "priceString": "2 075 ₽",
            "originalPriceString": "2 256 ₽",
            "mainImage": "https://ir.ozone.ru/s3/multimedia-1-r/wc140/8082494883.jpg",
            "attributes": [
                {
                    "name": "Цвет",
                    "key": "Color",
                    "value": "черный, черный графит"
                },
                {
                    "name": "Размер",
                    "key": "size",
                    "value": "50 RU / 2XL"
                }
            ]
        }
    ],
    "description": "Информация о продукте: корпус карандаша...",
    "specifications": [
        {
            "name": "Артикул",
            "key": "Sku",
            "values": [
                {
                    "value": "1770456610"
                }
            ]
        },
        {
            "name": "Сезон",
            "key": "Season",
            "values": [
                {
                    "value": "Демисезон",
                    "link": "/category/bryuki-muzhskie-demisezonnye/"
                }
            ]
        },
        {
            "name": "Материал",
            "key": "Material",
            "values": [
                {
                    "value": "Флис",
                    "link": "/category/bryuki-muzhskie-flisovye/"
                }
            ]
        },
        {
            "name": "Стиль",
            "key": "StyleApparel",
            "values": [
                {
                    "value": "Спортивный"
                }
            ]
        },
        {
            "name": "Размер на модели",
            "key": "SizeM",
            "values": [
                {
                    "value": "52"
                }
            ]
        },
        {
            "name": "Рост модели на фото",
            "key": "HeightM",
            "values": [
                {
                    "value": "180 см"
                }
            ]
        },
        ...
    ]
}
```

***

### 🧩 Integrations and Ozon Scraper

This scraper can be connected with almost any cloud service or web app thanks to [integrations on the Apify platform](https://apify.com/integrations). You can integrate with Make, Zapier, Slack, Airbyte, GitHub, Google Sheets, Google Drive, [and more](https://docs.apify.com/integrations). Or you can use [webhooks](https://docs.apify.com/integrations/webhooks) to carry out an action whenever an event occurs, e.g. get a notification whenever Ozon Scraper successfully finishes a run.

***

### 🔌 Using Ozon Scraper with the Apify API

The Apify API gives you programmatic access to the Apify platform. The API is organized around RESTful HTTP endpoints that enable you to manage, schedule, and run Apify actors. The API also lets you access any datasets, monitor actor performance, fetch results, create and update versions, and more.

To access the API using Node.js, use the apify-client NPM package. To access the API using Python, use the apify-client PyPI package.

Check out the [Apify API reference](https://docs.apify.com/api/v2) docs for full details.

***

### 💬 Giving feedback

If you have any feature requests or bug reports, please create an issue on the [Issues page](https://apify.com/natanielsantos/ozon-scraper/issues) or contact me directly via email.

If you need a custom solution of this actor, reach out to me through my email: nathan.santos159@hotmail.com

# Actor input Schema

## `startUrls` (type: `array`):

List of URLs. It can be either category pages, search pages, product pages, highlight pages or seller pages.

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

Maximum number of items to scrape. Set to 0 for no limit. Default is 100.

## `scrapeDescription` (type: `boolean`):

Whether to scrape product description. If false, the Actor will skip scraping description and save time. Default is false.

## `scrapeSpecifications` (type: `boolean`):

Whether to scrape product specifications. If false, the Actor will skip scraping specifications and save time. Default is false.

## `searchKeywords` (type: `array`):

If you want to scrape search results pages, enter the keywords here. The Actor will search for these keywords and scrape the results

## `sortSearchBy` (type: `string`):

Sorting option for search results. It will be applied only if you enter search keywords. Default is 'popular'. Only applicable with you're scraping by search keywords instead of search URLs

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.ozon.ru/product/komplekt-trusov-boksery-tommy-hilfiger-underwear-collection-5-sht-1054763570"
    }
  ],
  "maxItems": 30,
  "scrapeDescription": false,
  "scrapeSpecifications": false,
  "searchKeywords": [],
  "sortSearchBy": ""
}
```

# Actor output Schema

## `overview` (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 = {
    "startUrls": [
        {
            "url": "https://www.ozon.ru/product/komplekt-trusov-boksery-tommy-hilfiger-underwear-collection-5-sht-1054763570"
        }
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("natanielsantos/ozon-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 = { "startUrls": [{ "url": "https://www.ozon.ru/product/komplekt-trusov-boksery-tommy-hilfiger-underwear-collection-5-sht-1054763570" }] }

# Run the Actor and wait for it to finish
run = client.actor("natanielsantos/ozon-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 '{
  "startUrls": [
    {
      "url": "https://www.ozon.ru/product/komplekt-trusov-boksery-tommy-hilfiger-underwear-collection-5-sht-1054763570"
    }
  ]
}' |
apify call natanielsantos/ozon-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Ozon.ru Scraper",
        "description": "Easily scrape Ozon's product data. You can use it to extract name, prices, images, description, and more",
        "version": "0.0",
        "x-build-id": "eZXovnzFlT5i7oSF8"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/natanielsantos~ozon-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-natanielsantos-ozon-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/natanielsantos~ozon-scraper/runs": {
            "post": {
                "operationId": "runs-sync-natanielsantos-ozon-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/natanielsantos~ozon-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-natanielsantos-ozon-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",
                "properties": {
                    "startUrls": {
                        "title": "🔗 Start URLs (product, search, category, highlight or seller URLs)",
                        "type": "array",
                        "description": "List of URLs. It can be either category pages, search pages, product pages, highlight pages or seller pages.",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "maxItems": {
                        "title": "Max items to scrape (per URL or search keyword)",
                        "type": "integer",
                        "description": "Maximum number of items to scrape. Set to 0 for no limit. Default is 100.",
                        "default": 30
                    },
                    "scrapeDescription": {
                        "title": "📄 Scrape product description",
                        "type": "boolean",
                        "description": "Whether to scrape product description. If false, the Actor will skip scraping description and save time. Default is false.",
                        "default": false
                    },
                    "scrapeSpecifications": {
                        "title": "⚙️ Scrape product specifications",
                        "type": "boolean",
                        "description": "Whether to scrape product specifications. If false, the Actor will skip scraping specifications and save time. Default is false.",
                        "default": false
                    },
                    "searchKeywords": {
                        "title": "Search keywords",
                        "type": "array",
                        "description": "If you want to scrape search results pages, enter the keywords here. The Actor will search for these keywords and scrape the results",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "sortSearchBy": {
                        "title": "Sort search results by",
                        "enum": [
                            "",
                            "popular",
                            "new",
                            "cheaper",
                            "moreExpensive",
                            "rating",
                            "discount"
                        ],
                        "type": "string",
                        "description": "Sorting option for search results. It will be applied only if you enter search keywords. Default is 'popular'. Only applicable with you're scraping by search keywords instead of search URLs",
                        "default": ""
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
