olx.ro APIolx.ro ↗
Access OLX.ro listings via API. Search ads by keyword, city, and category. Get full ad details and retrieve seller phone numbers programmatically.
curl -X GET 'https://api.parse.bot/scraper/5995040b-e07e-4598-ad31-7a3d97b425b7/search_ads?limit=3&query=laptop&offset=0' \ -H 'X-API-Key: $PARSE_API_KEY'
Search for ads on OLX.ro with optional filters for category and city. Returns a paginated list of ads including their IDs, titles, seller info, URLs, prices, and locations.
| Param | Type | Description |
|---|---|---|
| limit | integer | Number of results to return per page. |
| query | string | Search keyword to filter ads by title and description. |
| offset | integer | Pagination offset for retrieving subsequent pages of results. |
| city_id | integer | City ID for location filtering (e.g., 39939 for Iasi, 1 for Bucuresti). |
| category_id | integer | Category ID for filtering (e.g., 1211 for goods, 2529 for electronics, 1657 for automotive). |
{
"type": "object",
"fields": {
"data": "array of ad objects containing id, url, title, description, params (price, state), user info, location, photos, and category",
"links": "object with self, next, and first pagination URLs",
"metadata": "object with total_elements, visible_total_count, promoted list, and search_id"
},
"sample": {
"data": {
"data": [
{
"id": 290998172,
"url": "https://www.olx.ro/d/oferta/plita-aragaz-mini-4-ochiuri-arzator-gaz-bucatarie-livrat-gratuit-is-IDjGZUU.html",
"user": {
"id": 285,
"name": "Ionut"
},
"title": "Plita Aragaz Mini 4 Ochiuri Arzator Gaz Bucatarie Livrat Gratuit IS",
"params": [
{
"key": "price",
"name": "Pret",
"type": "price",
"value": {
"label": "220 lei",
"value": 220,
"currency": "RON"
}
}
],
"category": {
"id": 2529,
"type": "electronics"
},
"location": {
"city": {
"id": 39939,
"name": "Iasi"
},
"region": {
"id": 10,
"name": "Iasi"
}
}
}
],
"links": {
"next": {
"href": "https://www.olx.ro/api/v1/offers?offset=3&limit=3&q=laptop"
},
"self": {
"href": "https://www.olx.ro/api/v1/offers?offset=0&limit=3&q=laptop"
}
},
"metadata": {
"total_elements": 1000,
"visible_total_count": 3911320
}
},
"status": "success"
}
}About the olx.ro API
The OLX.ro API provides 3 endpoints to search listings, retrieve full ad details, and fetch seller phone numbers from Romania's largest classifieds platform. The search_ads endpoint returns paginated results including ad IDs, titles, prices, locations, and seller info, while get_ad_details exposes the complete ad object — photos, delivery options, parameters, and category data — for any given ad ID.
Search and Filter Listings
The search_ads endpoint accepts a query string alongside optional filters: category_id (e.g., 1211 for general goods, 2529 for electronics, 1657 for automotive), city_id (e.g., 1 for Bucharest, 39939 for Iași), limit, and offset for pagination. Each ad object in the data array includes an id, url, title, description, structured params (price, condition), user info, location, photos, and category. The metadata field returns total_elements, visible_total_count, a promoted list, and a search_id for tracking result sets. The links object provides self, next, and first URLs for cursor-free pagination.
Full Ad Details
get_ad_details accepts a single required ad_id (obtainable from search_ads results) and returns the complete ad record. This includes all fields from search plus delivery options and contact info embedded in the response. This is the right endpoint when you need the full description text, all photo URLs, or the ad's structured attribute list (e.g., mileage for vehicles, room count for real estate).
Seller Phone Retrieval
get_seller_phone takes an ad_id and an optional ad_url, and returns a phones array containing the seller's phone number strings. This works for most private and business ads. Ads where the seller has enabled protect_phone may not return a phone number. The ad_url parameter is optional but can improve resolution for ads that require referral context.
- Aggregate automotive listings from OLX.ro filtered by category_id 1657 to build a used-car price tracker
- Monitor real estate ads in Bucharest (city_id 1) by querying search_ads with apartment-related keywords
- Build a lead-generation tool that collects seller phone numbers via get_seller_phone for B2B outreach
- Track price changes on electronics listings (category_id 2529) by diffing get_ad_details responses over time
- Populate a classifieds aggregator with OLX.ro listings including photos, descriptions, and location data
- Paginate through all ads matching a keyword using offset and total_elements to build a full dataset
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 250 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does OLX.ro have an official developer API?+
What does search_ads return and how does pagination work?+
data, each containing id, url, title, description, params (price and condition), user info, location, photos, and category. The metadata object includes total_elements so you can calculate how many pages exist. Use the offset parameter to step through results, or follow the links.next URL returned in each response.Are there ads where get_seller_phone won't return a number?+
protect_phone option that masks their number from direct retrieval. For those ads, the phones array will be empty. The majority of private and business ads without this setting enabled do return a phone number.Does the API cover OLX platforms in other countries besides Romania?+
Can I filter search_ads by both city and category at the same time?+
city_id and category_id are independent optional parameters and can be combined in a single request along with a query string. For example, you can search for 'apartament' in Bucharest (city_id 1) within a specific category simultaneously.