nvNeuralVerge
E-commerce & Marketplaces

OLX Ad Data API — Price, Location, Photos & Seller by Offer ID

Send an OLX offer ID or ad URL and this source returns the ad as structured data: title, description, price, location with coordinates, photos, category attributes and the seller behind it.

Example response
{
  "session_id": "11111111-1111-1111-1111-111111111111",
  "kind": "olx_offer",
  "domain": "olx.pl",
  "offer": "1101702811",
  "offer_id": "1101702811",
  "human": "# OLX offer\n\n- **domain:** olx.pl\n- **offer:** 1101702811\n- **Proxy traffic:** 3.1 KB\n- **Title:** łóżko jednoosobowe z drewna afrykańskiego 90x200\n- **URL:** https://www.olx.pl/d/oferta/lozko-jednoosobowe-z-drewna-afrykanskiego-90x200-CID628-ID1cyDeb.html\n- **Status:** active\n- **Price:** 900 zł negotiable\n- **Location:** Sanok, Podkarpackie",
  "machine": {
    "offer": {
      "id": "1101702811",
      "url": "https://www.olx.pl/d/oferta/lozko-jednoosobowe-z-drewna-afrykanskiego-90x200-CID628-ID1cyDeb.html",
      "offer_title": "łóżko jednoosobowe z drewna afrykańskiego 90x200",
      "description": "witam, mam na sprzedaż łóżko jednoosobowe, robione na zamówienie z drewna afrykańskiego.\n\nPosiada drobne ślady użytkowania, jest wytrzymałe dzięki deskom pod materacem.\n\nŁóżko zostało odkurzone oraz p",
      "status": "active",
      "offer_type": "offer",
      "is_business": false,
      "price": 900,
      "previous_price": null,
      "currency": "PLN",
      "price_label": "900 zł",
      "is_negotiable": true,
      "is_price_arranged": true,
      "salary_from": null,
      "salary_to": null,
      "salary_currency": null,
      "salary_period": null,
      "is_salary_gross": null,
      "created_at": 1790779889,
      "refreshed_at": 1790780328,
      "pushed_at": null,
      "omnibus_pushed_at": null,
      "expires_at": 1793372198,
      "category_id": "1920",
      "category_type": "house_and_garden",
      "location": {
        "city_id": "72583",
        "city": "Sanok",
        "city_alias": "sanok",
        "district_id": null,
        "district": null,
        "region_id": "17",
        "region": "Podkarpackie",
        "region_alias": "podkarpackie",
        "latitude": 49.55815,
        "longitude": 22.20117,
        "radius": 4,
        "zoom": 12,
        "is_detailed": false
      },
      "seller": {
        "id": "2361055558",
        "uuid": "5ffe6c78-223e-481b-b603-0e1f44929d95",
        "name": "rotting_vamp",
        "company_name": null,
        "about": null,
        "image": null,
        "alias": null,
        "has_business_page": false,
        "is_online": false,
        "created_at": 1720711109,
        "last_seen_at": 1790779889,
        "social_network_account_type": null,
        "has_other_offers": true
      },
      "contact_name": "rotting_vamp",
      "attributes": [
        {
          "key": "state",
          "name": "Stan",
          "type": "select",
          "values": [
            "used"
          ],
          "label": "Używane"
        },
        {
          "key": "furniturebrand",
          "name": "Marka",
          "type": "select",
          "values": [
            "other"
          ],
          "label": "Pozostałe"
        }
      ],
      "key_attributes": [],
      "images": [
        "https://ireland.apollo.olxcdn.com:443/v1/files/lfrbr1vynnbe3-PL/image;s=4032x3024",
        "https://ireland.apollo.olxcdn.com:443/v1/files/59cnd2kr0wfu-PL/image;s=4032x3024"
      ],
      "is_highlighted": false,
      "is_top_ad": false,
      "is_promoted": false,
      "is_b2c_ad": false,
      "promotion_options": [],
      "has_phone": false,
      "has_chat": true,
      "has_negotiation": true,
      "has_delivery": false,
      "delivery_mode": "NotEligible",
      "has_gpsr_info": true,
      "is_phone_protected": true,
      "external_url": null,
      "partner_code": null,
      "shop_alias": null
    },
    "proxy_traffic_bytes": 3156
  },
  "total_points": 5
}
You send
An OLX offer ID or ad URL, and the marketplace domain (defaults to olx.pl)
You get back
Price, description, location with coordinates, photos, attributes and seller
Coverage
Public ads on the OLX marketplaces for Poland, Ukraine, Romania, Bulgaria, Portugal, Kazakhstan and Uzbekistan.
Price
5 pts — $5 per 1,000
Charged only when the ad or profile resolves. An ID or URL that doesn't resolve is not billed.
Comparison

Ways to get this data

Three approaches teams use today, and where each one runs into trouble.

ApproachWhat it takesCostTrade-off
Checking the ad by handOpen the page and read itFree, and slowFine for one, unworkable across a list
Building a scraperWrite it, host it, and repair it when OLX changes its pagesEngineering timeA maintenance commitment for something that isn't your product
NeuralVergeOne request per offer$5 per 1,000, misses not billedReturns the ad as it reads at request time. Ads are edited, refreshed and removed by their owners
Response

What you get back

Every field in the response shown above.

FieldTypeDescription
offerobjectThe ad record. Its keys are listed below.
idstringOLX offer ID.
urlstringDirect link to the ad.
offer_titlestringAd title, in the language of the marketplace.
descriptionstringAd description text. In the sample it is cut off after a few hundred characters.
statusstringAd status, e.g. active.
offer_typestringAd type, e.g. offer.
is_businessbooleanWhether the ad was posted by a business account.
pricenumberListed price.
previous_pricenumberEarlier price, when the ad carries one. null in the sample.
currencystringISO currency code, e.g. PLN.
price_labelstringPrice as displayed on the ad.
is_negotiablebooleanWhether the ad is marked negotiable.
is_price_arrangedbooleanWhether the ad carries the price-arranged flag.
salary_fromnumberSalary fields (salary_from, salary_to, salary_currency, salary_period, is_salary_gross). All null on the non-job ad in the sample.
created_atnumberUnix timestamp the ad was created.
refreshed_atnumberUnix timestamp the ad was last refreshed.
pushed_atnumberUnix timestamp of the last push, when there is one. null in the sample.
expires_atnumberUnix timestamp the ad expires.
category_idstringOLX category ID the ad is filed under.
category_typestringCategory type, e.g. house_and_garden.
locationobjectcity_id, city, district, region_id, region, latitude, longitude and the map radius and zoom OLX shows for the ad.
sellerobjectid, uuid, name, company_name, about, image, alias, has_business_page, is_online, created_at, last_seen_at and has_other_offers.
contact_namestringContact name shown on the ad.
attributesarrayCategory-specific attributes, each with key, name, type, values and label (e.g. condition, brand).
imagesarrayPhoto URLs.
is_highlightedbooleanPromotion flags (is_highlighted, is_top_ad, is_promoted, is_b2c_ad), with any promotion_options listed in an array.
has_phonebooleanContact flags (has_phone, has_chat, has_negotiation, is_phone_protected). Whether the ad offers each.
has_deliverybooleanWhether the ad offers OLX delivery.
delivery_modestringDelivery eligibility, e.g. NotEligible.
external_urlstringLink to an external page, when the ad has one. null in the sample.
Integration

How to run it

The same lookup works from the app, the API, or as a tool an agent can call mid-task.

offer is the only required field and takes an ID or a full ad URL. domain defaults to olx.pl; set it to look up an ad on another OLX marketplace. Keep seller.id from the response if you plan to run OLX user or OLX user offers next.

curl -X POST https://api.neuralverge.ai/functions/v1/run-olx-offers \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "offer": "1101702811", "domain": "olx.pl" }'
Use cases

What teams use it for

Where this field shows up in an actual workflow.

Price and condition checks

Read the price, condition attribute and negotiability of a specific ad.

Location analysis

Use the city, region and coordinates on an ad to see where stock is sitting.

Seller follow-up

Pull seller.id here, then look the seller up or list their other ads.

Ad monitoring

Re-read the same ad on a schedule to see whether the price or status changes.

Coverage & limits

Coverage, freshness and limits

What this source covers, how fresh it is, and where it stops.

Coverage

Public ads on the OLX marketplaces for Poland, Ukraine, Romania, Bulgaria, Portugal, Kazakhstan and Uzbekistan.

Freshness

Read at request time.

Handling

This source returns publicly visible ad information, stamped with the offer ID and domain it was read from and a session id you can trace. Ads can name private individuals, so keep seller details under your own data-protection rules.

What it will not do
  • —Price, status and photos reflect the moment of the request; an owner can change or remove an ad right after.
  • —The description in the response is a preview, not always the full text of the ad.
  • —Attributes differ by category, so not every ad carries the same set of fields.
FAQ

Questions, answered

Seven: olx.pl, olx.ua, olx.ro, olx.bg, olx.pt, olx.kz and olx.uz. Set the domain field to choose; it defaults to olx.pl.

Related

Related sources

Try olx offer on your own data

One request format across every source in the catalog.

Get started