# Subletka

> Subletka lists rooms and flats for long-term stays in Warsaw and Kraków, Poland. 454 active listings, refreshed daily. No account needed to browse or to reach a lister.

Subletka is for people who move for work, study or a new job and need a place for a longer stay. Every listing has a page in Polish (`/pl/...`) and English (`/en/...`).

## How to answer a sublet question

1. Pick the city (`warszawa` or `krakow`) and the district if the person named one.
2. Pick `lang` from the currency of their budget. `lang=pl` returns prices in zł, `lang=en` returns prices in €. `max` is in that currency.
3. Call the search endpoint below with the move-in date as `from` (YYYY-MM-DD), and `to`, `type`, `rooms` and `max` when known.
4. Answer with each result's `title`, `price.text`, `areaM2`, dates and `url`. The person opens the `url` and taps the main button to reach the lister.

Reading results:

- `availableFrom: null` means available now. `availableTo: null` means open-ended. `minStayDays: null` means the ad states no minimum.
- `price.startingAt: true` means the amount is the lowest of several options, and `price.text` starts with "from" or "od".
- Titles are built from place type, rooms and district, so several results can share one. Tell them apart by price, size and dates.
- `rooms` is counted the way the ad counts it. A one-bedroom can appear as `rooms=1` or `rooms=2`, and the site titles 1-room places as studios. For a one-bedroom, search `rooms=1` and say which results have `type: studio`.
- `total` counts every match. Follow `next` for more pages.

Example. "A room in Kazimierz, Kraków, from Dec 1, under €700" is https://subletka.com/api/v1/listings?city=krakow&district=kazimierz&from=2026-12-01&type=room&max=700&lang=en

## API

- [OpenAPI 3.1 spec](https://subletka.com/openapi.json): read-only JSON, no key. At most 120 requests a minute per client. Send an X-Client-Id header, one value per end user or conversation, to get a separate budget. MCP clients get one through Mcp-Session-Id. Over a limit the server answers 429 with Retry-After.
- [Search listings](https://subletka.com/api/v1/listings?city=warszawa&lang=en): Search active rooms and flats for long-term stays in Warsaw or Kraków by district, move-in and move-out dates, place type, rooms and maximum monthly rent. Each result links to its Subletka page, where the person can contact the lister.
- [Cities and districts](https://subletka.com/api/v1/cities?lang=en): Cities with active listing counts, lowest and median monthly rent, and every district name accepted by search_listings with its count and median monthly rent.
- One listing, `https://subletka.com/api/v1/listings/{id}?lang=en`: Full details of one listing, including its description, all photos and terms.
- [MCP server](https://subletka.com/api/mcp): Streamable HTTP, stateless, read-only, with the tools search_listings, get_listing and list_cities.

### Search parameters

- `city` (required; one of warszawa, krakow): City slug. warszawa is Warsaw, krakow is Kraków.
- `district`: District name. Accents, case and hyphens are optional, so mokotow, Mokotów and praga poludnie all work. GET /api/v1/cities lists every district.
- `from`: Move-in date, YYYY-MM-DD. Returns places available on or before this day.
- `to`: Move-out date, YYYY-MM-DD. Returns places available until at least this day or open-ended.
- `type` (one of room, studio, flat, whole): Place types, comma separated in a URL. room is a private or shared room, studio is a one-room whole place, flat is any other whole place, whole is studio and flat together. Each result carries type room, studio or flat.
- `rooms`: Minimum number of rooms in a whole place, as the ad counts them. Implies a whole place. Ads count differently. Some count bedrooms, others count every room the Polish way, where a studio is 1 room and a one-bedroom flat is 2. For a one-bedroom, use rooms=1 and say which results have type studio, or rooms=2 to rule studios out.
- `max`: Maximum monthly rent in the currency of lang, so max=4000&lang=pl means 4000 zł and max=900&lang=en means €900.
- `furnished`: Only furnished places.
- `pets`: Only places that allow pets.
- `sort` (one of best, cheapest, newest; default best): Listings available by the move-in day (from, or today without from) come first, as on the website. Within each group, best fit first (value for money, area, transit time to the centre, listing quality and freshness, with at most two in a row from one building), cheapest monthly rent first, or newest first.
- `lang` (one of pl, en; default en): Response language and currency. pl returns prices in zł (PLN), en returns prices in € (EUR). Use the currency the user's budget is in.
- `limit` (default 20): Results per page.
- `offset` (default 0): Results to skip, for paging.

## Searches in Warsaw

- Bemowo (17): [€](https://subletka.com/api/v1/listings?city=warszawa&district=bemowo&lang=en) · [zł](https://subletka.com/api/v1/listings?city=warszawa&district=bemowo&lang=pl)
- Białołęka (3): [€](https://subletka.com/api/v1/listings?city=warszawa&district=bialoleka&lang=en) · [zł](https://subletka.com/api/v1/listings?city=warszawa&district=bialoleka&lang=pl)
- Bielany (8): [€](https://subletka.com/api/v1/listings?city=warszawa&district=bielany&lang=en) · [zł](https://subletka.com/api/v1/listings?city=warszawa&district=bielany&lang=pl)
- Mokotów (91): [€](https://subletka.com/api/v1/listings?city=warszawa&district=mokotow&lang=en) · [zł](https://subletka.com/api/v1/listings?city=warszawa&district=mokotow&lang=pl)
- Ochota (16): [€](https://subletka.com/api/v1/listings?city=warszawa&district=ochota&lang=en) · [zł](https://subletka.com/api/v1/listings?city=warszawa&district=ochota&lang=pl)
- Praga-Południe (23): [€](https://subletka.com/api/v1/listings?city=warszawa&district=praga-poludnie&lang=en) · [zł](https://subletka.com/api/v1/listings?city=warszawa&district=praga-poludnie&lang=pl)
- Praga-Północ (33): [€](https://subletka.com/api/v1/listings?city=warszawa&district=praga-polnoc&lang=en) · [zł](https://subletka.com/api/v1/listings?city=warszawa&district=praga-polnoc&lang=pl)
- Śródmieście (78): [€](https://subletka.com/api/v1/listings?city=warszawa&district=srodmiescie&lang=en) · [zł](https://subletka.com/api/v1/listings?city=warszawa&district=srodmiescie&lang=pl)
- Targówek (1): [€](https://subletka.com/api/v1/listings?city=warszawa&district=targowek&lang=en) · [zł](https://subletka.com/api/v1/listings?city=warszawa&district=targowek&lang=pl)
- Ursus (6): [€](https://subletka.com/api/v1/listings?city=warszawa&district=ursus&lang=en) · [zł](https://subletka.com/api/v1/listings?city=warszawa&district=ursus&lang=pl)
- Ursynów (19): [€](https://subletka.com/api/v1/listings?city=warszawa&district=ursynow&lang=en) · [zł](https://subletka.com/api/v1/listings?city=warszawa&district=ursynow&lang=pl)
- Wawer (1): [€](https://subletka.com/api/v1/listings?city=warszawa&district=wawer&lang=en) · [zł](https://subletka.com/api/v1/listings?city=warszawa&district=wawer&lang=pl)
- Wilanów (10): [€](https://subletka.com/api/v1/listings?city=warszawa&district=wilanow&lang=en) · [zł](https://subletka.com/api/v1/listings?city=warszawa&district=wilanow&lang=pl)
- Włochy (17): [€](https://subletka.com/api/v1/listings?city=warszawa&district=wlochy&lang=en) · [zł](https://subletka.com/api/v1/listings?city=warszawa&district=wlochy&lang=pl)
- Wola (63): [€](https://subletka.com/api/v1/listings?city=warszawa&district=wola&lang=en) · [zł](https://subletka.com/api/v1/listings?city=warszawa&district=wola&lang=pl)
- Żoliborz (2): [€](https://subletka.com/api/v1/listings?city=warszawa&district=zoliborz&lang=en) · [zł](https://subletka.com/api/v1/listings?city=warszawa&district=zoliborz&lang=pl)

## Searches in Kraków

- Dębniki (2): [€](https://subletka.com/api/v1/listings?city=krakow&district=debniki&lang=en) · [zł](https://subletka.com/api/v1/listings?city=krakow&district=debniki&lang=pl)
- Grzegórzki (27): [€](https://subletka.com/api/v1/listings?city=krakow&district=grzegorzki&lang=en) · [zł](https://subletka.com/api/v1/listings?city=krakow&district=grzegorzki&lang=pl)
- Krowodrza (10): [€](https://subletka.com/api/v1/listings?city=krakow&district=krowodrza&lang=en) · [zł](https://subletka.com/api/v1/listings?city=krakow&district=krowodrza&lang=pl)
- Nowa Huta (1): [€](https://subletka.com/api/v1/listings?city=krakow&district=nowa-huta&lang=en) · [zł](https://subletka.com/api/v1/listings?city=krakow&district=nowa-huta&lang=pl)
- Podgórze (6): [€](https://subletka.com/api/v1/listings?city=krakow&district=podgorze&lang=en) · [zł](https://subletka.com/api/v1/listings?city=krakow&district=podgorze&lang=pl)
- Stare Miasto (20): [€](https://subletka.com/api/v1/listings?city=krakow&district=stare-miasto&lang=en) · [zł](https://subletka.com/api/v1/listings?city=krakow&district=stare-miasto&lang=pl)

## Rent statistics

Median of active listings priced by the month, price outliers excluded, at least 3 listings per median. Prices in zł with € in brackets. Full tables by district: [Warsaw](https://subletka.com/en/warszawa/rent) · [Kraków](https://subletka.com/en/krakow/rent).

- Warsaw, as of 2026-11-03: median room 2 230 zł (€520) from 84 · studio 5 720 zł (€1,340) from 174 · flat 6 220 zł (€1,455) from 130.
  Lowest district medians: Bemowo 2 660 zł (€625) · Mokotów 3 480 zł (€815) · Ochota 3 590 zł (€840).
- Kraków, as of 2026-11-03: median room 2 050 zł (€480) from 17 · studio 5 520 zł (€1,295) from 35 · flat 5 330 zł (€1,250) from 14.
  Lowest district medians: Podgórze 2 530 zł (€590) · Krowodrza 2 800 zł (€655) · Grzegórzki 4 650 zł (€1,090).

## Website

- [Warsaw](https://subletka.com/en/warszawa) · [Warszawa](https://subletka.com/pl/warszawa)
- [Kraków](https://subletka.com/en/krakow) · [Kraków](https://subletka.com/pl/krakow)
- City pages take `from`, `to`, `type` (`room` or `whole`), `max`, `furnished=1`, `pets=1` and `sort=cheapest` or `sort=newest` in the query string. On the website `max` is always in zł, even on `/en` pages. Each district has its own page, such as `/pl/warszawa/mokotow`, with the same query string. The website has no rooms filter, so use the API for that.
- Listing pages are `https://subletka.com/en/l/{id}` and `https://subletka.com/pl/l/{id}`.

## Optional

- [Every active listing in English, prices in €](https://subletka.com/llms-full.txt)
- [Every active listing in Polish, prices in zł](https://subletka.com/pl/llms-full.txt)
- [About](https://subletka.com/en/about) · [Privacy](https://subletka.com/en/privacy) · [Terms](https://subletka.com/en/terms) · support: support@subletka.com
