crawlbaseDocs
Log in

Usage

Send the individual OLX ad URL to the Crawling API with the scraper=olx-item parameter. Ad pages live under the /d/ path. The scraper covers OLX's shared frontend, so the same scraper name works across markets - only the domain in the request URL changes.

curl 'https://api.crawlbase.com/?token=YOUR_TOKEN' \
  --data-urlencode 'url=https://www.olx.pl/d/oferta/bmw-320d-f30-2016-xdrive-IDABC12.html' \
  --data-urlencode 'scraper=olx-item' -G
from crawlbase import CrawlingAPI

api = CrawlingAPI({'token': 'YOUR_TOKEN'})
res = api.get(
    'https://www.olx.pl/d/oferta/bmw-320d-f30-2016-xdrive-IDABC12.html',
    {'scraper': 'olx-item'}
)

import json
data = json.loads(res['body'])
const { CrawlingAPI } = require('crawlbase');
const api = new CrawlingAPI({ token: 'YOUR_TOKEN' });

const res = await api.get(
  'https://www.olx.pl/d/oferta/bmw-320d-f30-2016-xdrive-IDABC12.html',
  { scraper: 'olx-item' }
);
const data = JSON.parse(res.body);
require 'crawlbase'
api = Crawlbase::API.new(token: 'YOUR_TOKEN')

res = api.get('https://www.olx.pl/d/oferta/bmw-320d-f30-2016-xdrive-IDABC12.html', scraper: 'olx-item')
data = JSON.parse(res.body)

Example input URL

Any individual OLX ad URL (the /d/ detail path). A few examples across OLX markets:

https://www.olx.pl/d/oferta/bmw-320d-f30-2016-xdrive-IDABC12.html
https://www.olx.ua/d/uk/obyavlenie/planka-IDVDALa.html
https://www.olx.pt/d/anuncio/iphone-15-pro-IDXYZ99.html

The olx-item scraper works on the shared OLX frontend across olx.pl, olx.ua, olx.pt, olx.ro, olx.bg, olx.kz, and olx.uz - only the TLD in the request URL changes. OLX rate-limits datacenter IPs, but you don't pick a proxy pool yourself - the Crawling API routes through its residential network by default and auto-selects the best exit per request. Pass country= (e.g. country=PL for olx.pl) only when you need a specific market's geo.

Response

The scraper returns a JSON object with the full ad, including its parameters, photos, location, and seller.

url
string
The ad page URL that was scraped.
id
integer | null
OLX ad id.
title
string | null
Ad title.
description
string | null
Full ad description text as written by the seller.
category
object
Category object for the ad.
category.id
integer | null
OLX category id.
category.type
string | null
Category type slug (e.g. automotive).
price
object
Price object for the ad.
price.value
number | null
Numeric price value.
price.currency
string | null
ISO currency code (e.g. PLN, UAH, EUR).
price.currencySymbol
string | null
Display currency symbol (e.g. ).
price.displayValue
string | null
Human-readable formatted price as shown on OLX.
price.negotiable
boolean
Whether the seller marked the price as negotiable.
price.free
boolean
Whether the ad is listed as free.
price.exchange
boolean
Whether the seller is open to an exchange instead of cash.
itemCondition
string | null
Item condition when provided (e.g. new, used).
params
array
Array of ad-specific parameters (make, year, mileage, size, and so on).
params[].key
string | null
Machine-readable parameter key.
params[].name
string | null
Localized parameter label as shown on OLX.
params[].value
string | null
Localized parameter value.
params[].normalizedValue
string | null
Normalized value suitable for filtering, when available.
location
object
Location object for the ad.
location.city
string | null
City name.
location.region
string | null
Region, voivodeship, or oblast name.
location.district
string | null
District or neighborhood, when present.
location.path
string | null
Human-readable location path (region, city, district).
location.latitude
number | null
Approximate latitude.
location.longitude
number | null
Approximate longitude.
photos
array
Array of full-size photo URLs for the ad.
seller
object
Seller object for the ad.
seller.id
integer | null
OLX seller id.
seller.name
string | null
Seller display name.
seller.type
string | null
Seller type (e.g. private, business).
seller.companyName
string | null
Registered company name for business sellers.
seller.registeredAt
string | null
ISO 8601 timestamp of when the seller registered on OLX.
seller.lastSeenAt
string | null
ISO 8601 timestamp of the seller's last activity.
contact
object
Contact options object for the ad.
contact.name
string | null
Contact name shown on the ad.
contact.phoneAvailable
boolean
Whether a phone number is available for this ad.
contact.chatAvailable
boolean
Whether OLX chat is enabled for this ad.
contact.courier
boolean
Whether OLX courier/delivery is offered.
contact.negotiation
boolean
Whether the seller accepts price negotiation.
createdTime
string | null
ISO 8601 timestamp of when the ad was posted.
lastRefreshTime
string | null
ISO 8601 timestamp of when the ad was last refreshed by the seller.
validToTime
string | null
ISO 8601 timestamp of when the ad expires.
status
string | null
Ad status (e.g. active, removed).
isActive
boolean
Whether the ad is currently active.
isBusiness
boolean
Whether the ad was posted by a business account.
isPromoted
boolean
Whether the ad is a paid/promoted listing.
isHighlighted
boolean
Whether the ad is visually highlighted.

Sample response

{
  "url": "https://www.olx.pl/d/oferta/bmw-320d-f30-2016-xdrive-IDABC12.html",
  "id": 915581849,
  "title": "BMW 320d F30 2016 xDrive - pełen serwis",
  "description": "Sprzedam BMW 320d F30, rok 2016, xDrive. Pełna historia serwisowa, bezwypadkowy, jeden właściciel.",
  "category": {
    "id": 4,
    "type": "automotive"
  },
  "price": {
    "value": 45900,
    "currency": "PLN",
    "currencySymbol": "zł",
    "displayValue": "45 900 zł",
    "negotiable": true,
    "free": false,
    "exchange": false
  },
  "itemCondition": "used",
  "params": [
    {
      "key": "make",
      "name": "Marka",
      "value": "BMW",
      "normalizedValue": "bmw"
    },
    {
      "key": "year",
      "name": "Rok produkcji",
      "value": "2016",
      "normalizedValue": "2016"
    },
    {
      "key": "mileage",
      "name": "Przebieg",
      "value": "142 000 km",
      "normalizedValue": "142000"
    }
  ],
  "location": {
    "city": "Warszawa",
    "region": "Mazowieckie",
    "district": "Mokotów",
    "path": "Mazowieckie, Warszawa, Mokotów",
    "latitude": 52.2297,
    "longitude": 21.0122
  },
  "photos": [
    "https://ireland.apollo.olxcdn.com:443/v1/files/765inat2qu8k1-PL/image;s=1024x768",
    "https://ireland.apollo.olxcdn.com:443/v1/files/a1b2c3d4e5f6-PL/image;s=1024x768"
  ],
  "seller": {
    "id": 8842013,
    "name": "Auto Komis Premium",
    "type": "business",
    "companyName": "Auto Komis Premium Sp. z o.o.",
    "registeredAt": "2019-03-11T00:00:00+01:00",
    "lastSeenAt": "2026-07-21T18:42:00+02:00"
  },
  "contact": {
    "name": "Auto Komis Premium",
    "phoneAvailable": true,
    "chatAvailable": true,
    "courier": false,
    "negotiation": true
  },
  "createdTime": "2026-07-18T10:24:55+02:00",
  "lastRefreshTime": "2026-07-21T08:05:12+02:00",
  "validToTime": "2026-08-18T10:24:55+02:00",
  "status": "active",
  "isActive": true,
  "isBusiness": true,
  "isPromoted": true,
  "isHighlighted": false
}