Docs

العقارات

آخر تحديث: 2026-10-037 دقيقة قراءة

ثلاثة أنواع من العقارات (kind): property للبيع، وrental للإيجار، وcomplex مجمع سكني. القراءة مجانية ومتاحة لأي مفتاح؛ والإنشاء والتعديل والحذف تتطلب النطاق objects:write ولا تُخصم أيضا.

القائمة

curl "https://developers.grem.capital/api/v1/objects?kind=property&city=Berlin&limit=20" \
  -H "Authorization: Bearer gsk_live_xxx"

GET /objects:

المعاملالوصف
kindإلزامي: property أو rental أو complex؛ لا يهم حجم الأحرف
city، countryمرشحات بمطابقة تامة
priceMin، priceMaxالسعر بالدولار الأمريكي (حسب السعر الموحد)
areaMin، areaMaxالمساحة، م²
roomsالغرف (البيع والإيجار)؛ قد تكون كسرية
type، residentialTypeالفئة: رموز من القواميس (البيع والإيجار)
pageالصفحة، من 1؛ القيمة الأصغر تُعد 1
limitلكل صفحة، الافتراضي 20، من 1 إلى 50؛ القيمة خارج المدى تُردّ إليه
sortnewest (افتراضي) أو oldest
scopeلمفاتيح الوكالة فقط: افتراضيا عقارات الوكالة؛ catalog الكتالوج العام

الرد: data العقارات، وpaginate يحتوي currentPage وtotalPages وtotalCount.

limit وpage خارج المدى يُردّان إليه ولا يُرفضان. أما القيم غير الصالحة الأخرى لمعامل معروف (قيمة تعداد غير معروفة، أو page غير صحيح، أو نص بدل رقم) فتُرفض بـ 400 validation مع اسم الحقل.

عقار واحد

GET /objects/{kind}/{id}: عقار واحد بالشكل نفسه. المعرّف غير المعروف: 404. يمكن لمفتاح الوكالة إضافة scope=catalog للحصول على العرض العام.

شكل العقار

الحقلالوصف
id، kind، name، slugالهوية
statusلعقار غيرك: active أو sold
typeالفئة: رمز
price، currencyالسعر؛ وللمجمع price: { from, to, currency }
constructionYearسنة البناء، عدد صحيح أو null
addressالعنوان الكامل مع الشارع والإحداثيات
nativeAreaUnitالوحدة التي أُدخل بها العقار (للعرض)؛ تأتي المساحات بصيغة { "value": 50, "unit": "m2" }
photosالصور: id، isMain، mimetype، variants، ready
processingStatusready أو processing أو failed: هل الصور جاهزة
promotedالعقار مروَّج
authorوكيل العقار أو وكالته

الفئات والسمات الأخرى رموز؛ والتسميات المترجمة في القواميس. وللمجمع أيضا apartmentPlans (المخططات) وprogress (تقدم البناء).

ready: false في صورة يعني أن النسخ ذات العلامة المائية ما زالت قيد الإنشاء. اعرض عنصرا نائبا وأعد قراءة العقار لاحقا، ولا تحفظ صورة غير مكتملة في الذاكرة المؤقتة.

ما الذي تراه: أي عقار، البطاقة العامة كما في الموقع؛ وعقاراتك، العرض الكامل للمالك. لا أحد يحصل على جهات اتصال المالك، أو بيانات البائع من الاستيراد، أو ملاحظات الإشراف، أو الأصول دون علامة مائية.

الإنشاء والتعديل والحذف

الإجراءالطلبالرد
إنشاءPOST /objects/{kind}201 مع العقار
تعديلPUT /objects/{kind}/{id}العقار؛ للمالك فقط، وإلا 404
حذفDELETE /objects/{kind}/{id}المسودة تُحذف نهائيا، والعقار المنشور يُؤرشف؛ والعقار المرتبط بعقد عمولة ساري: 409 conflict
curl -X POST https://developers.grem.capital/api/v1/objects/property \
  -H "Authorization: Bearer gsk_live_xxx" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: 9a1d2c3b-4e5f-4a6b-8c7d-0e1f2a3b4c5d" \
  -d '{
    "name": "شقة من غرفتين، Torstraße 12",
    "type": "Residential",
    "address": { "country": "Germany", "city": "Berlin", "street": "Torstraße", "streetNumber": "12" },
    "price": 320000, "currency": "EUR",
    "spaceAll": 64, "rooms": 2, "floor": 3, "buildingFloor": 5,
    "photos": ["https://example.com/1.jpg"],
    "publish": false
  }'
  • publish: false (افتراضي) مسودة خارج الكتالوج؛ publish: true منشور. للنشر تحتاج property وrental إلى صورة واحدة على الأقل، وcomplex إلى صورتين.
  • ليس كل دور في الحساب يستطيع إنشاء كل الأنواع، كما في لوحة التحكم.
  • الحقول غير المعروفة تُتجاهل. خذ رموز الفئات من القواميس. رموز condition وconditionType وamenities (بصيغة camelCase مثل needsRenovation وfridge) مدرجة في مخطط الكتابة نفسه (الجداول أدناه و/openapi.json)، ولا يفك GET /dictionaries ترميزها.
  • المساحات: رقم بالمتر المربع أو { "value": 700, "unit": "ft2" }.
  • PUT دون photos يُبقي الصور الحالية.
  • Idempotency-Key عند الإنشاء يمنع التكرار عند الإعادة.

الصور

photos مصفوفة، وكل عنصر فيها:

  • عنوان عام https://...: ينزّل GREM الصورة بنفسه؛
  • معرّف ملف مرفوع عبر POST /uploads (الملفات).

العنوان الذي يتعذر تنزيله يُتخطى ويُذكر في warnings ضمن الرد. ومع strictPhotos: true يفشل هذا الطلب بدلا من ذلك بـ 422.

حقول البيع

الإلزامية: name، type، address، price.

الحقلالوصف
typeResidential أو Commercial أو Industrial أو Land plot
residentialType، commercialType، industrialTypeالنوع الفرعي: رمز أو مصفوفة رموز
marketSegmentprimary (بناء جديد) أو secondary
descriptionالوصف، حتى 5000 حرف
addresscountry، city (إلزامي)، district، region، street، streetNumber، postalCode، location
price، currencyالسعر؛ والعملة UAH، USD، EUR، AZN، GBP، AED، CNY، TRY، GEL
constructionYearالسنة من 1700 إلى 2100
spaceAll، spaceLiving، spaceKitchen، effectiveArea، auxiliaryArea، landPlotAreaالمساحات
rooms، bedrooms، numberOfBathrooms، balconies، numberWindows، unitsCountالأعداد
floor، buildingFloor، ceilingHeightالطابق، وعدد الطوابق، وارتفاع السقف
conditionneedsRenovation، partialRenovation، renovated، designer، shellCore، newFromDeveloper
buildingTypenewBuilding، secondary، stalinka، khrushchevka، brezhnevka، czech، gostinka، prerevolutionary، townhouseRow، detached، other
wallMaterialType، constructionTech، kitchenTypeمادة الجدران، وتقنية البناء، ونوع المطبخ
amenities، buildingAmenitiesمرافق الوحدة والمبنى: مصفوفات رموز
utilitySystem، heating، windowView، balcony، parkingالخدمات، والتدفئة، والإطلالة، والشرفة، والموقف
safetyshelterNearby، powerBackup، autonomousHeating، waterReserve، starlink، gasAvailable، internetAvailable، elevatorWorks (نعم/لا)
accessibilityramp، groundLevelEntrance، wideDoors، disabledParking، wheelchairElevator (نعم/لا)
programseOselya، eVidnovlennya، mortgageEligible، installment
monthRentalRate، annualIncome، annualYield، paybackPeriod، propertyTax، insuranceCost، managementFee، repairsReserveأرقام الاستثمار
commissionعمولة الوكلاء: payer، type، value
tourالجولة ثلاثية الأبعاد: kind، url
complexIdالمجمع الذي تنتمي إليه الوحدة
photos، videoالوسائط
publish، strictPhotosانظر أعلاه

حقول الإيجار

الإلزامية: name، type (Residential، Commercial، Industrial)، address، price. معظم الحقول كما في البيع؛ والخاصة بالإيجار:

الحقلالوصف
rentalTypelong طويل الأمد، short يومي
price، dayPrice، depositالإيجار، والسعر اليومي، والتأمين
totalArea، totalFloors، bathroomsالمساحة، والطوابق، والحمامات
minRentTime، minTermMonthsالحد الأدنى للمدة
availableFromمتاح من
checkIn، checkOutوقت الدخول والمغادرة: from، to — ساعة اليوم (15 = 15:00)
withChildren، withPetsالأطفال مسموح بهم؛ الحيوانات: yes، no، with someone
furniture، furnitureListالأثاث
conditionTypeالحالة: القيم نفسها لـ condition في البيع
onsiteAmenities، internalFeatureالمرافق
utilitiesIncluded، utilitiesCostالخدمات
checkInPay، onlinePay، bankTransfer، reportingDocumentsطرق الدفع والمستندات

حقول المجمع

الإلزامية: name، address.

الحقلالوصف
description، descriptionPresentation، descriptionSocialالأوصاف
pricefrom، to، currency
spaceمساحات الوحدات: from، to
apartTypeأنواع الوحدات
classeconomy، comfort، comfortPlus، business، premium، elite
stageplanning، excavation، construction، finishing، commissioned، delivered
completionQuarterربع سنة الإنجاز
queuesالمراحل: name، stage، completionQuarter
sectionsNumber، floors، apartmentsNumber، parkingSpacesالأعداد
installment، installmentTermsالتقسيط: downPaymentPct، termMonths، interestRate
infrastructureالبنية التحتية: مصفوفة رموز
territoryDescription، parkingDescription، infrastructureDescriptionالأوصاف
apartmentPlansالمخططات: apartType، area، price، description، photos
progressتقدم البناء: title، date، description، photos

المخطط الكامل لكل نوع بكل قيمه: المكونات ObjectWriteProperty وObjectWriteRental وObjectWriteComplex في /openapi.json. تُولَّد من عمليات التحقق نفسها التي يجريها الخادم.

مفتاح الوكالة

الطلبماذا يفعل
PATCH /objects/{kind}/{id}/agencyنقل عقار إلى الوكالة أو إعادته إلى الشخصي: الجسم {"targetAgencyId": "<id>"} أو {"targetAgencyId": null}؛ ودون الحقل إلى وكالة المفتاح
PATCH /objects/{kind}/{id}/assigneeتعيين وكيل: {"assignTo": "<user id>"}

بمفتاح شخصي يعيد كلاهما 403. لا يمكن نقل عقار مباشرة من وكالة إلى أخرى (409 conflict): انقله إلى الشخصي أولا. وتعيين وكيل لعقار شخصي، أو لشخص ليس عضوا نشطا في الوكالة، يعيد أيضا 409 conflict. الصلاحيات: إلى الوكالة، كاتب العقار؛ والعودة إلى الشخصي، المدير أو مالك الوكالة أو الكاتب؛ وتعيين أي شخص، من المدير فما فوق؛ والوكيل يعيّن نفسه فقط.

الأحداث

object.created، object.updated، object.published، object.deleted: انظر Webhooks.

مقالات ذات صلة

هل كانت هذه المقالة مفيدة؟