# Ozon.ru Scraper – Products, URLs, Keywords, Sellers & Reviews (`abotapi/ozon-ru-scraper`) Actor

Extract structured product data from Ozon.ru, Russia’s largest marketplace. Search by keyword or use product, category, and seller URLs. Get clean JSON with 40+ fields, including prices, discounts, ratings, specs, variants, images, current seller, buybox sellers, and reviews.

- **URL**: https://apify.com/abotapi/ozon-ru-scraper.md
- **Developed by:** [AbotAPI](https://apify.com/abotapi) (community)
- **Categories:** E-commerce, Automation, Developer tools
- **Stats:** 9 total users, 5 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.30 / 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 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

## Ozon.ru Product, Review, Seller & Buybox Scraper

Pull structured data from Ozon.ru, Russia's largest online marketplace. Search by keyword or paste product, category and seller links, and get back clean JSON with 40+ fields per product: pricing, discount, rating, full specifications, variants, image gallery, the current seller, the full list of competing sellers (the buybox), and customer reviews. Fast, with a deep field set per product and a low cost per result.

### Why this scraper

- 40+ fields per product, including data most Ozon scrapers skip.
- Buybox tracking: for every product you get the current seller AND every competing seller offering the same item, each with their own price, delivery date, legal entity and authorized-brand flag. Run it on a schedule to watch who wins the buybox over time.
- Seller transparency: seller name, id, rating, order count and registered legal entity with its state registry number.
- Full specifications: the complete characteristic list (40+ rows on a typical product), plus the description, hashtags, and the per-star rating breakdown.
- Variants: every size / colour / memory option with its own SKU and price.
- Customer reviews: turn on 'Attach reviews' to add reviews (text, pros, cons, star score, photos, videos, helpfulness votes) to each product record, paged up to your chosen limit.
- Two input modes: keyword search with filters, and direct URL walking (product, category, search, seller, and short links). To export reviews for specific products, paste their URLs in URL mode and turn on 'Attach reviews'.
- Lean or rich: switch detail enrichment off for a fast, cheap run with the core listing fields, or leave it on for the full record.

### Data you get

> Sample shape: values are illustrative placeholders, not from a live listing.

| Field | Example |
| --- | --- |
| sku | "100000001" |
| url | "https://www.ozon.ru/product/100000001/" |
| title | "Sample Smartphone 6/128 GB, Nano-SIM" |
| brand | "Sample Brand" |
| price | 59990 |
| originalPrice | 89990 |
| discountPercent | 33 |
| currency | "RUB" |
| rating | 4.8 |
| reviewCount | 1200 |
| questionCount | 35 |
| availability | "3 left in stock" |
| coverImage | "https://ir.ozone.ru/s3/multimedia-1-x/0000000000.jpg" |
| images | ["https://ir.ozone.ru/.../0000000001.jpg", "..."] |
| specs | [{"name": "Screen size", "value": "6.1"}, {"name": "Battery", "value": "3349"}] (full list, 40+ rows) |
| description | "Package contents: phone, cable, documentation" |
| hashtags | ["#Sample", "#SampleBrand"] |
| ratingBreakdown | {"5": 900, "4": 200, "3": 60, "2": 20, "1": 20} |
| variants | [{"sku": "100000002", "value": "Blue", "price": 57990}] |
| categoryPath | "Electronics > Phones > Smartphones" |
| sellerName | "Sample Seller" |
| sellerId | "1000000" |
| seller | {"sellerId": "1000000", "name": "Sample Seller", "rating": 4.9, "ordersCount": "1.6 K", "legalName": "Sample legal entity", "registryNumber": "000000000000000", "isPremium": true} |
| otherSellersCount | 13 |
| otherSellersMinPrice | 54990 |
| buyboxSellers | [{"sellerId": "1000001", "name": "Sample Seller 2", "price": 54990, "legalName": "Sample legal entity 2", "registryNumber": "000000000000000", "deliveryText": "Delivery in 2 days", "authorizedSeller": "Verified brand seller"}] |
| reviews | [{"authorName": "Sample A.", "score": 5, "comment": "Sample review text", "usefulUp": 4}] |
| scrapedAt | "2026-01-01T00:00:00.000Z" |

Each attached review carries: reviewId, authorName, score, comment, positive, negative, photos, videos, usefulUp, usefulDown, commentsCount, status, publishedAt.

### How to use

Search with filters:

```json
{
  "mode": "search",
  "queries": ["iphone 15", "samsung galaxy"],
  "sortBy": "price",
  "minPrice": 40000,
  "maxPrice": 120000,
  "scrapeProductDetails": true,
  "fetchBuybox": true,
  "fetchSellerDetails": true,
  "maxPages": 3,
  "maxListings": 100,
  "proxy": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"], "apifyProxyCountry": "RU" }
}
````

Fast, cheap run with core listing fields only:

```json
{
  "mode": "search",
  "queries": ["наушники"],
  "scrapeProductDetails": false,
  "maxPages": 5,
  "proxy": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"], "apifyProxyCountry": "RU" }
}
```

Walk URLs (product, category, search or seller; short ozon.ru/t/ links are resolved):

```json
{
  "mode": "url",
  "urls": [
    "https://www.ozon.ru/product/100000001/",
    "https://www.ozon.ru/category/smartfony-15502/",
    "https://www.ozon.ru/seller/1000000/"
  ],
  "maxPages": 2,
  "proxy": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"], "apifyProxyCountry": "RU" }
}
```

Export reviews for specific products (URL mode + attach reviews):

```json
{
  "mode": "url",
  "urls": ["https://www.ozon.ru/product/100000001/", "https://www.ozon.ru/product/100000002/"],
  "fetchReviews": true,
  "maxReviewsPerProduct": 200,
  "proxy": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"], "apifyProxyCountry": "RU" }
}
```

### Input parameters

| Parameter | Type | Default | Description |
| --- | --- | --- | --- |
| mode | string | "search" | "search" or "url". |
| queries | array | \["iphone 15"] | Search terms (search mode). |
| sortBy | string | "score" | score, price, price\_desc, new, rating, discount. |
| minPrice | integer | | Lower price bound in rubles. |
| maxPrice | integer | | Upper price bound in rubles. |
| minRating | integer | | Keep products at or above this rating (1 to 5). |
| urls | array | | Product, category, search or seller URLs (url mode). |
| maxReviewsPerProduct | integer | 30 | Reviews to page through per product. |
| scrapeProductDetails | boolean | true | Adds full specs, gallery, variants, seller and category path to each product. |
| fetchBuybox | boolean | true | Attach the full list of competing sellers per product. |
| fetchSellerDetails | boolean | true | Enrich the current seller from its seller page. |
| fetchReviews | boolean | false | Attach customer reviews to each product record (paged up to maxReviewsPerProduct). |
| maxReviewsPerProduct | integer | 30 | When fetchReviews is on, reviews to page through per product. |
| maxPages | integer | 1 | Result pages to walk per query or URL. |
| maxListings | integer | 0 | Total product cap across all inputs (0 = unlimited). |
| proxy | object | Apify Residential RU | Proxy configuration. |

### Output example

> Sample shape: values are illustrative placeholders, not from a live listing.

```json
{
  "sku": "100000001",
  "url": "https://www.ozon.ru/product/100000001/",
  "title": "Sample Smartphone 6/128 GB, Nano-SIM",
  "brand": "Sample Brand",
  "price": 59990,
  "originalPrice": 89990,
  "discountPercent": 33,
  "currency": "RUB",
  "rating": 4.8,
  "reviewCount": 1200,
  "questionCount": 35,
  "availability": "3 left in stock",
  "coverImage": "https://ir.ozone.ru/s3/multimedia-1-x/0000000000.jpg",
  "images": ["https://ir.ozone.ru/s3/multimedia-1-x/0000000001.jpg"],
  "specs": [{ "name": "Screen size", "value": "6.1" }],
  "variants": [{ "sku": "100000002", "value": "Blue", "price": 57990, "aspectName": "Colour" }],
  "categoryPath": "Electronics > Phones > Smartphones",
  "sellerName": "Sample Seller",
  "sellerId": "1000000",
  "seller": {
    "sellerId": "1000000",
    "name": "Sample Seller",
    "rating": 4.9,
    "ordersCount": "1.6 K",
    "legalName": "Sample legal entity",
    "registryNumber": "000000000000000",
    "isPremium": true
  },
  "otherSellersCount": 13,
  "otherSellersMinPrice": 54990,
  "buyboxSellers": [
    {
      "sellerId": "1000001",
      "name": "Sample Seller 2",
      "price": 54990,
      "originalPrice": 54990,
      "legalName": "Sample legal entity 2",
      "registryNumber": "000000000000000",
      "deliveryText": "Delivery in 2 days",
      "authorizedSeller": "Verified brand seller",
      "productSku": "100000003"
    }
  ],
  "reviews": [],
  "scrapedAt": "2026-01-01T00:00:00.000Z"
}
```

### Plan requirement

Ozon.ru accepts traffic mainly from Russian residential connections, so a Russian residential proxy is strongly recommended. On Apify this means an Apify plan that includes Residential proxy (Starter or higher), with the proxy set to Residential and country RU (the default in the input). On the free plan, without Residential access, runs may return zero items; the actor prints an upgrade hint at the start of the run.

# Actor input Schema

## `mode` (type: `string`):

Pick how to start. 'search' uses the query + filters below. 'url' walks one or more product, category, search or seller URLs (short ozon.ru/t/ links are resolved automatically). To export customer reviews, paste product URLs here and turn on 'Attach reviews' below.

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

One or more search terms in Russian or English (e.g. 'iphone 15', 'наушники'). Only used when mode = search.

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

Sort the search results.

## `minPrice` (type: `integer`):

Optional: only return items priced at or above this value. Leave empty for no lower bound.

## `maxPrice` (type: `integer`):

Optional: only return items priced at or below this value. Leave empty for no upper bound.

## `minRating` (type: `integer`):

Optional: only keep items whose average rating is at or above this value (1 to 5). Applied to the result tiles.

## `urls` (type: `array`):

One or more https://www.ozon.ru/ product, /category/, /search/ or /seller/ URLs. Short ozon.ru/t/ links are resolved automatically. Multi-URL supported. Filter-mode fields are ignored. Pagination continues from the page number in the URL.

## `scrapeProductDetails` (type: `boolean`):

On (default): every product is enriched with full specs, description, image gallery, variants, current seller and category path. Off: faster, cheaper, returns only the result-tile fields (sku, title, brand, price, discount, rating, review count, image, url).

## `fetchBuybox` (type: `boolean`):

On (default): for every product, also fetch the full list of competing sellers offering the same item, each with their price, delivery date, legal entity and authorized-brand flag. This is the buybox tracker. Requires full product details.

## `fetchSellerDetails` (type: `boolean`):

On (default): enrich the current seller with profile data from the seller page (rating, order count, legal entity). Requires full product details.

## `fetchReviews` (type: `boolean`):

Off (default): products carry rating and review counts only. On: attach customer reviews to each product record (text, pros/cons, star score, photos, videos, helpfulness), paged up to 'Max reviews per product'. To export reviews for specific products, use URL mode with product URLs and turn this on.

## `maxReviewsPerProduct` (type: `integer`):

When 'Attach reviews' is on, how many reviews to page through per product. Default 30.

## `maxPages` (type: `integer`):

How many pages of results to walk per query or URL. Each page returns up to ~36 items.

## `maxListings` (type: `integer`):

Stop after this many products in total across all queries / URLs. 0 = unlimited.

## `proxy` (type: `object`):

Pick the proxy. Russian residential is strongly recommended; most non-Russian connections are rejected by the site.

## Actor input object example

```json
{
  "mode": "search",
  "queries": [
    "iphone 15"
  ],
  "sortBy": "score",
  "urls": [
    "https://www.ozon.ru/category/smartfony-15502/"
  ],
  "scrapeProductDetails": true,
  "fetchBuybox": true,
  "fetchSellerDetails": true,
  "fetchReviews": false,
  "maxReviewsPerProduct": 30,
  "maxPages": 1,
  "maxListings": 0,
  "proxy": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "RU"
  }
}
```

# 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 = {
    "queries": [
        "iphone 15"
    ],
    "urls": [
        "https://www.ozon.ru/category/smartfony-15502/"
    ],
    "proxy": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ],
        "apifyProxyCountry": "RU"
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("abotapi/ozon-ru-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": ["iphone 15"],
    "urls": ["https://www.ozon.ru/category/smartfony-15502/"],
    "proxy": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
        "apifyProxyCountry": "RU",
    },
}

# Run the Actor and wait for it to finish
run = client.actor("abotapi/ozon-ru-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": [
    "iphone 15"
  ],
  "urls": [
    "https://www.ozon.ru/category/smartfony-15502/"
  ],
  "proxy": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "RU"
  }
}' |
apify call abotapi/ozon-ru-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Ozon.ru Scraper – Products, URLs, Keywords, Sellers & Reviews",
        "description": "Extract structured product data from Ozon.ru, Russia’s largest marketplace. Search by keyword or use product, category, and seller URLs. Get clean JSON with 40+ fields, including prices, discounts, ratings, specs, variants, images, current seller, buybox sellers, and reviews.",
        "version": "1.0",
        "x-build-id": "a434U0JV3pPVrJL4e"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/abotapi~ozon-ru-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-abotapi-ozon-ru-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/abotapi~ozon-ru-scraper/runs": {
            "post": {
                "operationId": "runs-sync-abotapi-ozon-ru-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/abotapi~ozon-ru-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-abotapi-ozon-ru-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": [
                    "mode"
                ],
                "properties": {
                    "mode": {
                        "title": "Run mode",
                        "enum": [
                            "search",
                            "url"
                        ],
                        "type": "string",
                        "description": "Pick how to start. 'search' uses the query + filters below. 'url' walks one or more product, category, search or seller URLs (short ozon.ru/t/ links are resolved automatically). To export customer reviews, paste product URLs here and turn on 'Attach reviews' below.",
                        "default": "search"
                    },
                    "queries": {
                        "title": "Search queries",
                        "type": "array",
                        "description": "One or more search terms in Russian or English (e.g. 'iphone 15', 'наушники'). Only used when mode = search.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "sortBy": {
                        "title": "Sort order",
                        "enum": [
                            "score",
                            "price",
                            "price_desc",
                            "new",
                            "rating",
                            "discount"
                        ],
                        "type": "string",
                        "description": "Sort the search results.",
                        "default": "score"
                    },
                    "minPrice": {
                        "title": "Min price (RUB)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Optional: only return items priced at or above this value. Leave empty for no lower bound."
                    },
                    "maxPrice": {
                        "title": "Max price (RUB)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Optional: only return items priced at or below this value. Leave empty for no upper bound."
                    },
                    "minRating": {
                        "title": "Minimum average rating",
                        "minimum": 1,
                        "maximum": 5,
                        "type": "integer",
                        "description": "Optional: only keep items whose average rating is at or above this value (1 to 5). Applied to the result tiles."
                    },
                    "urls": {
                        "title": "URLs",
                        "type": "array",
                        "description": "One or more https://www.ozon.ru/ product, /category/, /search/ or /seller/ URLs. Short ozon.ru/t/ links are resolved automatically. Multi-URL supported. Filter-mode fields are ignored. Pagination continues from the page number in the URL.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "scrapeProductDetails": {
                        "title": "Scrape full product details",
                        "type": "boolean",
                        "description": "On (default): every product is enriched with full specs, description, image gallery, variants, current seller and category path. Off: faster, cheaper, returns only the result-tile fields (sku, title, brand, price, discount, rating, review count, image, url).",
                        "default": true
                    },
                    "fetchBuybox": {
                        "title": "Track competing sellers (buybox)",
                        "type": "boolean",
                        "description": "On (default): for every product, also fetch the full list of competing sellers offering the same item, each with their price, delivery date, legal entity and authorized-brand flag. This is the buybox tracker. Requires full product details.",
                        "default": true
                    },
                    "fetchSellerDetails": {
                        "title": "Enrich seller profile",
                        "type": "boolean",
                        "description": "On (default): enrich the current seller with profile data from the seller page (rating, order count, legal entity). Requires full product details.",
                        "default": true
                    },
                    "fetchReviews": {
                        "title": "Attach reviews",
                        "type": "boolean",
                        "description": "Off (default): products carry rating and review counts only. On: attach customer reviews to each product record (text, pros/cons, star score, photos, videos, helpfulness), paged up to 'Max reviews per product'. To export reviews for specific products, use URL mode with product URLs and turn this on.",
                        "default": false
                    },
                    "maxReviewsPerProduct": {
                        "title": "Max reviews per product",
                        "minimum": 1,
                        "type": "integer",
                        "description": "When 'Attach reviews' is on, how many reviews to page through per product. Default 30.",
                        "default": 30
                    },
                    "maxPages": {
                        "title": "Max pages per query / URL",
                        "minimum": 1,
                        "type": "integer",
                        "description": "How many pages of results to walk per query or URL. Each page returns up to ~36 items.",
                        "default": 1
                    },
                    "maxListings": {
                        "title": "Max products (total)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Stop after this many products in total across all queries / URLs. 0 = unlimited.",
                        "default": 0
                    },
                    "proxy": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Pick the proxy. Russian residential is strongly recommended; most non-Russian connections are rejected by the site."
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
