{
  "openapi": "3.0.1",
  "info": {
    "title": "OLX.ro Car Scraper: Romanian Used Car Ads & Prices",
    "description": "Scrape olx.ro car ads (Autoturisme) with the site's own filters: 134 brands, models, county, year, price, km, fuel, gearbox. Seller, VIN, fair-price check, alerts. No proxy, $1 per 1,000 ads.",
    "version": "2.0",
    "x-build-id": "1EZxqMcJeMMF8S7No"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/extractify-labs~olx-ro-cars/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-extractify-labs-olx-ro-cars",
        "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/extractify-labs~olx-ro-cars/runs": {
      "post": {
        "operationId": "runs-sync-extractify-labs-olx-ro-cars",
        "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/extractify-labs~olx-ro-cars/run-sync": {
      "post": {
        "operationId": "run-sync-extractify-labs-olx-ro-cars",
        "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": "olx.ro search URLs",
            "type": "array",
            "description": "Optional. Paste any olx.ro car search you set up in your browser (brand, county, price, fuel, sorting, anything) and the actor collects exactly those results, up to 1,000 ads per link (olx.ro's own limit). When set, the search filters below are ignored.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "brands": {
            "title": "Brands",
            "type": "array",
            "description": "Car brands as shown on olx.ro, e.g. Dacia, Volkswagen, BMW, Land Rover (not case-sensitive). All 134 olx.ro brands are supported. Leave empty for all brands.",
            "items": {
              "type": "string"
            }
          },
          "models": {
            "title": "Models",
            "type": "array",
            "description": "Model names as shown on olx.ro, e.g. Logan, Duster, Golf, Seria 3 (not case-sensitive). Each model only narrows its own brand, and a model on its own is enough: \"Logan\" searches Dacia Logan.",
            "items": {
              "type": "string"
            }
          },
          "query": {
            "title": "Keyword",
            "type": "string",
            "description": "Free-text search, like the olx.ro search box, e.g. \"4x4\" or \"carte service\"."
          },
          "county": {
            "title": "County (județ)",
            "enum": [
              "28",
              "1",
              "11",
              "3",
              "19",
              "21",
              "18",
              "37",
              "4",
              "46",
              "36",
              "40",
              "26",
              "2",
              "7",
              "29",
              "35",
              "8",
              "9",
              "41",
              "33",
              "23",
              "27",
              "39",
              "10",
              "16",
              "32",
              "22",
              "24",
              "43",
              "6",
              "20",
              "15",
              "12",
              "17",
              "42",
              "13",
              "38",
              "34",
              "30",
              "31"
            ],
            "type": "string",
            "description": "Only ads from this county. Leave empty for the whole of Romania."
          },
          "condition": {
            "title": "Condition",
            "enum": [
              "any",
              "used",
              "new"
            ],
            "type": "string",
            "description": "New or used cars.",
            "default": "any"
          },
          "fuelTypes": {
            "title": "Fuel",
            "type": "array",
            "description": "One or more fuel types. Leave empty for all.",
            "items": {
              "type": "string",
              "enum": [
                "petrol",
                "diesel",
                "lpg",
                "hybrid",
                "plugin-hybrid",
                "electric"
              ],
              "enumTitles": [
                "Petrol (Benzina)",
                "Diesel",
                "LPG (GPL)",
                "Hybrid (Hibrid)",
                "Plug-in hybrid",
                "Electric"
              ]
            }
          },
          "gearbox": {
            "title": "Gearbox",
            "enum": [
              "any",
              "manual",
              "automatic"
            ],
            "type": "string",
            "description": "Manual or automatic.",
            "default": "any"
          },
          "bodyTypes": {
            "title": "Body type",
            "type": "array",
            "description": "One or more body types. Leave empty for all.",
            "items": {
              "type": "string",
              "enum": [
                "sedan",
                "hatchback",
                "estate-car",
                "suv",
                "off-road-vehicle",
                "coupe",
                "cabriolet",
                "mvp",
                "minibus",
                "pickup"
              ],
              "enumTitles": [
                "Sedan (Berlina)",
                "Hatchback",
                "Estate (Break)",
                "SUV",
                "Off-road",
                "Coupe",
                "Convertible (Cabrio)",
                "MPV (Monovolum)",
                "Minibus",
                "Pickup"
              ]
            }
          },
          "colors": {
            "title": "Colour",
            "type": "array",
            "description": "One or more colours. Leave empty for all.",
            "items": {
              "type": "string",
              "enum": [
                "black",
                "white",
                "gray",
                "silver",
                "blue",
                "red",
                "green",
                "gold",
                "beige",
                "other"
              ],
              "enumTitles": [
                "Black (Negru)",
                "White (Alb)",
                "Grey (Gri)",
                "Silver (Argintiu)",
                "Blue (Albastru)",
                "Red (Rosu)",
                "Green (Verde)",
                "Yellow / gold (Galben / Auriu)",
                "Brown / beige (Maro / Bej)",
                "Other colour"
              ]
            }
          },
          "steeringWheel": {
            "title": "Steering wheel",
            "enum": [
              "any",
              "lhd",
              "rhd"
            ],
            "type": "string",
            "description": "Left-hand drive (standard in Romania) or right-hand drive.",
            "default": "any"
          },
          "yearFrom": {
            "title": "Year from",
            "minimum": 1900,
            "maximum": 2100,
            "type": "integer",
            "description": "Oldest manufacturing year, inclusive."
          },
          "yearTo": {
            "title": "Year to",
            "minimum": 1900,
            "maximum": 2100,
            "type": "integer",
            "description": "Newest manufacturing year, inclusive."
          },
          "priceFrom": {
            "title": "Price from",
            "minimum": 0,
            "type": "integer",
            "description": "Lowest price, in the price currency below."
          },
          "priceTo": {
            "title": "Price to",
            "minimum": 0,
            "type": "integer",
            "description": "Highest price, in the price currency below."
          },
          "priceCurrency": {
            "title": "Price currency",
            "enum": [
              "EUR",
              "RON"
            ],
            "type": "string",
            "description": "Currency for the price filters. olx.ro converts every ad, so a RON price filter also finds ads listed in EUR (and the other way round). Each ad also gets its price converted to this currency.",
            "default": "EUR"
          },
          "filterByCurrency": {
            "title": "Only ads listed in this currency",
            "type": "boolean",
            "description": "Keep only ads whose seller set the price in the price currency above.",
            "default": false
          },
          "mileageFrom": {
            "title": "Mileage from (km)",
            "minimum": 0,
            "type": "integer",
            "description": "Lowest mileage."
          },
          "mileageTo": {
            "title": "Mileage to (km)",
            "minimum": 0,
            "type": "integer",
            "description": "Highest mileage."
          },
          "powerFrom": {
            "title": "Power from (HP)",
            "minimum": 0,
            "type": "integer",
            "description": "Lowest engine power."
          },
          "powerTo": {
            "title": "Power to (HP)",
            "minimum": 0,
            "type": "integer",
            "description": "Highest engine power."
          },
          "engineSizeFrom": {
            "title": "Engine size from (cm³)",
            "minimum": 0,
            "type": "integer",
            "description": "Smallest engine displacement."
          },
          "engineSizeTo": {
            "title": "Engine size to (cm³)",
            "minimum": 0,
            "type": "integer",
            "description": "Largest engine displacement."
          },
          "sellerType": {
            "title": "Seller",
            "enum": [
              "any",
              "private",
              "business"
            ],
            "type": "string",
            "description": "Private sellers or dealers.",
            "default": "any"
          },
          "excludeAutovitAds": {
            "title": "Skip ads mirrored from Autovit",
            "type": "boolean",
            "description": "About a third of olx.ro car ads are dealer ads mirrored from autovit.ro. Turn this on to keep only ads posted directly on olx.ro, which are mostly private sellers. Mirrored ads are always marked in the output (isAutovitCrossPost).",
            "default": false
          },
          "sortBy": {
            "title": "Sort by",
            "enum": [
              "created_at:desc",
              "filter_float_price:asc",
              "filter_float_price:desc",
              "relevance:desc"
            ],
            "type": "string",
            "description": "Order in which olx.ro returns the ads.",
            "default": "created_at:desc"
          },
          "maxItems": {
            "title": "Max ads",
            "minimum": 1,
            "type": "integer",
            "description": "Stop after this many ads. olx.ro shows at most 1,000 ads per search. Above 1,000, the actor splits the search by brand (if you chose none), then by year band, then by price band to reach more. Pasted search links return up to 1,000 ads each.",
            "default": 100
          },
          "outputMode": {
            "title": "Output fields",
            "enum": [
              "full",
              "compact"
            ],
            "type": "string",
            "description": "Full returns every field. Compact keeps the 18 fields most buyers compare on: id, link, country, title, price, currency, make, model, year, mileage, fuel, gearbox, body, condition, engine size, power, colour and description. Seller, location, photos and price-check fields are left out.",
            "default": "full"
          },
          "descriptionMaxLength": {
            "title": "Description length limit",
            "minimum": 0,
            "type": "integer",
            "description": "Cut ad descriptions to this many characters. 0 removes the description. Empty keeps it in full."
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Not needed: olx.ro works without a proxy. Only switch on Apify Proxy if your runs start getting blocked.",
            "default": {
              "useApifyProxy": false
            }
          },
          "incrementalMode": {
            "title": "Incremental mode",
            "type": "boolean",
            "description": "Remember ads between runs and return only what changed: new ads, price or detail changes, and (optionally) ads that disappeared. The first run only builds the baseline, so it returns no ads and costs nothing.",
            "default": false
          },
          "stateKey": {
            "title": "Monitor name",
            "type": "string",
            "description": "Name for this monitor's memory. Use a different name per search you track, e.g. \"dacia-logan-cluj\". Changing it starts over.",
            "default": "olx-ro-cars-state"
          },
          "emitUnchanged": {
            "title": "Also return unchanged ads",
            "type": "boolean",
            "description": "Return ads that did not change since the last run too (marked UNCHANGED).",
            "default": false
          },
          "emitMissing": {
            "title": "Also return disappeared ads",
            "type": "boolean",
            "description": "Return ads that were there last time but are gone now (marked MISSING), usually sold or expired. Skipped when the run stops at Max ads, to avoid false alarms.",
            "default": false
          },
          "notifyOn": {
            "title": "Notify on",
            "enum": [
              "none",
              "new_listings",
              "price_drops",
              "both"
            ],
            "type": "string",
            "description": "Build a short summary of new ads and/or price drops at the end of each run. Needs Incremental mode.",
            "default": "none"
          },
          "notifyMinPriceDropPct": {
            "title": "Minimum price drop (%)",
            "minimum": 1,
            "maximum": 99,
            "type": "integer",
            "description": "Only report price drops of at least this percentage.",
            "default": 5
          },
          "notifyTopN": {
            "title": "Ads per summary",
            "minimum": 1,
            "maximum": 200,
            "type": "integer",
            "description": "Maximum new ads and price drops listed in each summary.",
            "default": 20
          },
          "notifyWebhookUrl": {
            "title": "Webhook URL",
            "type": "string",
            "description": "Optional. POST the summary as JSON to this address, e.g. a Slack or Discord webhook, Make, n8n or Zapier. The summary is always saved in the olx-ro-cars-notifications store too."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}