{
  "openapi": "3.0.1",
  "info": {
    "title": "Avito Scraper: Avito.ru Listings, Prices & Sellers",
    "description": "Scrape Avito.ru listings in any category from a search URL or a keyword, city, category and price range: price, price per m², address, coordinates, date, parameters, photos, seller type and company name. Only-new mode for monitoring. No browser; private sellers' names withheld by default.",
    "version": "0.1",
    "x-build-id": "feapmezcfZ4afin0x"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/amitaviv~avito-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-amitaviv-avito-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/amitaviv~avito-scraper/runs": {
      "post": {
        "operationId": "runs-sync-amitaviv-avito-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/amitaviv~avito-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-amitaviv-avito-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": "Avito search or listing URLs",
            "type": "array",
            "description": "Avito.ru pages copied from the browser's address bar. A search or category page, e.g. https://www.avito.ru/moskva/kvartiry/prodam?pmax=15000000 (every filter you set on the site is kept), returns its listings page by page. A listing page (…_1234567890) returns that one listing with its full details. m.avito.ru and URLs without https:// are accepted. A city's start page (avito.ru/moskva) needs a category added (avito.ru/moskva/kvartiry); seller profiles and Avito's service pages are not searches and are ignored with a reason. Default: empty. Leave empty to build the search from the fields below; both can be used in one run.",
            "items": {
              "type": "string"
            }
          },
          "searchQueries": {
            "title": "Search keywords",
            "type": "array",
            "description": "Words to search for, as typed in Avito's search box, e.g. \"iphone 15\" or \"велосипед\". Each keyword is one search in the region (and category) below. Default: empty. Leave empty and set a category to read a whole category.",
            "items": {
              "type": "string"
            }
          },
          "region": {
            "title": "Region",
            "type": "string",
            "description": "Where to search: a large city or region by name (\"Москва\", \"Санкт-Петербург\", \"Екатеринбург\", \"Московская область\"; about 50 names are known), \"Россия\" for the whole country, or the slug Avito uses in its URLs (avito.ru/<slug>/…, e.g. \"kazan\", \"nizhniy_novgorod\"). A whole Avito URL is accepted too. Used with searchQueries or category. Default: Россия (whole country)."
          },
          "category": {
            "title": "Category",
            "type": "string",
            "description": "Avito category path: the part of an Avito URL after the city, e.g. \"kvartiry/prodam\" (flats for sale), \"kvartiry/sdam/na_dlitelnyy_srok\" (long-term rentals), \"avtomobili\" (cars), \"telefony\" (phones), \"noutbuki\" (laptops), \"predlozheniya_uslug\" (services; Avito lists services only newest first, so they are read in that order). A whole Avito URL is accepted: its city is used when \"region\" is empty. Default: empty (all categories; a keyword search then lets Avito pick the category)."
          },
          "priceMin": {
            "title": "Minimum price (RUB)",
            "minimum": 0,
            "type": "integer",
            "description": "Only listings priced at or above this, in roubles. Applies to searches built from searchQueries / category (a pasted URL keeps its own filters). Default: no minimum."
          },
          "priceMax": {
            "title": "Maximum price (RUB)",
            "minimum": 0,
            "type": "integer",
            "description": "Only listings priced at or below this, in roubles. Applies to searches built from searchQueries / category. Default: no maximum."
          },
          "cityOnly": {
            "title": "Only the city itself",
            "type": "boolean",
            "description": "On (default): for a search built from a city in \"region\", the actor asks Avito not to widen it and then leaves out every listing located outside the city that Avito still shows (listings from other cities sold with delivery, and other towns in keyword searches). Parts of the city that Avito lists under it (Peterhof, Zelenograd) count as the city. Left-out listings are not delivered or charged, and the status message gives their number. Off: everything Avito shows, as on the website; for cars and some other categories that includes towns up to about 200 km around the city. Not applied to regions such as \"Московская область\" or \"Россия\"; pasted search URLs are returned as Avito shows them.",
            "default": true
          },
          "sellerType": {
            "title": "Seller type",
            "enum": [
              "all",
              "private",
              "company"
            ],
            "type": "string",
            "description": "Uses Avito's own seller filter, so every listing of a filtered search carries a definite sellerType. With \"All sellers\" a card shows a seller as a company only when it carries Avito's verified-company badge (otherwise sellerType is null); includeDetails reads the exact type from each listing page. Also applied to pasted search URLs that have no seller filter of their own. Default: all.",
            "default": "all"
          },
          "sort": {
            "title": "Sort order",
            "enum": [
              "default",
              "date",
              "price_asc",
              "price_desc"
            ],
            "type": "string",
            "description": "Order in which Avito lists the results (and so which listings a maximum keeps). A pasted URL keeps its own order unless it has none. \"Only new\" mode always reads newest first. Default: Avito's default.",
            "default": "default"
          },
          "maxItems": {
            "title": "Maximum listings per search",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "Stop each search after this many listings. Avito shows at most 100 pages per search (about 5,000 listings; 3,200 for cars): split bigger searches by price range or district. Default: 50.",
            "default": 50
          },
          "includeDetails": {
            "title": "Open each listing page (details)",
            "type": "boolean",
            "description": "Off (default): one record per search card, which already has title, price, address, coordinates, date, description, photos and the parameter line. On: also open each listing's page and add all its parameters (rooms, areas, floor, house, mileage, engine, condition …), all photos, the exact seller type, a sale price where Avito shows one, and for Avito shops the shop name and since-when. Charged as an extra event per listing whose page was read; slower.",
            "default": false
          },
          "onlyNew": {
            "title": "Only new listings (monitoring)",
            "type": "boolean",
            "description": "Off (default): every run delivers the listings it finds. On: return and charge only listings that earlier runs of this actor in your account have not delivered for the same search, for scheduled monitoring of new ads. Searches are then read newest first and stop at the first page that is mostly known. A listing its seller paid to lift back to the top is not delivered again. The memory is a key-value store named avito-scraper-monitor in your account; delete it to start over. The first run delivers the newest listings up to the maximum.",
            "default": false
          },
          "monitorKey": {
            "title": "Monitor name (optional)",
            "type": "string",
            "description": "Only with onlyNew. A free name for the monitor memory, e.g. moscow-flats-hourly. Runs with the same search and the same monitor name share one memory; give two schedules different names to keep their memories apart. Default: empty."
          },
          "includePrivateSellerData": {
            "title": "Include private sellers' names (lawful basis required)",
            "type": "boolean",
            "description": "Off (default): a seller's name and profile link are given only for Avito shops and for sellers with Avito's verified-company badge (\"Реквизиты проверены\"); for everyone else, including accounts Avito marks as companies without either (these can be individual agents), they are left empty (privateDataRedacted: true). On: those names and profile links are included too. Turn this on only if you have a lawful basis to process personal data of private individuals (e.g. under Russia's Federal Law 152-FZ or the GDPR) and will use it accordingly. Phone numbers are never collected: Avito shows them only to logged-in users.",
            "default": false
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Default and recommended: no proxy. The actor passes Avito's automatic security check itself; if Avito still refuses the run's address, the run switches by itself to Apify Proxy (datacenter, then residential). Set a proxy here only to force one, e.g. residential with country RU.",
            "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}