{
  "openapi": "3.0.1",
  "info": {
    "title": "OLX Scraper [Only $0.9/1K💰] | 7 Countries | Price Data",
    "description": "Extract OLX classifieds listings from 7 country sites — olx.pl, olx.ro, olx.bg, olx.pt, olx.ua, olx.kz, olx.uz — via OLX's own public offers JSON API. Prices, GPS locations, sellers and category attributes for price monitoring, lead generation and market research. No browser, pay per result.",
    "version": "0.2",
    "x-build-id": "03WNl0z1Vb5fpwtTf"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/ahmed_jasarevic~olx-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-ahmed_jasarevic-olx-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/ahmed_jasarevic~olx-scraper/runs": {
      "post": {
        "operationId": "runs-sync-ahmed_jasarevic-olx-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/ahmed_jasarevic~olx-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-ahmed_jasarevic-olx-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": {
          "country": {
            "title": "OLX country site",
            "enum": [
              "olx.pl",
              "olx.ro",
              "olx.bg",
              "olx.pt",
              "olx.ua",
              "olx.kz",
              "olx.uz"
            ],
            "type": "string",
            "description": "Main OLX marketplace to scrape. Language, currency and location names in the output follow this site.",
            "default": "olx.pl"
          },
          "additionalCountries": {
            "title": "Also scrape these sites",
            "type": "array",
            "description": "Optional. Crawl more OLX country sites in the same run. Every output row carries its own 'domain' field, so results from all sites land in one dataset. Each site is paginated and fetched in parallel.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "searchQueries": {
            "title": "Search queries",
            "type": "array",
            "description": "Keywords to search for, e.g. [\"rower\", \"automat\"]. Leave empty to browse a category/city listing. Applied to every selected country site.",
            "default": [
              "rower"
            ],
            "items": {
              "type": "string"
            }
          },
          "excludeKeywords": {
            "title": "Exclude keywords",
            "type": "array",
            "description": "Optional. Words to keep out of the results, e.g. [\"czesci\", \"uszkodzony\"]. Sent to OLX as negated search terms (-word).",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "startUrls": {
            "title": "Custom API URLs (advanced)",
            "type": "array",
            "description": "Optional. Full OLX offers-API URLs to use instead of search queries, e.g. https://www.olx.pl/api/v1/offers?query=-rower&sort_by=created_at%3Adesc. Must contain /api/v1/offers. Useful for filters this Actor does not expose. The domain of each URL decides which OLX site it is scraped from.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "categoryId": {
            "title": "Category ID",
            "type": "integer",
            "description": "Optional OLX category ID to narrow the search (the number before -CID- in a listing URL, e.g. 767).",
            "default": 0
          },
          "cityId": {
            "title": "City ID",
            "type": "integer",
            "description": "Optional OLX city ID to restrict results to one city. Leave 0 for all locations.",
            "default": 0
          },
          "regionId": {
            "title": "Region ID",
            "type": "integer",
            "description": "Optional OLX region (voivodeship / county) ID. Useful on olx.pl, olx.ro and olx.ua where region filters are supported.",
            "default": 0
          },
          "distance": {
            "title": "Radius (km)",
            "type": "integer",
            "description": "Optional search radius in kilometres around the selected city. Requires City ID.",
            "default": 0
          },
          "courierOnly": {
            "title": "Delivery available only",
            "type": "boolean",
            "description": "Return only listings that offer courier delivery.",
            "default": false
          },
          "sortBy": {
            "title": "Sort order",
            "enum": [
              "relevance:desc",
              "created_at:desc",
              "filter_float_price:asc",
              "filter_float_price:desc"
            ],
            "type": "string",
            "description": "OLX sort criteria. 'created_at:desc' is best for arbitrage hunting (newest first).",
            "default": "relevance:desc"
          },
          "priceMin": {
            "title": "Minimum price",
            "type": "number",
            "description": "Optional minimum price. Note: OLX only accepts price filters on leaf categories, so this may be rejected for broad keyword searches.",
            "default": 0
          },
          "priceMax": {
            "title": "Maximum price",
            "type": "number",
            "description": "Optional maximum price. Note: OLX only accepts price filters on leaf categories, so this may be rejected for broad keyword searches.",
            "default": 0
          },
          "maxItems": {
            "title": "Max listings",
            "type": "integer",
            "description": "Total number of listings to store across all sites and queries. OLX caps a single search at 1000 results, so use several queries or several sites to go higher. Hard cap 20000. Free users are additionally capped at 10.",
            "default": 100
          },
          "maxRequestsPerCrawl": {
            "title": "Max API calls per run",
            "type": "integer",
            "description": "Upper bound on API calls. Each call returns up to ~65 listings and pages are fetched in parallel, so a small number already yields a lot of rows. Hard cap 400.",
            "default": 30
          },
          "maxConcurrency": {
            "title": "Parallel requests",
            "type": "integer",
            "description": "How many API calls to keep in flight at once. OLX paginates by offset, so pages are independent and can be fetched concurrently. Lower this if OLX starts rate-limiting you. Hard cap 25.",
            "default": 12
          },
          "maxRequestsPerMinute": {
            "title": "Max requests per minute",
            "type": "integer",
            "description": "Throttle ceiling that keeps the run under OLX's WAF radar. Hard cap 3000.",
            "default": 300
          },
          "proxy": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Select proxies to be used by your crawler. The supported sites work without one unless OLX blocks your IP."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}