REST, JSON, key-based auth. Base URL https://sijill.pages.dev/v1.
500 requests/month. Aggregates + latest-quarter transactions. No card.
curl -H "x-api-key: YOUR_KEY" "https://sijill.pages.dev/v1/stats/regions?quarter=2025Q4"
Coverage: quarters, record counts, region/city lists. No auth.
Quarterly aggregates for the 13 regions. Params: quarter (e.g. 2025Q4; default latest), classification (residential|commercial|agricultural|all, default all). Returns n, total_sar, median_price, median_psm, median_area per region.
Quarterly aggregates per city. Params: region (slug), city (slug), quarter, classification. One of region/city recommended.
District-level aggregates inside a city. Params: city (slug, required), quarter. Districts with fewer than 5 deals in a quarter are omitted.
Transaction-level records. Params: city (slug, required), quarter (required), classification, min_price, max_price, limit (≤1000), offset. Free tier: latest quarter only, limit ≤100. Paid: full history since 2020.
{
"date": "2025-11-12",
"region": "riyadh",
"city": "riyadh",
"district_ar": "الياسمين",
"classification": "residential",
"property_type": null,
"properties_count": 1,
"price_sar": 1250000.0,
"area_sqm": 375.0,
"price_per_sqm": 3333.33,
"ref_no": "31982411"
}
property_type (land, apartment, villa …) exists only where the source published it (2023 Q1–Q3). district_ar is the registry's Arabic district name; district-level English is on the roadmap. Prices are as registered; no adjustment. Quarters follow the deed's Gregorian date.
Send x-api-key on every request. Monthly quotas: free 500, Starter 50,000, Pro 250,000. Responses: 401 missing/bad key, 403 endpoint above tier, 429 quota exceeded, 400 bad params. Quota resets on the 1st (UTC).
1,364,921 sales deeds, 2020Q1–2025Q4. 2025Q2 excluded (source republished 2024Q2 mislabeled — verified 2026-08-30). Aggregates exclude nothing else; transaction rows with unparseable price/date were dropped (13 rows total). Source: Ministry of Justice, Saudi Open Data Portal, KSA Open Data License.