Playground Sign in Start free
Recipe Real estate

Otodom scraper API: search results as JSON

Send any Otodom page URL with recipe=otodom and get title, price, location and 8 more fields as JSON. No selectors to write, no proxies to pick.

  • 1 page type
  • 11 fields
  • 5 credits a page · $0.50 per 1,000
  • Working · 100% in 7 days

5,000 free credits for 7 days, no card.

recipe=otodom
curl -G 'https://api.ujeebu.com/scrape' \
  -H "ApiKey: $UJEEBU_API_KEY" \
  --data-urlencode 'url=https://www.otodom.pl/pl/wyniki/sprzedaz/mieszkanie/cala-polska' \
  --data-urlencode 'recipe=otodom'
200 OK · JSON
{
    "result": {
        "location": "Muranów, Śródmieście, Warszawa, mazowieckie",
        "area_m2": 35.3,
        "currency": "PLN",
        "estate": "FLAT"
    },
    "success": true
}

What you get from Otodom

The fields of each page type and a real sample from our last validation, shortened.

Search and listing pages recipe=otodom 5 credits a page

FieldTypeExample
listingslist of 3+ items
listings[].area_m2number35.3
listings[].currencytextPLN
listings[].estatetextFLAT
listings[].imageURLhttps://ireland.apollo.olxcdn.com/v1/files/eyJhbGciOiJIUzI1NiIsInR5...
listings[].locationtextMuranów, Śródmieście, Warszawa, mazowieckie
listings[].pricenumber670000
listings[].price_per_m2number18980.17
listings[].roomsnumber2
listings[].titletext2 pokoje | Loggia | Parkiet | Śródmieście
listings[].transactiontextSELL
listings[].urlURLhttps://www.otodom.pl/pl/oferta/2-pokoje-loggia-parkiet-srodmiescie...

Sample answer, validated 2026-11-04

{
    "listings": [
        {
            "area_m2": 35.3,
            "currency": "PLN",
            "estate": "FLAT",
            "image": "https://ireland.apollo.olxcdn.com/v1/files/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJmbiI6InhtczIwaXBma3RwcTItRUNPU1lTVEVNIiwidyI6W3siZm4iOiJlbnZmcXFlMWF5NGsxL...",
            "location": "Muranów, Śródmieście, Warszawa, mazowieckie",
            "price": 670000,
            "price_per_m2": 18980.17,
            "rooms": 2,
            "title": "2 pokoje | Loggia | Parkiet | Śródmieście",
            "transaction": "SELL",
            "url": "https://www.otodom.pl/pl/oferta/2-pokoje-loggia-parkiet-srodmiescie-ID4DKEp"
        },
        {
            "area_m2": 62.31,
            "currency": "PLN",
            "estate": "FLAT",
            "image": "https://ireland.apollo.olxcdn.com/v1/files/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJmbiI6IjRlMGpwNXF5ZmM4OTEtQVBMIiwidyI6W3siZm4iOiJlbnZmcXFlMWF5NGsxLUFQTCIsI...",
            "location": "Kawęczyn-Wygoda, Rembertów, Warszawa, mazowieckie",
            "price": 1009000,
            "price_per_m2": 16193.23,
            "rooms": 3,
            "title": "3 pokoje z balkonem i klimatyzacją | 62,31 m² | Rembertów",
            "transaction": "SELL",
            "url": "https://www.otodom.pl/pl/oferta/3-pokoje-z-balkonem-i-klimatyzacja-62-31-m-rembertow-ID4DzzY"
        }
    ]
}

One call

Send the page URL and the recipe name to the Scrape API. The recipe brings the extract rules and the settings that work on Otodom (JavaScript rendering).

curl -G 'https://api.ujeebu.com/scrape' \
  -H "ApiKey: $UJEEBU_API_KEY" \
  --data-urlencode 'url=https://www.otodom.pl/pl/wyniki/sprzedaz/mieszkanie/cala-polska' \
  --data-urlencode 'recipe=otodom'

The answer is {"result": {...}} with the headers Ujb-Recipe and Ujb-Credits. Your own parameters always win over the recipe.

What people build with Otodom data

  • Market prices

    Follow asking prices by city and property size to see where the market moves.

    Learn more
  • New listings alerts

    Catch new listings in the areas you watch shortly after they appear.

  • Inventory tracking

    Count active listings per area and type over time.

Price

Same price as the page call, no fee for the recipe. Only successful responses are billed; blocked, timed-out and failed requests are free.

Page typeCredits a pagePer 1,000, StarterPer 1,000, Pro
Search results5$0.82$0.50

See all plans

FAQ

What does the Otodom recipe return?

JSON with 11 fields from search results (recipe=otodom), for example title, price, location, area_m2, currency. The answer is {"result": {...}} with the fields shown on this page.

How much does it cost to scrape Otodom?

5 credits a page ($0.50 per 1,000 on Pro, $0.82 on Starter). Same price as the page call, no fee for the recipe. Only successful responses are billed; blocked, timed-out and failed requests are free.

Do I need proxies or a headless browser?

No. The recipe brings the settings that work on Otodom: JavaScript rendering. Send only the URL and recipe=otodom.

What happens when Otodom changes its pages?

We check Otodom every day and re-validate the recipe on real pages every week, then fix it when the site changes. Until a fix is live, the API answers 404 "the recipe has no working version" instead of empty data, and that call is free.

Can I search Otodom with parameters?

Yes, in one call: send recipe=otodom/search with deal, estate, city, max_price, page and no URL. We build the Otodom search URL (returned in the Ujb-Url header), apply recipe=otodom/listing and answer its JSON, at the same credits as the page call. A missing or invalid parameter answers 400 naming it, and that call is free.

Get Otodom data as JSON today.

5,000 free credits for 7 days. No card.