{
  "openapi": "3.0.1",
  "info": {
    "title": "OLX Scraper: olx.pl/ua/ro/pt/bg/kz/uz (search, filters, alerts)",
    "description": "OLX scraper for olx.pl, olx.ua, olx.ro, olx.pt, olx.bg, olx.kz and olx.uz: search by keyword, category, city, region and price. Rows carry price, currency, condition, location, coordinates, seller type, photos and every OLX parameter. Monitor mode alerts on new listings and price cuts. No login.",
    "version": "0.3",
    "x-build-id": "ElLx3aylX6jhppySc"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/datahamster~olx-europe-listings/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-datahamster-olx-europe-listings",
        "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/datahamster~olx-europe-listings/runs": {
      "post": {
        "operationId": "runs-sync-datahamster-olx-europe-listings",
        "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/datahamster~olx-europe-listings/run-sync": {
      "post": {
        "operationId": "run-sync-datahamster-olx-europe-listings",
        "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": {
          "country": {
            "title": "Country",
            "enum": [
              "pl",
              "ua",
              "ro",
              "pt",
              "bg",
              "kz",
              "uz"
            ],
            "type": "string",
            "description": "Which OLX site to search. Accepted codes: pl (olx.pl, Poland), ua (olx.ua, Ukraine), ro (olx.ro, Romania), pt (olx.pt, Portugal), bg (olx.bg, Bulgaria), kz (olx.kz, Kazakhstan), uz (olx.uz, Uzbekistan). Example: \"pl\".",
            "default": "pl"
          },
          "queries": {
            "title": "Search queries",
            "type": "array",
            "description": "Free-text searches, one string per search phrase, each paginated separately. Example: [\"rower\", \"rower gorski\"]. Ignored when searchUrls is set.",
            "items": {
              "type": "string"
            }
          },
          "searchUrls": {
            "title": "Search page URLs",
            "type": "array",
            "description": "OLX search page URLs copied from the browser, with any category, city or region and filters set on the site. Example: [\"https://www.olx.ua/uk/transport/legkovye-avtomobili/?search[filter_float_motor_year:from]=2015&search[order]=created_at:desc\"]. When set, queries is ignored, and country, categoryId, cityId, regionId and the price fields do not apply; the country comes from the URL. If the URL has no sort, sortBy is used.",
            "items": {
              "type": "string"
            }
          },
          "categoryId": {
            "title": "Category id",
            "minimum": 1,
            "type": "integer",
            "description": "OLX numeric category id to restrict the search; read it from the category_id parameter in OLX's own filter URL. Example: 1607. Optional."
          },
          "cityId": {
            "title": "City id",
            "minimum": 1,
            "type": "integer",
            "description": "OLX numeric city id; read it from the city_id parameter in an OLX filter URL. Example: 17871. Optional."
          },
          "regionId": {
            "title": "Region id",
            "minimum": 1,
            "type": "integer",
            "description": "OLX numeric region id; read it from the region_id parameter in an OLX filter URL. Example: 4. Optional."
          },
          "priceFrom": {
            "title": "Min price",
            "minimum": 0,
            "type": "integer",
            "description": "Minimum price, a whole number in the site's own currency (PLN for olx.pl, UAH for olx.ua, RON, EUR, BGN, KZT, UZS). Example: 500. Optional."
          },
          "priceTo": {
            "title": "Max price",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum price, a whole number in the site's own currency. Example: 2000. Optional."
          },
          "sortBy": {
            "title": "Sort",
            "enum": [
              "created_at:desc",
              "relevance:desc",
              "filter_float_price:asc",
              "filter_float_price:desc"
            ],
            "type": "string",
            "description": "Result order: created_at:desc (newest first), relevance:desc, filter_float_price:asc (cheapest first), filter_float_price:desc. Example: \"created_at:desc\".",
            "default": "created_at:desc"
          },
          "maxPages": {
            "title": "Pages per query",
            "minimum": 1,
            "maximum": 25,
            "type": "integer",
            "description": "How many result pages to fetch per query, 40 listings per page. OLX caps any single query at 1,000 listings, so narrow by category or price to go deeper. Example: 5.",
            "default": 5
          },
          "offerIds": {
            "title": "Offer ids",
            "type": "array",
            "description": "Numeric OLX offer ids to fetch as full detail rows (long description and every parameter), instead of or in addition to a search. Example: [\"928010872\"].",
            "items": {
              "type": "string"
            }
          },
          "maxItems": {
            "title": "Max items",
            "minimum": 1,
            "type": "integer",
            "description": "Stop the run after this many listings; you are charged only for listings actually pushed. In monitor mode this caps the returned (charged) rows, and listings over the cap come with the next run. Example: 20.",
            "default": 20
          },
          "mode": {
            "title": "Mode",
            "enum": [
              "scrape",
              "monitor"
            ],
            "type": "string",
            "description": "scrape = return all matching listings; monitor = return only listings that are new or changed since the previous run of this saved Task (what counts as a change is set by monitorReport). Example: \"scrape\".",
            "default": "scrape"
          },
          "monitorReport": {
            "title": "Monitor: what to report",
            "enum": [
              "all",
              "new_and_price",
              "new"
            ],
            "type": "string",
            "description": "Monitor mode only. all = new listings plus any price, status or refresh (bump) change; new_and_price = new listings plus price changes, refresh-only and status-only changes are neither returned nor charged; new = only listings never seen before by this Task, and an old ad that was merely bumped does not count. With new and new_and_price the first run is a baseline and returns nothing. History is updated either way. Example: \"new\".",
            "default": "all"
          },
          "monitorEarlyStop": {
            "title": "Monitor: stop at already seen listings",
            "type": "boolean",
            "description": "Monitor mode with newest-first sort only. Stop paging a search once a page reaches the newest listing of the last complete run (before that, once a page holds only already seen listings); paid ads OLX pins at fixed positions are ignored. Turn off to always read maxPages pages. Example: true.",
            "default": true
          },
          "monitorStateId": {
            "title": "Monitor state id",
            "type": "string",
            "description": "Optional state id when not running as a saved task (monitor mode)"
          },
          "webhookUrl": {
            "title": "Webhook URL",
            "type": "string",
            "description": "Optional HTTPS URL that receives a POST with the monitor-mode change summary (JSON). Example: \"https://hooks.example.com/olx\"."
          },
          "telegramBotToken": {
            "title": "Telegram bot token",
            "type": "string",
            "description": "Optional Telegram bot token used to send monitor-mode change summaries. Format: \"123456789:AA...\"."
          },
          "telegramChatId": {
            "title": "Telegram chat id",
            "type": "string",
            "description": "Optional Telegram chat id that receives monitor-mode summaries. Example: \"-1001234567890\"."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}