# Aqarmap Property Search API Documentation

Scrappa's `GET /api/aqarmap/search` returns Egyptian properties for sale (`section=sale`, the default) or rent (`section=rent`) from Aqarmap as structured JSON.

## What you get

One request returns one page of listings and Aqarmap's own match count in `meta.pagination.total`. Each listing has `id`, `url`, `title`, `description`, `price` (a number in EGP), `area` in square metres, `address`, `latitude`, `longitude`, the `location` chain, `rooms`, `baths`, `floor`, `year_built`, `finish_type`, `amenities`, the payment method and `payment_plans`, price and sale flags, photo URLs, `published_at`, `updated_at` and a seller summary. Phone numbers are never returned.

## Filters are honoured

Every filter is applied by Aqarmap and checked again before the response is built: section, price range, area range, exact `rooms`, exact `baths`, `finish_type` and `payment_method`. A listing that breaks a filter is dropped and counted in `meta.filtered_out`. Unknown parameters are rejected with `422`, never ignored. `property_type` is checked against Aqarmap's property type list; an unknown id returns `422` (`INVALID_PROPERTY_TYPE`).

## Property types

`property_type` is a roll-up: type `1` (apartments) also returns its sub types. Common ids: 1 apartments, 8 furnished apartments, 7 chalets, 16 villas, 11 land, 5 buildings, 14 commercial, 13 administrative, 47 medical.

## Sorting and paging

`sort` is `date-desc` (newest first, the default), `price-asc` or `price-desc`. Price order is Aqarmap's and is not guaranteed to be strict across pages. `page` is 1 to 500 and `limit` 1 to 50 (default 22). `meta.pagination.page` is the real page Aqarmap served. A page past 500 returns `422` without any upstream request. A search with no match is a valid, billable empty result.

## Data quality

Values pass through as sellers entered them, so a few listings show unrealistic prices or areas. The `location` ids come from `/api/aqarmap/locations`.

- **Documentation:** [https://scrappa.co/docs/aqarmap-api/aqarmap_search](https://scrappa.co/docs/aqarmap-api/aqarmap_search)
- **API group:** Aqarmap API
- **Endpoint:** `GET https://scrappa.co/api/aqarmap/search`

## Authentication

Send your Scrappa API key in the `X-API-KEY` request header. Paid endpoints also support accountless x402 payments when called without an API key.

## Parameters

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `section` | string | No | sale (default) or rent. |
| `location` | integer | No | Location id from the locations endpoint, for example 36 for Maadi. |
| `property_type` | integer | No | Property type id, for example 1 (apartments) or 16 (villas). Sub types are included. |
| `rooms` | integer | No | Exact room count. |
| `baths` | integer | No | Exact bathroom count. |
| `price_min` | integer | No | Minimum price in EGP (monthly rent for rent). |
| `price_max` | integer | No | Maximum price in EGP (monthly rent for rent). |
| `area_min` | integer | No | Minimum area in square metres. |
| `area_max` | integer | No | Maximum area in square metres. |
| `finish_type` | string | No | One of SEMI_FINISHED, SUPER_LUX or WITHOUT_FINISH. |
| `payment_method` | integer | No | 1, 2 or 3. The label of each listing is in payment_method.label. |
| `owner_only` | boolean | No | true for listings posted by the owner. |
| `has_video` | boolean | No | true for listings with a video. |
| `keyword` | string | No | Free text matched against the listing, for example garden. |
| `sort` | string | No | date-desc (default), price-asc or price-desc. |
| `page` | integer | No | Page number, 1 to 500. |
| `limit` | integer | No | Listings per page, 1 to 50 (default 22). |
| `lang` | string | No | en (default) or ar. Sets the language of titles, labels and the listing url. |

## Example request

```bash
#!/bin/bash

curl -X GET \
    -H "x-api-key: YOUR_API_KEY_HERE" \
    "https://scrappa.co/api/aqarmap/search?section=rent&location=36&property_type=1&rooms=3&price_min=10000&price_max=30000&limit=10"
```

## Example response

```json
{
    "success": true,
    "data": {
        "listings": [
            {
                "id": "7360411",
                "slug": "for-rent-cairo-helwan",
                "url": "https://aqarmap.com.eg/en/listing/7360411/",
                "reference_id": 7360411,
                "title": "Apartment for rent in front of the Japanese Garden, 125 m",
                "description": "Apartment for rent facing the Japanese Garden, 3 bedrooms, 2 bathrooms.",
                "section": {
                    "id": 2,
                    "key": "rent",
                    "title": "For rent"
                },
                "property_type": {
                    "id": 1,
                    "name": "Apartment",
                    "plural_name": "Apartments",
                    "slug": "apartment"
                },
                "price": {
                    "amount": 10000,
                    "currency": "EGP"
                },
                "area": {
                    "value": 125,
                    "unit": "sqm"
                },
                "address": "Helwan",
                "location": {
                    "id": 67,
                    "name": "Helwan",
                    "slug": "cairo/helwan",
                    "full_path": "Greater Cairo / Helwan",
                    "type": null,
                    "parent": {
                        "id": 1,
                        "name": "Greater Cairo",
                        "slug": "cairo",
                        "full_path": "Greater Cairo",
                        "type": null,
                        "parent": null
                    }
                },
                "rooms": 3,
                "baths": 2,
                "floor": 1,
                "year_built": 2020,
                "finish_type": "SUPER_LUX",
                "finish_type_label": "Super lux",
                "amenities": [
                    "ELEVATOR",
                    "SECURITY"
                ],
                "payment_method": {
                    "id": 1,
                    "key": "from_owner_cash",
                    "label": "From owner cash"
                },
                "payment_plans": [
                    {
                        "price": 10000,
                        "down_payment": null,
                        "down_payment_percentage": null,
                        "total_down_payment": 0,
                        "total_remaining_amount": 10000,
                        "over_price": null,
                        "security_deposit": null,
                        "duration": 30
                    }
                ],
                "property_view": {
                    "id": 1
                },
                "is_price_negotiable": false,
                "is_resale": false,
                "is_primary": false,
                "is_mortgage": false,
                "is_featured": false,
                "main_photo": {
                    "id": 47478477,
                    "caption": null,
                    "order": 1,
                    "thumb_url": "https://img-1.aqarmap.com.eg/new-aqarmap-media/search-thumb-webp/2610/6adba8e739dc7555414291.jpg",
                    "small_url": "https://img-1.aqarmap.com.eg/new-aqarmap-media/small/2610/6adba8e739dc7555414291.jpg",
                    "large_url": "https://img-1.aqarmap.com.eg/new-aqarmap-media/large/2610/6adba8e739dc7555414291.jpg"
                },
                "photos": [],
                "photo_count": 5,
                "published_at": "2026-10-26T01:42:07+03:00",
                "updated_at": "2026-10-26T01:42:07+03:00",
                "latitude": 29.821,
                "longitude": 31.317,
                "featured_type": "not_featured",
                "has_video": false,
                "similar_listings_count": 0,
                "similar_listing_ids": [],
                "registration_status": null,
                "mortgage_options": [],
                "seller": {
                    "id": 4746422,
                    "name": "Al Hoda Real Estate",
                    "role": "broker",
                    "logo": null
                }
            }
        ]
    },
    "meta": {
        "endpoint_family": "search",
        "billable": true,
        "duration_ms": 640,
        "filtered_out": 0,
        "pagination": {
            "page": 1,
            "limit": 10,
            "total": 413,
            "total_pages": 42,
            "has_more": true,
            "next_page": 2,
            "truncated": false
        }
    }
}
```

## Errors

| Status | Error | Description |
| --- | --- | --- |
| 422 | Unknown Property Type | The `property_type` is not an Aqarmap property type id (`INVALID_PROPERTY_TYPE`). Aqarmap would ignore it and return every property, so the request is rejected. Non-billable. |
| 422 | Validation Error | A query parameter is missing, unknown or unusable. Unknown parameters are rejected, never ignored. Non-billable. |
| 503 | Upstream Unavailable | Aqarmap could not be reached after retries, refused the request or answered with a body this API cannot read safely (`UPSTREAM_UNAVAILABLE`). Never billed. Retry when `meta.retryable` is true. |

## More Scrappa resources

- [API documentation](https://scrappa.co/docs)
- [Full LLM-readable API reference](https://scrappa.co/llms-full.txt)
- [OpenAPI specification](https://scrappa.co/docs/api.json)
- [Pricing](https://scrappa.co/pricing)
