Nekretnine APInekretnine.rs ↗
Search and browse real estate listings across Serbia's top property marketplace to find detailed information about available properties including prices, locations, and property features. Filter through thousands of listings to discover your ideal home or investment property with comprehensive property details and specifications.
curl -X GET 'https://api.parse.bot/scraper/8af79894-120f-4da7-88bc-cf16c5be7356/search_listings?city=beograd&page=1&transaction_type=prodaja' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace nekretnine-rs-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: nekretnine_rs_api SDK — bounded, re-runnable; every call capped."""
from parse_apis.nekretnine_rs_api import Nekretnine, TransactionType, ListingNotFound
client = Nekretnine()
# Search sale listings in Belgrade — limit= caps TOTAL items fetched.
for listing in client.listings.search(city="beograd", transaction_type=TransactionType.PRODAJA, limit=3):
print(listing.title, listing.price_formatted, listing.surface)
# Drill-down: take one listing, then fetch its full details.
item = client.listings.search(city="novi-sad", transaction_type=TransactionType.IZDAVANJE, limit=1).first()
if item:
try:
full = item.details()
print(full.title, full.price_formatted, full.surface)
print(full.description[:100] if full.description else "No description")
except ListingNotFound as e:
print(f"Listing gone: {e.listing_id}")
print("exercised: listings.search, ListingSummary.details")
Search apartment listings by city and transaction type (sale or rent). Returns paginated results with basic listing information including price, surface area, rooms, location, and a direct URL to the detail page. Results are auto-iterated across pages.
| Param | Type | Description |
|---|---|---|
| city | string | City slug used in the URL path (e.g. 'beograd', 'novi-sad', 'nis'). Slugs use lowercase Latin transliteration with hyphens. |
| page | integer | Page number for pagination. |
| transaction_type | string | Transaction type filter. |
{
"type": "object",
"fields": {
"listings": "array of listing summaries with id, title, price, surface, rooms, location",
"max_pages": "total number of pages available",
"total_count": "total number of matching listings",
"current_page": "current page number"
},
"sample": {
"data": {
"listings": [
{
"id": 41749,
"url": "https://www.nekretnine.rs/oglasi/41749/",
"city": "Beograd",
"floor": "Visoko prizemlje, sa liftom",
"price": 615000,
"rooms": "4",
"title": "Četvorosobni stan Ulica Danijelova 10, Dušanovac, Beograd",
"address": "Ulica Danijelova",
"surface": "268 m²",
"latitude": 44.78419876,
"bathrooms": "2",
"longitude": 20.47719955,
"municipality": "Voždovac",
"neighborhood": "Dušanovac",
"price_formatted": "€ 615.000"
}
],
"max_pages": 372,
"total_count": 9280,
"current_page": 1
},
"status": "success"
}
}About the Nekretnine API
The Nekretnine API on Parse exposes 2 endpoints for the publicly available data on nekretnine.rs. Calls return JSON over HTTPS and are billed per successful response.
Pin a release with the API-Snapshot-Version header so canonical updates don't silently change your contract.