{
  "openapi": "3.0.1",
  "info": {
    "title": "DNS-Shop Scraper",
    "description": "Scrape dns-shop.ru, a major Russian electronics retailer. Search products, browse categories, or fetch a single product's price, rating, images, and specs.",
    "version": "1.0",
    "x-build-id": "pNm6xVQ9vczGaBBUQ"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/crawlerbros~dns-shop-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-crawlerbros-dns-shop-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/crawlerbros~dns-shop-scraper/runs": {
      "post": {
        "operationId": "runs-sync-crawlerbros-dns-shop-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/crawlerbros~dns-shop-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-crawlerbros-dns-shop-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": "Mode",
            "enum": [
              "search",
              "byCategory",
              "productDetails"
            ],
            "type": "string",
            "description": "What to fetch.",
            "default": "search"
          },
          "searchQuery": {
            "title": "Search query",
            "type": "string",
            "description": "Free-text query (mode=search), e.g. `iphone`, `ноутбук`, `телевизор`.",
            "default": "iphone"
          },
          "category": {
            "title": "Category (mode=byCategory)",
            "enum": [
              "",
              "17a8a01d16404e77|smartfony",
              "af47fe7c3bae7fd7|smartfony-i-gadzety",
              "17a892f816404e77|noutbuki",
              "17a8943716404e77|monitory",
              "17a89aab16404e77|videokarty",
              "17aa522a16404e77|komplektuusie-dla-pk",
              "e33ed1823ba77fd7|komputery-i-po",
              "17a8921e16404e77|periferia-i-aksessuary",
              "17a9ef1716404e77|nausniki-i-garnitury",
              "17aa72de16404e77|audiotehnika",
              "17a8bfb516404e77|tv-konsoli-i-audio",
              "17a8ae1316404e77|televizory-i-aksessuary",
              "00f7d5bb3ba87fd7|konsoli-i-videoigry",
              "151328a13ba87fd7|plansety-elektronnye-knigi",
              "17a8e9b716404e77|bytovaa-tehnika",
              "e258ce9b690b26d7|vstraivaemaa-tehnika",
              "17a9e9c316404e77|videonabludenie",
              "03d800b1b7df14a9|setevoe-oborudovanie",
              "17a892c016404e77|wi-fi-routery-i-oborudovanie-dla-malyh-setej",
              "17a9c2a316404e77|instrument-i-strojka",
              "17a88a6b16404e77|avtozvuk",
              "17a88ba616404e77|avtotovary",
              "17a8ea5816404e77|krasota-i-zdorove",
              "17a8addb16404e77|ofis-i-mebel",
              "21600c8ef34aec24|osvesenie-i-aksessuary",
              "17a8e3a816404e77|posuda-i-kuhonnye-predmety",
              "dbb4f637c37f0606|sadovaa-tehnika",
              "d5ee7d4f1f208a19|portativnyj-transport",
              "3d6d8700cb3f50ff|igry-i-tvorcestvo"
            ],
            "type": "string",
            "description": "A curated top-level dns-shop.ru category. For a sub-category not listed here, use `categoryUrl` instead.",
            "default": ""
          },
          "categoryUrl": {
            "title": "Category URL override (mode=byCategory)",
            "type": "string",
            "description": "Full dns-shop.ru category URL for a sub-category not in the curated list above, e.g. `https://www.dns-shop.ru/catalog/17a8a01d16404e77/smartfony/?brand=apple`. Takes priority over `category` if both are set."
          },
          "productUrl": {
            "title": "Product URL (mode=productDetails)",
            "type": "string",
            "description": "Full dns-shop.ru product URL, e.g. `https://www.dns-shop.ru/product/00eb38374882ed20/61-smartfon-apple-iphone-15-128-gb-cernyj/`."
          },
          "sortBy": {
            "title": "Sort order",
            "enum": [
              "popularity",
              "priceAsc",
              "priceDesc",
              "rating",
              "new"
            ],
            "type": "string",
            "description": "Result order for search/byCategory listings. Ignored by mode=productDetails (a single explicit product lookup is never reordered).",
            "default": "popularity"
          },
          "priceMin": {
            "title": "Min price (RUB)",
            "minimum": 0,
            "maximum": 10000000,
            "type": "integer",
            "description": "Drop products cheaper than this (rubles). Applies to search/byCategory listings only; ignored by mode=productDetails."
          },
          "priceMax": {
            "title": "Max price (RUB)",
            "minimum": 0,
            "maximum": 10000000,
            "type": "integer",
            "description": "Drop products more expensive than this (rubles). Applies to search/byCategory listings only; ignored by mode=productDetails."
          },
          "minRating": {
            "title": "Min rating",
            "minimum": 0,
            "maximum": 5,
            "type": "number",
            "description": "Drop products rated below this (0–5 scale). Applies to search/byCategory listings only; ignored by mode=productDetails."
          },
          "inStockOnly": {
            "title": "In stock only",
            "type": "boolean",
            "description": "Only emit products currently available for purchase. Applies to search/byCategory listings only; ignored by mode=productDetails.",
            "default": false
          },
          "maxItems": {
            "title": "Max items",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Hard cap on emitted records.",
            "default": 20
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Optional. dns-shop.ru's Qrator WAF returns HTTP 401 with a JS challenge on the first request of any session, from any IP — this actor solves it automatically by warming up a real (Camoufox) browser session before scraping, so no proxy is required in normal use. Only set this if your runs start getting consistently blocked, which would indicate the egress IP itself has been reputation-flagged.",
            "default": {
              "useApifyProxy": false
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}