📈 Sijill

API documentation

REST, JSON, key-based auth. Base URL https://sijill.pages.dev/v1.

Quickstart

Get a free API key

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"

Endpoints

GET /v1/meta

Coverage: quarters, record counts, region/city lists. No auth.

GET /v1/stats/regions

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.

GET /v1/stats/cities

Quarterly aggregates per city. Params: region (slug), city (slug), quarter, classification. One of region/city recommended.

GET /v1/stats/districts

District-level aggregates inside a city. Params: city (slug, required), quarter. Districts with fewer than 5 deals in a quarter are omitted.

GET /v1/transactions

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"
}

Field notes

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.

Auth, limits, errors

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).

Coverage & caveats

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.