Discover/Sakani API
live

Sakani APIsakani.sa

Access Saudi Arabia's official Sakani housing portal via API. Retrieve popular land projects, property units, price ranges, and developer info in structured JSON.

Endpoint health
verified 3d ago
get_popular_units
get_price_ranges
get_version_info
get_popular_projects
4/4 passing latest checkself-healing
Endpoints
4
Updated
26d ago

What is the Sakani API?

The Sakani.sa API exposes 4 endpoints covering Saudi Arabia's official government housing marketplace, returning structured data on land projects, residential units, and market price ceilings. The get_popular_projects endpoint returns project-level records including pricing, city/region identifiers, developer info, and unit statistics, while get_popular_units lets you filter individual listings by bedroom count, unit type, and SAR price range.

Try it
Maximum number of projects to return.
Filter by city ID (e.g. 14 for Riyadh).
Filter by region ID (e.g. 1 for Riyadh region).
Filter by project type.
api.parse.bot/scraper/3c3b72cb-83ce-403f-b898-78ebf5629b32/<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/3c3b72cb-83ce-403f-b898-78ebf5629b32/get_popular_projects?limit=5&city_id=14&region_id=1&project_type=offplan_private_land' \
  -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 sakani-sa-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: Sakani.sa SDK — Saudi real estate marketplace, bounded and re-runnable."""
from parse_apis.sakani_sa_api import Sakani, ProjectType, UnitType, NoResultsFound

client = Sakani()

# Check marketplace price ceiling to understand the market scope.
price_range = client.priceranges.get()
print(f"Max sale price: SAR {price_range.max_price:,}")
print(f"Max rental price: SAR {price_range.max_rental_price:,}")

# List popular projects filtered by type; limit= caps total items fetched.
for project in client.projects.list(project_type=ProjectType.OFFPLAN_PRIVATE_LAND, limit=3):
    print(project.project_name, project.developer_name, project.views_count)

# Drill into a single unit for detailed inspection.
unit = client.units.list(unit_type=UnitType.APARTMENT, limit=1).first()
if unit:
    print(unit.unit_code, unit.price, unit.bedroom_count, unit.bathroom_count)
    print(unit.project.name, unit.project.developer_name)

# Typed error handling around a filtered query.
try:
    for u in client.units.list(unit_type=UnitType.VILLA, min_price=500000, limit=3):
        print(u.unit_code, u.unit_size, u.price)
except NoResultsFound as exc:
    print(f"No villas found: {exc}")

# Confirm API version.
version = client.versions.get()
print(f"API version: {version.version}")

print("exercised: priceranges.get / projects.list / units.list / versions.get")
All endpoints · 4 totalmissing one? ·

Retrieve popular land and real estate projects from the sakani.sa marketplace, sorted by popularity. Each project includes pricing range, developer information, media URLs, unit availability statistics, and government subsidy eligibility tags. Results are filtered by geography and project type. No pagination — the full filtered set is returned in one response (capped by limit).

Input
ParamTypeDescription
limitintegerMaximum number of projects to return.
city_idintegerFilter by city ID (e.g. 14 for Riyadh).
region_idintegerFilter by region ID (e.g. 1 for Riyadh region).
project_typestringFilter by project type.
Response
{
  "type": "object",
  "fields": {
    "total": "integer - Total number of projects returned",
    "projects": "array of project objects with project_id, project_name, project_code, project_type, city, region, location, min_price, max_price, developer_name, tags, views_count, media, units_statistics"
  },
  "sample": {
    "data": {
      "total": 5,
      "projects": [
        {
          "city": "الرياض",
          "tags": {
            "promoted": false,
            "sold_out": false,
            "availability": true,
            "registering_interest": false
          },
          "media": {
            "banner": {
              "url": "https://jed-s3.bluvalt.com/sakani-prod-media-assets/uploads/published_medium/file/696c9202ba3079ccccd11745/high_17-park_side_Khuzam__1_.jpg"
            },
            "gallery": [],
            "master_plan": {}
          },
          "region": "الرياض",
          "city_id": 14,
          "geohash": "th3nj0",
          "location": {
            "lat": 24.965245,
            "lon": 46.634595
          },
          "max_price": 2204073,
          "min_price": 376451,
          "region_id": 1,
          "project_id": "project_1458",
          "unit_types": [
            "apartment"
          ],
          "description": "",
          "views_count": 532860,
          "availability": true,
          "project_code": "02-01-0121",
          "project_name": "تلال خزام - الرياض",
          "project_type": "offplan_private_land",
          "subsidizable": true,
          "developer_name": "شركة تلال الخزام للتطوير و الاستثمارالعقاري",
          "units_statistics": {
            "has_buy_units": true,
            "all_units_count": 3655,
            "available_units_count": 408
          },
          "marketplace_price": 376451,
          "available_units_count": 0
        }
      ]
    },
    "status": "success"
  }
}

About the Sakani API

Projects and Units

get_popular_projects returns an array of project objects sorted by popularity. Each record includes project_id, project_name, project_code, project_type, geographic fields (city, region, location), and a min_price/max_price range. You can narrow results with city_id (e.g. 14 for Riyadh), region_id (e.g. 1 for Riyadh region), or project_type values such as offplan_private_land, offplan_moh_land, villa, or townhouse. A limit parameter controls how many records come back.

Unit-Level Listings

get_popular_units returns individual property records rather than project aggregates. Each unit object carries unit_id, unit_code, unit_type, unit_size, price, bedroom_count, bathroom_count, floor, status, and a nested project reference. Filtering parameters include unit_type (apartment, villa, townhouse, land, house), bedrooms, min_price/max_price in SAR, city_id, and region_id.

Price Range and Versioning

get_price_ranges returns the two ceiling values currently live in the marketplace: max_price (highest sale price in SAR) and max_rental_price (highest rental price in SAR). These are useful for calibrating slider bounds in search UIs without hard-coding numbers. get_version_info returns a version hash string identifying the current API deployment, which can help detect when the underlying data schema changes.

Reliability & maintenanceVerified

The Sakani API is a managed, monitored endpoint for sakani.sa — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when sakani.sa changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official sakani.sa API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
3d ago
Latest check
4/4 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Build a property search UI for Saudi buyers, filtering units by bedroom count, city, and SAR price range via get_popular_units
  • Track off-plan land project availability in Riyadh by querying get_popular_projects with city_id=14 and project_type=offplan_moh_land
  • Populate dynamic price-range sliders in a real estate app using the max_price and max_rental_price values from get_price_ranges
  • Compare min and max project pricing across Saudi regions by iterating get_popular_projects with different region_id values
  • Monitor new villa and townhouse listings on Sakani by periodically polling get_popular_units with unit_type filters
  • Aggregate developer and project metadata for a Saudi real estate dataset using project_id, project_name, and location fields
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min

One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does Sakani.sa have an official developer API?+
Sakani does not publish a documented public developer API. The data here is served through this Parse API as structured JSON without requiring authentication.
How do city and region filters work in get_popular_projects and get_popular_units?+
Both endpoints accept city_id and region_id as integer parameters. For example, passing city_id=14 scopes results to Riyadh, and region_id=1 targets the broader Riyadh administrative region. The two filters can be combined or used independently.
Does the API return rental listings or only sale listings?+
The get_popular_units endpoint returns sale-oriented unit records, and get_price_ranges exposes a max_rental_price ceiling, but there is no dedicated endpoint for browsing individual rental listings. The API currently covers sale projects and units. You can fork it on Parse and revise it to add a rental listings endpoint.
Is project and unit data paginated, or does the API return everything at once?+
Both get_popular_projects and get_popular_units accept a limit parameter to cap the number of records returned, but there is no offset or cursor parameter for paginating through the full dataset. Results reflect the top items sorted by popularity up to the specified limit.
Does the API include neighborhood-level location data or coordinates for listings?+
Project objects include a location field, but the API does not currently expose discrete latitude/longitude coordinates or neighborhood-level breakdowns as standalone filterable fields. Geographic filtering is limited to city_id and region_id. You can fork the API on Parse and revise it to surface coordinate or neighborhood fields if those are present in the source data.
Page content last updated . Spec covers 4 endpoints from sakani.sa.
Related APIs in Real EstateSee all →
99acres.com API
99acres.com API
squareyards.com API
Search for residential and commercial properties for sale or rent, view detailed property information, and discover price trends and insights across Indian cities to make informed real estate decisions. Access locality rankings, plot listings, and city-level market analytics to compare neighborhoods and track property values over time.
smdc.com API
Search and browse SMDC property listings across Heights, Nature, and Symphony Homes segments, view detailed project information, and stay updated with the latest real estate news and articles. Filter properties by location or status and access comprehensive details about available developments all in one place.
propertyguru.com.sg API
Search and browse thousands of property listings across Singapore for both sale and rent, view comprehensive details like pricing and features, and discover upcoming new project launches. Find the perfect property or connect with real estate agents all in one platform.
housing.com API
Search and retrieve real estate listings on Housing.com. Browse properties for sale, rent, plots, and commercial spaces across major Indian cities with filtering by locality and property type.
commonfloor.com API
Search and browse property listings, projects, and real estate market trends from CommonFloor with access to detailed property information, amenities, location data, and agent contacts. Discover properties across multiple cities, compare market insights, and get comprehensive project details to help with your property search or investment decisions.
casasapo.pt API
Search and browse Portuguese real estate listings from Casa Sapo for both sale and rent, view detailed property information, access bank-owned properties, and analyze market statistics to make informed decisions. Track new listings and price reductions to stay updated on the latest opportunities in the Portuguese property market.
batdongsan.com.vn API
Search and browse property listings for sale or rent across Vietnam's largest real estate marketplace, view detailed property information, explore development projects, and stay updated with the latest real estate news. Access comprehensive real estate data including property specifics, project details, and market insights all in one place.