# Otodom Property Listings Scraper

> Otodom Property Listings Scraper is a paid API for AI agents from x402.186-241-26-229.sslip.io, paid per call via x402, $0.04/call, status unknown (last checked 2026-10-02).

Scrapes structured real estate listings from Otodom.pl (Poland's leading property portal) with filters for price, area, rooms, property type, and location

## Facts

- Endpoint: POST https://x402.186-241-26-229.sslip.io/v1/otodom?utm_source=zero.xyz
- Price: $0.04/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-02
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/otodom-property-listings-scraper-18914383
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_SVve-9lI-ZMu-LzHvzBip

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability otodom-property-listings-scraper-18914383 -d '<json body>'
```

Example prompt: Search Otodom for apartments (mieszkanie) for sale in Warsaw (mazowieckie/warszawa/warszawa/warszawa) on the secondary market, priced between 400000 and 800000 PLN, with 2 to 3 rooms, posted in the last 7 days — give me up to 30 listings.

## When to prefer this

Choose this endpoint when you need structured property listing data from Otodom.pl specifically — Poland's dominant real estate portal. It is ideal for agents automating property searches, conducting Polish housing market research, or building real estate workflows without managing browser automation. The pay-per-call model with no charge for empty runs makes it safe for exploratory queries.

## Known failure modes

- Empty result set if filters are too restrictive (not charged)
- Invalid location path returns no results
- Otodom site structure changes may break extraction
- Rate limits or anti-bot measures on Otodom may cause failures
- Invalid enum values for propertyType or searchType return errors

## How this service works

Pay-per-call structured web data. Failed or empty runs are not charged.

## Output

Returns a JSON object with a count of matched listings and an array of property items, each containing the property ID, title, price, formatted price, price currency, property URL, transaction type, and property type. Full descriptions and coordinates are included when extractDetails is enabled.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "market": {
   "enum": [
    "ALL",
    "PRIMARY",
    "SECONDARY"
   ],
   "type": "string",
   "default": "ALL",
   "description": "Primary or secondary market, or both."
  },
  "areaMax": {
   "type": "integer",
   "minimum": 0,
   "description": "Maximum property area in square meters."
  },
  "areaMin": {
   "type": "integer",
   "minimum": 0,
   "description": "Minimum property area in square meters."
  },
  "location": {
   "type": "string",
   "description": "Path after the property category in a search URL, such as mazowieckie/warszawa/warszawa/warszawa. Use cala-polska for all Poland."
  },
  "maxItems": {
   "type": "integer",
   "default": 50,
   "minimum": 0,
   "description": "Stop after this many unique properties across all start URLs. Zero means no actor cap."
  },
  "priceMax": {
   "type": "integer",
   "minimum": 0,
   "description": "Maximum advertised price in PLN."
  },
  "priceMin": {
   "type": "integer",
   "minimum": 0,
   "description": "Minimum advertised price in PLN."
  },
  "roomsMax": {
   "type": "integer",
   "maximum": 10,
   "minimum": 1,
   "description": "Upper room count included in the search."
  },
  "roomsMin": {
   "type": "integer",
   "maximum": 10,
   "minimum": 1,
   "description": "Lower room count included in the search."
  },
  "buildYear": {
   "type": "integer",
   "maximum": 2100,
   "minimum": 1800,
   "description": "Minimum construction year. This filter is applied by the search page."
  },
  "startUrls": {
   "type": "array",
   "description": "Public search result or property URLs. When supplied, search filters below are ignored."
  },
  "postedDate": {
   "enum": [
    "",
    "1",
    "3",
    "7",
    "14"
   ],
   "type": "string",
   "default": "",
   "description": "Keep listings first created within this number of days. The date filter is applied after fetching search results."
  },
  "searchType": {
   "enum": [
    "sprzedaz",
    "wynajem"
   ],
   "type": "string",
   "default": "sprzedaz",
   "description": "Choose properties for sale or rent."
  },
  "propertyType": {
   "enum": [
    "mieszkanie",
    "dom",
    "dzialka",
    "lokal",
    "haleimagazyny",
    "garaz"
   ],
   "type": "string",
   "default": "mieszkanie",
   "description": "Property category used to construct a search."
  },
  "extractDetails": {
   "type": "boolean",
   "default": true,
   "description": "Retrieve full descriptions, coordinates, building attributes and complete
… (truncated)
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "count": 1,
  "items": [
   {
    "id": null,
    "price": null,
    "title": null,
    "propertyUrl": null,
    "transaction": null,
    "propertyType": null,
    "priceCurrency": null,
    "priceFormatted": null
   }
  ],
  "product": "otodom"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/otodom-property-listings-scraper-18914383/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from x402.186-241-26-229.sslip.io](https://www.zero.xyz/host/x402.186-241-26-229.sslip.io/llms.txt)
