Discover/Nekretnine API
live

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.

This API takes change requests — .
Endpoint health
monitored
get_listing_detail
search_listings
Checks pendingself-healing
Endpoints
2
Updated
1h ago
This call costs2 credits / call— charged only on success
Try it
City slug used in the URL path (e.g. 'beograd', 'novi-sad', 'nis'). Slugs use lowercase Latin transliteration with hyphens.
Page number for pagination.
Transaction type filter.
api.parse.bot/scraper/8af79894-120f-4da7-88bc-cf16c5be7356/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
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'
Python SDK · recommended

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")
All endpoints · 2 totalmissing one? ·

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.

Input
ParamTypeDescription
citystringCity slug used in the URL path (e.g. 'beograd', 'novi-sad', 'nis'). Slugs use lowercase Latin transliteration with hyphens.
pageintegerPage number for pagination.
transaction_typestringTransaction type filter.
Response
{
  "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.