{
    "version": "ujb.site-guide/v1",
    "site": "Otodom",
    "domain": "otodom.pl",
    "category": "real_estate",
    "status": "working",
    "status_label": "Working",
    "success_rate_7d": 100,
    "checks_7d": 6,
    "last_checked_at": "2026-11-05T17:03:40Z",
    "last_ok_at": "2026-11-05T17:03:40Z",
    "page_types": [
        {
            "page_type": "Public pages",
            "page_kinds": [
                "page",
                "detail"
            ],
            "status": "working",
            "success_rate_7d": 100,
            "checks_7d": 6,
            "endpoint": "/scrape",
            "params": {
                "js": true
            },
            "proxy": "default",
            "measured": true,
            "max_credits": 5,
            "learned_settings": null,
            "example_url": "https://www.otodom.pl/pl/wyniki/sprzedaz/mieszkanie/cala-polska",
            "playground": "https://ujeebu.com/playground?endpoint=scrape&url=https%3A%2F%2Fwww.otodom.pl%2Fpl%2Fwyniki%2Fsprzedaz%2Fmieszkanie%2Fcala-polska&js=true&autosend=0&uj_from=site-guide",
            "recipes": [
                {
                    "page_kind": "listing",
                    "label": "Search and listing pages",
                    "recipe": "otodom",
                    "call": "GET https://api.ujeebu.com/scrape?url=https%3A%2F%2Fwww.otodom.pl%2Fpl%2Fwyniki%2Fsprzedaz%2Fmieszkanie%2Fcala-polska&recipe=otodom",
                    "credits": 5,
                    "validated_at": "2026-11-04T11:14:09Z",
                    "params": {
                        "js": true
                    },
                    "extract_rules": {
                        "listings": {
                            "type": "fn",
                            "fn": "const e = document.getElementById('__NEXT_DATA__'); if (!e) return null; const d = JSON.parse(e.textContent); const P = d.props && d.props.pageProps && d.props.pageProps.data; const I = (P && P.searchAds && P.searchAds.items) || []; const rooms = {ONE: 1, TWO: 2, THREE: 3, FOUR: 4, FIVE: 5, SIX: 6, SEVEN: 7, EIGHT: 8, NINE: 9, TEN: 10, MORE: '10+'}; return I.filter(x => x && x.slug).map(x => { const L = (x.location && x.location.reverseGeocoding && x.location.reverseGeocoding.locations) || []; const loc = L.length ? L[L.length - 1].fullName : null; const tp = x.totalPrice || null; const img = (x.images || [])[0] || {}; return { title: x.title || null, url: location.origin + '/pl/oferta/' + x.slug, price: tp && !x.hidePrice ? tp.value : null, currency: tp ? tp.currency : null, price_per_m2: x.pricePerSquareMeter ? x.pricePerSquareMeter.value : null, area_m2: x.areaInSquareMeters || null, rooms: x.roomsNumber ? (rooms[x.roomsNumber] || x.roomsNumber) : null, estate: x.estate || null, transaction: x.transaction || null, location: loc, image: img.medium || img.small || null }; });"
                        }
                    },
                    "fields": {
                        "listings": "list of 3+ items",
                        "listings[].area_m2": "number",
                        "listings[].currency": "text",
                        "listings[].estate": "text",
                        "listings[].image": "URL",
                        "listings[].location": "text",
                        "listings[].price": "number",
                        "listings[].price_per_m2": "number",
                        "listings[].rooms": "number",
                        "listings[].title": "text",
                        "listings[].transaction": "text",
                        "listings[].url": "URL"
                    },
                    "validated_on": [
                        "https://www.otodom.pl/pl/wyniki/sprzedaz/mieszkanie/cala-polska",
                        "https://www.otodom.pl/pl/wyniki/wynajem/mieszkanie/mazowieckie/warszawa/warszawa/warszawa"
                    ],
                    "url_pattern": null,
                    "listing_template": null,
                    "pagination": null,
                    "search": {
                        "recipe": "otodom/search",
                        "result_recipe": "otodom/listing",
                        "params": [
                            {
                                "name": "deal",
                                "type": "enum",
                                "required": false,
                                "default": "buy",
                                "enum": [
                                    "buy",
                                    "rent"
                                ],
                                "values": {
                                    "buy": "sprzedaz",
                                    "rent": "wynajem"
                                },
                                "description": "buy (the default) or rent.",
                                "example": "rent",
                                "var": "deal"
                            },
                            {
                                "name": "estate",
                                "type": "enum",
                                "required": false,
                                "default": "flat",
                                "enum": [
                                    "flat",
                                    "house"
                                ],
                                "values": {
                                    "flat": "mieszkanie",
                                    "house": "dom"
                                },
                                "description": "flat (the default) or house.",
                                "example": "house",
                                "var": "estate"
                            },
                            {
                                "name": "city",
                                "type": "enum",
                                "required": false,
                                "default": "poland",
                                "enum": [
                                    "poland",
                                    "warszawa",
                                    "krakow",
                                    "wroclaw",
                                    "poznan",
                                    "gdansk",
                                    "lodz"
                                ],
                                "values": {
                                    "poland": "cala-polska",
                                    "warszawa": "mazowieckie/warszawa/warszawa/warszawa",
                                    "krakow": "malopolskie/krakow/krakow/krakow",
                                    "wroclaw": "dolnoslaskie/wroclaw/wroclaw/wroclaw",
                                    "poznan": "wielkopolskie/poznan/poznan/poznan",
                                    "gdansk": "pomorskie/gdansk/gdansk/gdansk",
                                    "lodz": "lodzkie/lodz/lodz/lodz"
                                },
                                "description": "poland (the whole country, the default) or one of the big cities: warszawa, krakow, wroclaw, poznan, gdansk, lodz.",
                                "example": "warszawa",
                                "var": "location"
                            },
                            {
                                "name": "max_price",
                                "type": "int",
                                "required": false,
                                "min": 0,
                                "max": 100000000,
                                "description": "Highest price in PLN (monthly rent when deal is rent).",
                                "example": 600000,
                                "var": "priceMax"
                            },
                            {
                                "name": "page",
                                "type": "int",
                                "required": false,
                                "default": 1,
                                "min": 1,
                                "max": 20,
                                "description": "Result page, 1 is the first page.",
                                "example": 2,
                                "var": "page"
                            }
                        ],
                        "url_template": "https://www.otodom.pl/pl/wyniki/{deal}/{estate}/{+location}{?priceMax,page}",
                        "pagination": {
                            "param": "page",
                            "var": "page",
                            "start": 1,
                            "max": 20,
                            "how": "query",
                            "first": "omit"
                        },
                        "example": {
                            "params": {
                                "deal": "buy"
                            },
                            "url": "https://www.otodom.pl/pl/wyniki/sprzedaz/mieszkanie/cala-polska"
                        },
                        "call": "GET https://api.ujeebu.com/scrape?recipe=otodom/search&deal=buy",
                        "today_call": "GET https://api.ujeebu.com/scrape?url=https%3A%2F%2Fwww.otodom.pl%2Fpl%2Fwyniki%2Fsprzedaz%2Fmieszkanie%2Fcala-polska&recipe=otodom%2Flisting",
                        "checked_at": "2026-11-04 11:28:28"
                    }
                }
            ]
        }
    ],
    "guide_url": "https://ujeebu.com/scrape/otodom",
    "note": "Ujeebu scrapes any public website. These guides are a selection of popular sites we test every day, with settings that work today; a site that is not listed works with the same API: try any URL in the Playground (https://ujeebu.com/playground) or send us the URL (https://ujeebu.com/contact) and we will check it.",
    "billing": "Only HTTP 200 and 404 responses are billed.",
    "auth": "Header ApiKey: <your key>",
    "api_base": "https://api.ujeebu.com",
    "how_to_use_recipes": "GET https://api.ujeebu.com/scrape?url=<page>&recipe=<recipe>: the API applies the recipe's extract_rules and params (yours win when you send them) and answers {\"result\": {...}} with the headers Ujb-Recipe and Ujb-Credits. A recipe with \"recipe\": null is not served by name: POST /scrape with url, the params and extract_rules. Docs: https://ujeebu.com/docs/apis/scrape/recipes"
}