Ejar APIejar.sa ↗
Access Saudi Arabia's Ejar platform via API: validate broker registrations, search brokerage offices by region/city, and retrieve all 13 administrative regions.
What is the Ejar API?
The Ejar.sa API provides 3 endpoints covering Saudi Arabia's official rental brokerage platform. Use search_brokers to query registered brokerage offices with filters for region, city, district, and name, or call check_broker_registration to validate a specific broker office registration request by its numeric request number. A regions lookup endpoint returns all 13 Saudi administrative regions with bilingual names and geographic coordinates.
No input parameters required.
curl -X GET 'https://api.parse.bot/scraper/58c571a0-28f2-4ed4-a9ed-36ae5792351e/get_regions' \ -H 'X-API-Key: $PARSE_API_KEY'
Returns all 13 Saudi administrative regions with Arabic/English names, geographic coordinates, and location identifiers. No parameters required. One fixed-cost request.
No input parameters required.
{
"type": "object",
"fields": {
"total": "integer count of regions",
"regions": "array of region objects with id, key, name_ar, name_en, location_id, lat, lon"
},
"sample": {
"data": {
"total": 13,
"regions": [
{
"id": "1",
"key": "riyadh",
"lat": "24.731864",
"lon": "46.774292",
"name_ar": "الرياض",
"name_en": "Riyadh",
"location_id": "101000000000000"
},
{
"id": "2",
"key": "makkah",
"lat": "21.406328",
"lon": "39.809088",
"name_ar": "مكة المكرمة",
"name_en": "Makkah Al Mukarramah",
"location_id": "102000000000000"
}
]
},
"status": "success"
}
}About the Ejar API
Endpoints and What They Return
The get_regions endpoint returns a fixed list of all 13 Saudi administrative regions. Each region object includes a numeric id, a string key, Arabic and English names (name_ar, name_en), a location_id, and latitude/longitude coordinates (lat, lon). No parameters are required and the result set is stable, making it useful for populating filter dropdowns before calling search_brokers.
Broker Search and Validation
search_brokers returns paginated results of registered brokerage offices (10 per page, 0-indexed via the page parameter). You can narrow results with a region taxonomy term ID (e.g. '169' for Riyadh, '170' for Makkah), plus optional city, district, and name filters. Each broker object in the response includes name, id, region, city, district, phone, and — where available — rating and rating_count. The total field indicates how many offices match your query.
check_broker_registration accepts a single request_number string and returns either a found status with a data object containing registration details, or a not_found status with an error_code (e.g. E1784), message_ar, and message_en. This is useful for verifying whether a specific broker registration request is on record in the Ejar system.
Coverage Scope
All data reflects the public-facing Ejar platform, which is operated under the Saudi Real Estate General Authority. Region taxonomy term IDs returned by get_regions map directly to the region filter in search_brokers, keeping lookups consistent across endpoints.
The Ejar API is a managed, monitored endpoint for ejar.sa — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when ejar.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 ejar.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.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Verify a broker office's Ejar registration status before signing a rental contract using
check_broker_registration. - Build a brokerage directory filtered by Saudi region and city using
search_brokerswithregionandcityparameters. - Populate a region selector in a PropTech app with bilingual (Arabic/English) region names from
get_regions. - Aggregate broker ratings and rating counts from
search_brokersresults to rank offices by reputation. - Cross-reference broker phone numbers from
search_brokerswith internal CRM records for due-diligence workflows. - Map registered brokerage offices by district using coordinates from
get_regionscombined with district-filtered broker searches. - Audit brokerage coverage across all 13 Saudi regions by iterating
search_brokerswith each region taxonomy ID.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Ejar.sa have an official developer API?+
What does `check_broker_registration` return when a request number isn't found?+
not_found status along with an error_code string (for example E1784), an Arabic error message in message_ar, and an English equivalent in message_en. No partial data is returned in the data field for unrecognized request numbers.How does pagination work in `search_brokers`, and what is the maximum page size?+
page parameter is 0-indexed, so the first page is page=0. Results are always returned 10 per page — the per_page field in the response confirms this. To retrieve all matches, iterate pages until the cumulative count reaches the total value.Does the API return individual rental listings or lease contract details from Ejar?+
Can I look up city or district taxonomy term IDs through the API?+
search_brokers endpoint accepts city and district as taxonomy term ID strings, but there is no dedicated endpoint to enumerate valid city or district IDs. You can fork this API on Parse and revise it to add city and district lookup endpoints.