Com APIdubizzle.com.eg ↗
Access property listings, classifieds, agencies, and location data from Dubizzle Egypt (OLX Egypt) via 8 structured API endpoints.
What is the Com API?
The Dubizzle Egypt API provides access to real estate listings and general classifieds from dubizzle.com.eg across 8 endpoints. You can search properties with filters for bedrooms, area, price, and location using search_properties, retrieve full listing details including photos and seller info via get_property_detail, and explore agencies, categories, and Egypt's location hierarchy — all returned as structured JSON.
curl -X GET 'https://api.parse.bot/scraper/c387c7a6-02cc-45c8-8c3c-1ad385542b86/search_properties?page=1&sort=newly_listed&limit=5&area_max=500&area_min=50&bedrooms=3&category=apartments-duplex-for-sale&location=cairo&bathrooms=2&price_max=10000000&price_min=1000000' \ -H 'X-API-Key: $PARSE_API_KEY'
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 dubizzle-com-eg-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: Dubizzle Egypt SDK — property search, agency exploration, and category filters."""
from parse_apis.dubizzle_egypt_api import DubizzleEgypt, Sort, PropertyNotFound
client = DubizzleEgypt()
# Search for apartments in Cairo sorted by price ascending
for listing in client.propertysummaries.search(
location="cairo", category="apartments-duplex-for-sale", sort=Sort.PRICE_ASC, limit=3
):
print(listing.title, listing.price, listing.currency)
# Drill into the first result for full details (photos, amenities, description)
listing = client.propertysummaries.search(location="cairo", limit=1).first()
if listing:
detail = listing.details()
print(detail.title, detail.area, detail.amenities)
# Search all classifieds (not just properties) by keyword
item = client.propertysummaries.search_all(query="iphone", limit=1).first()
if item:
print(item.title, item.price, item.seller.name)
# Discover categories and get filter options for one
category = client.categories.list(limit=1).first()
if category:
filters = category.filters()
print(category.name, category.count, filters.bedrooms[0].value, filters.bedrooms[0].count)
# Browse top agencies and their listings
agency = client.agencies.list(limit=1).first()
if agency:
print(agency.name, agency.ads_count)
for prop in agency.listings(limit=2):
print(prop.title, prop.price)
# Typed error handling: attempt to fetch a non-existent property
try:
client.propertysummaries.search(limit=1).first().details()
except PropertyNotFound as exc:
print(f"Property not found: {exc.ad_id}")
print("exercised: search / search_all / details / categories.list / filters / agencies.list / agency.listings")
Search for property listings with various filters. Returns paginated results sorted by newest listing by default. Supports filtering by location, category, price range, bedrooms, bathrooms, and area. Each result includes full listing details with photos, seller info, and amenities.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number |
| sort | string | Sort order for results |
| limit | integer | Results per page |
| area_max | integer | Maximum area in sqm |
| area_min | integer | Minimum area in sqm |
| bedrooms | string | Number of bedrooms (e.g. '1', '2', '3') |
| category | string | Category slug (e.g. 'apartments-duplex-for-sale', 'villas-for-sale'). Defaults to 'properties'. |
| location | string | Location slug to filter by (e.g. 'cairo', 'new-cairo') |
| bathrooms | string | Number of bathrooms (e.g. '1', '2', '3') |
| price_max | integer | Maximum price in EGP |
| price_min | integer | Minimum price in EGP |
{
"type": "object",
"fields": {
"page": "integer, current page number",
"items": "array of property listing objects",
"total": "integer, total number of matching results"
},
"sample": {
"data": {
"page": 1,
"items": [
{
"id": "204176431",
"url": "https://www.dubizzle.com.eg/en/ad/example-ID204176431.html",
"area": 225,
"price": 3950000,
"title": "- roof in banafseg 8 new Cairo",
"photos": [
{
"id": 174745576,
"main": false,
"url_400x300": "https://images.dubizzle.com.eg/thumbnails/174745576-400x300.webp",
"url_800x600": "https://images.dubizzle.com.eg/thumbnails/174745576-800x600.webp"
}
],
"seller": {
"name": "John",
"agency_id": "23858",
"agency_name": "Agency"
},
"bedrooms": "1",
"category": "Apartments for Sale",
"currency": "EGP",
"location": [
{
"name": "Egypt",
"slug": "egypt",
"level": 0
},
{
"name": "Cairo",
"slug": "cairo",
"level": 1
}
],
"amenities": [
"Balcony"
],
"bathrooms": "1"
}
],
"total": 10000
},
"status": "success"
}
}About the Com API
Property Search and Listing Detail
The search_properties endpoint accepts filters including category (e.g. apartments-duplex-for-sale, villas-for-sale), location (a slug from get_locations), bedrooms, area_min, area_max, and sort order (newly_listed, price_asc, price_desc). Results are paginated with page, total, and an items array. For a full listing, get_property_detail takes an ad_id and returns fields including price, area, currency (always EGP), photos (with url_800x600 and url_400x300 variants), bedrooms, category, and a seller object containing name, agency_name, and agency_id.
Categories, Filters, and Locations
get_property_categories returns all classifieds categories with their slug and active listing count, which you can pass directly into search_properties. Before searching, get_property_filters lets you introspect valid filter values for a given category — it returns arrays for types, bedrooms, bathrooms, ownership (e.g. resale, primary), and completion_status, each with value and count. Location slugs come from get_locations, which supports partial-match query strings and returns a hierarchy from country (level 0) down to compound (level 4).
Agencies and General Classifieds
get_featured_agencies returns up to 50 real estate agencies sorted by ads_count, with fields for id, name, logo, agents_count, and product tier. Pass an agency's id into get_agency_listings to retrieve that agency's full paginated inventory. For non-property searches, search_all_classifieds accepts a free-text query and searches across all classified fields — title, description, category — returning results sorted by relevance score.
The Com API is a managed, monitored endpoint for dubizzle.com.eg — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when dubizzle.com.eg 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 dubizzle.com.eg 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?+
- Build a property price tracker for Cairo apartments by polling search_properties with price_asc sort and storing EGP price fields over time.
- Aggregate agency performance dashboards using ads_count and agents_count from get_featured_agencies alongside their listings via get_agency_listings.
- Generate location-aware property alerts by combining get_locations hierarchy data with search_properties filters for specific governorates or compounds.
- Populate a property comparison tool using get_property_detail photo arrays, area, bedrooms, and seller info for multiple ad IDs.
- Discover valid filter options before presenting a search UI by calling get_property_filters for a given category slug.
- Search cross-category classifieds (electronics, cars, etc.) using search_all_classifieds with keyword queries like 'iphone' or 'toyota'.
- Map Egypt's property listing density by location level using get_locations combined with category counts from get_property_categories.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 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.
Does Dubizzle Egypt have an official developer API?+
What does get_property_detail return beyond basic listing info?+
photos array with two image size variants (url_800x600 and url_400x300), a seller object with name, agency_name, and agency_id, plus area in sqm, bedrooms, category, price, and currency (always EGP). The url field gives the canonical link back to the original listing.How granular is the location data returned by get_locations?+
level field ranging from 0 (country) through 4 (compound). A query like cairo will return matching entries at multiple hierarchy levels — governorate, city, and sub-area — each with a slug ready for use in search_properties.Does the API expose property description text or amenity lists?+
get_property_detail cover price, area, bedrooms, photos, seller, category, and title, but do not include a free-text description field or a structured amenities list. You can fork this API on Parse and revise it to add those fields if they are accessible from the source listing.Can I filter search_properties by price range?+
search_properties endpoint supports sorting by price_asc and price_desc but does not currently expose price_min or price_max filter parameters. You can fork this API on Parse and revise it to add price-range filtering.