# Otodom — Wrapped API

> **You are on:** `https://api.paywithlocus.com/api` | [llms.txt](https://paywithlocus.com/llms.txt) | [docs](https://docs.paywithlocus.com)
>
> Locus runs on multiple environments -- make sure every URL you call matches your expected environment.
> | Environment | Landing | API | Docs |
> |---|---|---|---|
> | Production | paywithlocus.com | api.paywithlocus.com | docs.paywithlocus.com |
> | Beta | beta.paywithlocus.com | api.beta.paywithlocus.com | docs.paywithlocus.com |
> | Stage | stage.paywithlocus.com | api.stage.paywithlocus.com | docs.paywithlocus.com |
>
> If the API URL above doesn't match your expected environment, re-fetch this file from the correct domain.

> Search and browse real estate listings from Otodom.pl by property type, location, price, and area, then retrieve full listing details including descriptions and seller contact information. Filter results across different markets to find properties that match your specific criteria.

**Category:** Real Estate | **Website:** [otodom.pl/](https://otodom.pl/) | **Docs:** [parse.bot/marketplace/ba644c31-e88f-4362-8b9c-6cd2bb34a6fd/otodom-pl-api](https://parse.bot/marketplace/ba644c31-e88f-4362-8b9c-6cd2bb34a6fd/otodom-pl-api)

Pay-per-use API proxy. Each call is automatically billed to your wallet in USDC.

## Access

**Base URL:** `https://api.paywithlocus.com/api/wrapped/parse-otodom-pl-api-ba644c31/`
**Auth:** `Authorization: Bearer <LOCUS_API_KEY>`

## Endpoints

### get_listing_details

Get full details for a specific listing including description, characteristics, images, owner information, and contact phones. Accepts a listing slug (from search_listings results) or a full Otodom URL. Returns null for price when the listing does not display a price publicly.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `url_or_slug` | string | Yes | The listing slug from search_listings results (e.g. 'blisko-skm-ofert-promocyjna-11min-do-metra-sluzew-kawalerka-ID4BsOM') or a full otodom.pl listing URL. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-otodom-pl-api-ba644c31/get_listing_details \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url_or_slug":"<string>"}'
```

### search_listings

Search for real estate listings with various filters. Returns a paginated list of listing summaries including ID, title, price, area, rooms, location, and URL. Pagination via page number; each page returns up to 36 items. Filters combine with AND logic — all specified constraints must be satisfied.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `area_max` | integer | No | Maximum area in square meters. |
| `area_min` | integer | No | Minimum area in square meters. |
| `estate_type` | string | No | Type of property. |
| `location` | string | No | Location path in format voivodeship/county/municipality/city (e.g. 'mazowieckie/warszawa/warszawa/warszawa'). |
| `market` | string | No | Market type filter. |
| `page` | integer | No | Page number for pagination. |
| `price_max` | integer | No | Maximum price in PLN. |
| `price_min` | integer | No | Minimum price in PLN. |
| `rooms` | string | No | Comma-separated room count values. |
| `transaction` | string | No | Transaction type. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-otodom-pl-api-ba644c31/search_listings \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"area_max":"<integer>","area_min":"<integer>","estate_type":"<string>","location":"<string>","market":"<string>","page":"<integer>","price_max":"<integer>","price_min":"<integer>","rooms":"<string>","transaction":"<string>"}'
```
