Compounds Management
Manage and retrieve compound information and their units using the Compounds API.
Get Compounds for Organization
Retrieves a paginated list of compounds for the organization with optional filtering and search capabilities.
Endpoint
GET /external/apis/v1.0/compounds
Headers
| Header | Type | Required | Description |
|---|---|---|---|
api-key | string | Yes | API key for authentication |
Query Parameters
Pagination Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
page | number | No | 1 | The page number to retrieve (minimum: 1) |
limit | number | No | 10 | Number of items per page (minimum: 1, maximum: 100) |
all | number | No | 0 | Return all results without pagination. Options: 0 (paginated) or 1 (all results) |
Request Example
Basic Request with Pagination
curl -X GET "https://api.sakneen.com/external/apis/v1.0/compounds?page=1&limit=20" \
-H "api-key: your-api-key"
Request to Get All Compounds
curl -X GET "https://api.sakneen.com/external/apis/v1.0/compounds?all=1" \
-H "api-key: your-api-key"
Response
Success Response (200 OK)
{
"data": [
{
"_id": "691dc2308d882bd47368661a",
"isDeleted": false,
"organizationId": "691dc2308d882bd473686611",
"type": "Compound",
"area": 6115,
"mainImageUrl": "https://loremflickr.com/3543/341?lock=8944094847880925",
"mainBannerUrl": "https://picsum.photos/seed/eg63G/1357/1356",
"media": [
{
"image": "https://picsum.photos/seed/EeQ33FNdk/3441/2587",
"type": "image"
},
{
"image": "https://picsum.photos/seed/Bfyrei7U9A/1836/3961",
"type": "image"
}
],
"constructionUpdates": [
{
"image": "https://loremflickr.com/714/712?lock=5238549307544312",
"type": "image"
}
],
"showOnMap": true,
"isPublished": true,
"isPublic": false,
"logo": "https://picsum.photos/seed/9GT605R8FG/630/451",
"saleType": "primary",
"mapHealthCheck": true,
"numberOfUnits": 222,
"mainBrochure": {
"dateUploaded": "2025-11-19T13:12:16.376Z",
"name": "Des Moines Main Brochure",
"url": "https://loremflickr.com/3194/302?lock=6831798650377823"
},
"brochures": [
{
"dateUploaded": "2025-11-19T13:12:16.376Z",
"name": "Des Moines Brochure",
"url": "https://picsum.photos/seed/2Nige/1361/396"
}
],
"isNewLaunch": false,
"EOIUnitTypes": [],
"EOIUnitPreferences": [],
"EOIForm": [],
"offerJsons": [],
"allowPriceRange": false,
"showInLeadFeedback": false,
"isAdminOnly": false,
"commercialBuildingsOrder": [],
"showInEcommerce": false,
"__v": 0,
"createdAt": "2025-11-19T13:12:16.378Z",
"updatedAt": "2025-11-19T13:12:16.378Z",
"organization": {
"_id": "691dc2308d882bd473686611",
"name": "lasirena",
"logo": "https://www.lasirena-egypt.com/wp-content/uploads/2019/07/Lasirena-Logo.png"
},
"description": "Alioqui denuo dolores videlicet soleo pecco. Aegre quibusdam quas conicio. Confero ulciscor sol.",
"name": "Des Moines",
"slug": "des-moines"
}
],
"pagination": {
"count": 1,
"limit": 2,
"pages": 2,
"total": 3
}
}
Response Fields
| Field | Type | Description |
|---|---|---|
_id | string | Unique identifier for the compound |
isDeleted | boolean | Indicates if the compound has been deleted |
organizationId | string | ID of the organization that owns the compound |
type | string | Type of the entity (e.g., "Compound") |
area | number | Total area of the compound in square meters |
mainImageUrl | string | URL of the main image for the compound |
mainBannerUrl | string | URL of the main banner image |
media | array | Array of media items (images/videos) |
media[].image | string | URL of the media item |
media[].type | string | Type of media (e.g., "image") |
constructionUpdates | array | Array of construction update media |
constructionUpdates[].image | string | URL of the construction update image |
constructionUpdates[].type | string | Type of media (e.g., "image") |
showOnMap | boolean | Whether to display compound on map |
isPublished | boolean | Whether the compound is published |
isPublic | boolean | Whether the compound is publicly accessible |
logo | string | URL of the compound logo |
saleType | string | Type of sale (e.g., "primary", "resale") |
mapHealthCheck | boolean | Health check status for map integration |
numberOfUnits | number | Total number of units in the compound |
mainBrochure | object | Main brochure information |
mainBrochure.dateUploaded | string | ISO 8601 timestamp of upload date |
mainBrochure.name | string | Name of the brochure |
mainBrochure.url | string | URL to download the brochure |
brochures | array | Array of additional brochures |
brochures[].dateUploaded | string | ISO 8601 timestamp of upload date |
brochures[].name | string | Name of the brochure |
brochures[].url | string | URL to download the brochure |
isNewLaunch | boolean | Indicates if this is a new launch |
EOIUnitTypes | array | Array of EOI (Expression of Interest) unit types |
EOIUnitPreferences | array | Array of EOI unit preferences |
EOIForm | array | EOI form fields |
offerJsons | array | Array of offer configurations |
allowPriceRange | boolean | Whether price range filtering is allowed |
showInLeadFeedback | boolean | Whether to show in lead feedback |
isAdminOnly | boolean | Whether compound is visible only to admins |
commercialBuildingsOrder | array | Order of commercial buildings |
showInEcommerce | boolean | Whether to show in e-commerce |
__v | number | Version key (internal MongoDB field) |
createdAt | string | ISO 8601 timestamp of creation date |
updatedAt | string | ISO 8601 timestamp of last update |
organization | object | Organization/developer information |
organization._id | string | Organization unique identifier |
organization.name | string | Organization name |
organization.logo | string | Organization logo URL |
description | string | Description of the compound |
name | string | Name of the compound |
slug | string | URL-friendly identifier |
Pagination Object
| Field | Type | Description |
|---|---|---|
count | number | Number of items in the current response |
limit | number | Maximum number of items per page |
pages | number | Total number of pages |
total | number | Total number of compounds matching the query |
Error Responses
400 Bad Request
{
"statusCode": 400,
"message": ["page must be a positive number", "limit must not exceed 100"],
"error": "Bad Request"
}
401 Unauthorized
{
"statusCode": 401,
"message": "Unauthorized",
"error": "Unauthorized"
}
500 Internal Server Error
{
"statusCode": 500,
"message": "Internal server error",
"error": "Internal Server Error"
}
Notes
- When
all=1is set, thepageandlimitparameters are ignored - Maximum limit is capped at 100 items per page to ensure optimal performance
- Results are typically sorted by compound creation date (newest first) unless specified otherwise
Get Compound Units
Retrieves all units for a specific compound with detailed information including unit designs, amenities, property types, and phases.
Endpoint
GET /external/apis/v1.0/compounds/:slug/units
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
slug | string | Yes | The compound slug identifier |
Headers
| Header | Type | Required | Description |
|---|---|---|---|
api-key | string | Yes | API key for authentication |
Request Example
curl -X GET "https://api.sakneen.com/external/apis/v1.0/compounds/compound-slug/units" \
-H "api-key: your-api-key"
Response
Success Response (200 OK)
{
"data": [
{
"_id": "691dd0f28ebfedf1459d8439",
"isDeleted": false,
"organizationId": "691dd0f28ebfedf1459d8425",
"locationId": "691dd0f28ebfedf1459d842e",
"paymentPlansIds": [
"63a2ea2b2b48f4b7190171b4",
"63a2ea2b2b48f4b7190171b5"
],
"maintenancePlanIds": [],
"clubPlanIds": [],
"unitDesignId": "691dd0f28ebfedf1459d8434",
"floor": {
"name": "Ground"
},
"amenitiesIds": [
"691dd0f28ebfedf1459d8436",
"691dd0f28ebfedf1459d8437"
],
"featuresIds": [],
"bua": 109,
"price": 4960641295871160,
"beds": 3,
"buildingId": "CH1",
"unitId": "CH11",
"media": [
{
"image": "https://img.sakneen.com//5b6c306b-d792-4321-bc55-fc237889f8c1-attachments/CH---Ground/Floor-Plan/Type-CH.jpeg",
"imageType": "floorplan",
"type": "image"
},
{
"image": "https://img.sakneen.com//7c4eae33-075a-4af0-8f70-695405a49017-attachments/CH---Ground/Gallery/a-(1).jpg",
"imageType": null,
"type": "image"
}
],
"status": "Available",
"rentalStatus": "Unavailable",
"propertyTypeId": "691dd0f28ebfedf1459d8432",
"finishingTypeId": "6399bff45e04ee7b2f7364b6",
"showForBrokers": false,
"brokersIds": [],
"saleType": "primary",
"brokersGroupsIds": [],
"listingType": [],
"addons": [],
"isAdminOnly": false,
"allowToTaskeen": false,
"priceByPaymentPlan": [],
"releaseIds": [],
"reviews": [
{
"hasIssue": 0,
"type": "unitDesign",
"approveStatus": "pending",
"approvedById": null,
"approvedDate": null,
"reviewStatus": "pending",
"reviewedById": null,
"reviewedDate": null
}
],
"__v": 0,
"createdAt": "2025-11-19T14:15:14.120Z",
"updatedAt": "2025-11-19T14:15:14.120Z",
"amenities": [
{
"_id": "691dd0f28ebfedf1459d8436",
"isDeleted": false,
"icon": "https://picsum.photos/seed/HtwE9NRMU/2195/2261",
"fontColor": "#af7ad0",
"backgroundColor": "#a5a660",
"__v": 0,
"createdAt": "2025-11-19T14:15:14.110Z",
"updatedAt": "2025-11-19T14:15:14.110Z",
"name": "lady"
}
],
"phase": {
"_id": "691dd0f28ebfedf1459d842e",
"isDeleted": false,
"organizationId": "691dd0f28ebfedf1459d8425",
"parentId": "691dd0f28ebfedf1459d842a",
"type": "Phase",
"landArea": 2086,
"mainImageUrl": "https://picsum.photos/seed/EapJKvC/1975/2969",
"media": [
{
"image": "https://picsum.photos/seed/AhNWr5C/607/1580",
"type": "image"
}
],
"brochures": [],
"createdAt": "2025-11-19T14:15:14.089Z",
"updatedAt": "2025-11-19T14:15:14.089Z",
"__v": 0,
"description": "Adfero coniecto harum eveniet votum curvo torrens amissio cotidie attero.",
"name": "famously cricket",
"slug": "denitrify-silently"
},
"type": {
"_id": "691dd0f28ebfedf1459d8432",
"isDeleted": false,
"propertyTypeCategoryId": "691dd0f28ebfedf1459d8431",
"organizationId": "691dd0f28ebfedf1459d8425",
"createdAt": "2025-11-19T14:15:14.097Z",
"updatedAt": "2025-11-19T14:15:14.097Z",
"__v": 0,
"name": "hunt",
"slug": "pleasure"
},
"unitDesign": {
"_id": "691dd0f28ebfedf1459d8434",
"isDeleted": false,
"organizationId": "691dd0f28ebfedf1459d8425",
"bua": 112,
"media": [],
"offerGallery": [],
"bedrooms": 2,
"amenitiesIds": [],
"locationsIds": [],
"addonsIds": [],
"reviewStatus": "reviewed",
"approveStatus": "approved",
"reviewedById": null,
"approvedById": null,
"approvedDate": null,
"reviewedDate": null,
"releaseIds": [],
"createdAt": "2025-11-19T14:15:14.105Z",
"updatedAt": "2025-11-19T14:15:14.105Z",
"__v": 0,
"type": null,
"description": "finally opposite napkin underneath service as crafty furthermore sardonic aw",
"name": "effector",
"slug": "effector"
},
"name": "CH11",
"slug": "ch11"
}
]
}
Response Fields
| Field | Type | Description |
|---|---|---|
_id | string | Unique identifier for the unit |
isDeleted | boolean | Indicates if the unit is marked as deleted |
organizationId | string | Reference to the organization |
locationId | string | Reference to the location/phase |
paymentPlansIds | array | Array of payment plan IDs |
maintenancePlanIds | array | Array of maintenance plan IDs |
clubPlanIds | array | Array of club plan IDs |
unitDesignId | string | Reference to the unit design |
floor | object | Floor information |
floor.name | string | Floor name (e.g., "Ground", "First") |
amenitiesIds | array | Array of amenity IDs |
featuresIds | array | Array of feature IDs |
bua | number | Built-up area in square meters |
price | number | Unit price |
beds | number | Number of bedrooms |
buildingId | string | Building identifier |
unitId | string | Human-readable unit identifier |
media | array | Array of media items (images/videos) |
media[].image | string | URL of the media item |
media[].imageType | string | Type of image (e.g., "floorplan", null for general) |
media[].type | string | Media type (e.g., "image") |
status | string | Current unit status (e.g., "Available", "Sold") |
rentalStatus | string | Rental status (e.g., "Unavailable") |
propertyTypeId | string | Reference to the property type |
finishingTypeId | string | Reference to the finishing type |
showForBrokers | boolean | Whether unit is visible to brokers |
brokersIds | array | Array of broker IDs with access |
saleType | string | Type of sale (e.g., "primary", "resale") |
brokersGroupsIds | array | Array of broker group IDs |
listingType | array | Types of listing |
addons | array | Available addons for the unit |
isAdminOnly | boolean | Whether unit is visible only to admins |
allowToTaskeen | boolean | Whether unit is available for Taskeen |
priceByPaymentPlan | array | Price variations by payment plan |
releaseIds | array | Array of release IDs |
reviews | array | Review information for different aspects |
reviews[].hasIssue | number | Issue flag (0 = no issue) |
reviews[].type | string | Review type (e.g., "unitDesign", "paymentPlan") |
reviews[].approveStatus | string | Approval status |
reviews[].reviewStatus | string | Review status |
__v | number | Version key (internal MongoDB field) |
createdAt | string | ISO 8601 timestamp of unit creation |
updatedAt | string | ISO 8601 timestamp of last update |
amenities | array | Populated amenities with full details |
amenities[]._id | string | Amenity unique identifier |
amenities[].name | string | Amenity name |
amenities[].icon | string | URL to amenity icon |
amenities[].fontColor | string | Hex color code for text |
amenities[].backgroundColor | string | Hex color code for background |
phase | object | Populated phase/location information |
phase._id | string | Phase unique identifier |
phase.name | string | Phase name |
phase.slug | string | Phase slug |
phase.description | string | Phase description |
phase.type | string | Type (e.g., "Phase") |
phase.landArea | number | Land area in square meters |
phase.mainImageUrl | string | Main image URL |
phase.media | array | Phase media items |
type | object | Property type information |
type._id | string | Property type unique identifier |
type.name | string | Property type name |
type.slug | string | Property type slug |
unitDesign | object | Unit design information |
unitDesign._id | string | Unit design unique identifier |
unitDesign.name | string | Unit design name |
unitDesign.slug | string | Unit design slug |
unitDesign.description | string | Unit design description |
unitDesign.bua | number | Design built-up area |
unitDesign.bedrooms | number | Number of bedrooms in design |
unitDesign.reviewStatus | string | Review status |
unitDesign.approveStatus | string | Approval status |
name | string | Unit name |
slug | string | URL-friendly unit identifier |
Error Responses
404 Not Found
Returned when the compound slug doesn't exist.
{
"statusCode": 404,
"message": "There is no compound with slug: invalid-slug",
"error": "Not Found"
}
401 Unauthorized
Returned when the API key is missing or invalid.
{
"statusCode": 401,
"message": "Unauthorized",
"error": "Unauthorized"
}
500 Internal Server Error
{
"statusCode": 500,
"message": "Internal server error",
"error": "Internal Server Error"
}
Notes
- All units for the compound are returned in a single response (no pagination)
- Units include populated data for
unitDesign,amenities,type, andphase - Only non-deleted units are returned
- Media array includes both floor plans (with
imageType: "floorplan") and gallery images - The
languageheader determines the language of returned content - Reviews array contains status information for different unit aspects (design, payment plan, location, data)