Üç obyekt növü (kind) var: property - satış, rental - icarə, complex - yaşayış kompleksi. Oxuma pulsuzdur və istənilən açar üçün açıqdır; yaratma, redaktə və silmə objects:write icazəsi tələb edir və onlar üçün də ödəniş tutulmur.
Siyahı
curl "https://developers.grem.capital/api/v1/objects?kind=property&city=Berlin&limit=20" \
-H "Authorization: Bearer gsk_live_xxx"
GET /objects:
| Parametr | Təsvir |
|---|---|
kind | məcburi: property, rental və ya complex; böyük-kiçik hərf fərqi yoxdur |
city, country | dəqiq uyğunluq filtrləri |
priceMin, priceMax | qiymət, ABŞ dolları ilə (normallaşdırılmış qiymətə görə) |
areaMin, areaMax | sahə, m² |
rooms | otaqlar (property və rental); kəsr ola bilər |
type, residentialType | kateqoriya - lüğətlərdəki kodlar (property və rental) |
page | səhifə, 1-dən başlayaraq; daha kiçik dəyər 1 kimi qəbul edilir |
limit | səhifədə element sayı, standart 20, 1-50; aralıqdan kənar dəyər aralığa salınır |
sort | newest (standart) və ya oldest |
scope | yalnız agentlik açarları üçün: standart olaraq agentliyin obyektləri; catalog - ictimai kataloq |
Cavab: data - obyektlər, paginate - currentPage, totalPages, totalCount.
Aralıqdan kənar limit və page rədd edilmir, aralığa salınır. Məlum parametrin digər yanlış dəyərləri (naməlum enum dəyəri, tam olmayan page, rəqəm yerinə mətn) sahənin adı göstərilməklə 400 validation ilə rədd edilir.
Bir obyekt
GET /objects/{kind}/{id} - eyni formada bir obyekt. Naməlum identifikator - 404. Agentlik açarı ictimai görünüşü almaq üçün scope=catalog əlavə edə bilər.
Obyektin quruluşu
| Sahə | Təsvir |
|---|---|
id, kind, name, slug | identifikasiya |
status | başqasının obyekti üçün - active və ya sold |
type | kateqoriya - kod |
price, currency | qiymət; kompleksdə price: { from, to, currency } |
constructionYear | tikinti ili, tam ədəd və ya null |
address | küçə və koordinatlarla tam ünvan |
nativeAreaUnit | obyektin daxil edildiyi vahid (göstərmək üçün); sahələr { "value": 50, "unit": "m2" } kimi gəlir |
photos | fotolar: id, isMain, mimetype, variants, ready |
processingStatus | ready, processing və ya failed - fotoların hazır olub-olmaması |
promoted | obyekt irəli çəkilib |
author | obyektin agenti və ya agentliyi |
Kateqoriyalar və digər atributlar kodlardır; tərcümə olunmuş adlar lüğətlərdədir. Kompleksdə həmçinin apartmentPlans (mənzil planları) və progress (tikintinin gedişi) var.
Fotoda ready: false su nişanlı variantların hələ hazırlandığını bildirir. Əvəzedici göstərin və obyekti sonra yenidən oxuyun - bitməmiş şəkli keşləməyin.
Nə görürsünüz: istənilən obyekt üçün - saytdakı kimi ictimai kart; öz obyektləriniz üçün - sahibin tam görünüşü. Heç kim sahibin əlaqə məlumatlarını, idxaldan gələn satıcı məlumatlarını, moderasiya qeydlərini və ya su nişanı olmayan orijinalları almır.
Yaratma, redaktə, silmə
| Əməliyyat | Sorğu | Cavab |
|---|---|---|
| Yaratma | POST /objects/{kind} | obyektlə 201 |
| Redaktə | PUT /objects/{kind}/{id} | obyekt; yalnız sahib üçün, əks halda 404 |
| Silmə | DELETE /objects/{kind}/{id} | qaralama birdəfəlik silinir, dərc olunmuş obyekt arxivə köçürülür; aktiv komissiya müqaviləsi olan obyekt - 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": "2-room flat, 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(standart) - qaralama, kataloqda deyil;publish: true- dərc olunub. Dərc etmək üçünpropertyvərentalüçün ən azı 1 foto,complexüçün 2 foto lazımdır.- Hər hesab rolu hər növü yarada bilməz - kabinetdəki kimi.
- Naməlum sahələr nəzərə alınmır. Kateqoriya kodlarını lüğətlərdən götürün.
condition,conditionTypevəamenitieskodları (camelCase, məsələnneedsRenovation,fridge) yazma sxeminin özündə verilib (aşağıdakı cədvəllər və/openapi.json) -GET /dictionariesonları açmır. - Sahələr: m² ilə rəqəm və ya
{ "value": 700, "unit": "ft2" }. photosolmadanPUTmövcud fotoları saxlayır.- Yaratma zamanı
Idempotency-Keytəkrar cəhddə dublikatın qarşısını alır.
Fotolar
photos massivdir; hər element:
- ictimai
https://...ünvanı - GREM şəkli özü yükləyir; POST /uploadsilə yüklənmiş faylın identifikatoru (Fayllar).
Yüklənə bilməyən ünvan ötürülür və cavabın warnings sahəsində bildirilir. strictPhotos: true olduqda belə sorğu əvəzində 422 ilə uğursuz olur.
Satış obyektinin (property) sahələri
Məcburi: name, type, address, price.
| Sahə | Təsvir |
|---|---|
type | Residential, Commercial, Industrial və ya Land plot |
residentialType, commercialType, industrialType | alt növ - kod və ya kodlar massivi |
marketSegment | primary (yeni tikili) və ya secondary |
description | təsvir, 5000 simvola qədər |
address | country, city (məcburi), district, region, street, streetNumber, postalCode, location |
price, currency | qiymət; valyuta UAH, USD, EUR, AZN, GBP, AED, CNY, TRY, GEL |
constructionYear | il, 1700-2100 |
spaceAll, spaceLiving, spaceKitchen, effectiveArea, auxiliaryArea, landPlotArea | sahələr |
rooms, bedrooms, numberOfBathrooms, balconies, numberWindows, unitsCount | saylar |
floor, buildingFloor, ceilingHeight | mərtəbə, mərtəbələrin sayı, tavan hündürlüyü |
condition | needsRenovation, partialRenovation, renovated, designer, shellCore, newFromDeveloper |
buildingType | newBuilding, secondary, stalinka, khrushchevka, brezhnevka, czech, gostinka, prerevolutionary, townhouseRow, detached, other |
wallMaterialType, constructionTech, kitchenType | divar materialı, tikinti texnologiyası, mətbəx növü |
amenities, buildingAmenities | mənzildaxili və binadakı şərait - kod massivləri |
utilitySystem, heating, windowView, balcony, parking | kommunikasiyalar, istilik, mənzərə, balkon, parkinq |
safety | shelterNearby, powerBackup, autonomousHeating, waterReserve, starlink, gasAvailable, internetAvailable, elevatorWorks (bəli/xeyr) |
accessibility | ramp, groundLevelEntrance, wideDoors, disabledParking, wheelchairElevator (bəli/xeyr) |
programs | eOselya, eVidnovlennya, mortgageEligible, installment |
monthRentalRate, annualIncome, annualYield, paybackPeriod, propertyTax, insuranceCost, managementFee, repairsReserve | investisiya göstəriciləri |
commission | agentlər üçün komissiya: payer, type, value |
tour | 3D tur: kind, url |
complexId | mənzilin aid olduğu kompleks |
photos, video | media |
publish, strictPhotos | yuxarıya baxın |
İcarə obyektinin (rental) sahələri
Məcburi: name, type (Residential, Commercial, Industrial), address, price. Sahələrin çoxu satış obyektindəki kimidir; icarəyə xas olanlar:
| Sahə | Təsvir |
|---|---|
rentalType | long - uzunmüddətli, short - günlük |
price, dayPrice, deposit | qiymət, günlük qiymət, depozit |
totalArea, totalFloors, bathrooms | sahə, mərtəbələr, vanna otaqları |
minRentTime, minTermMonths | minimal müddət |
availableFrom | hansı tarixdən əlçatandır |
checkIn, checkOut | giriş və çıxış vaxtı: from, to — günün saatları (15 = 15:00) |
withChildren, withPets | uşaqlara icazə; ev heyvanları: yes, no, with someone |
furniture, furnitureList | mebel |
conditionType | vəziyyət - satış obyektindəki condition ilə eyni dəyərlər |
onsiteAmenities, internalFeature | şərait |
utilitiesIncluded, utilitiesCost | kommunal xidmətlər |
checkInPay, onlinePay, bankTransfer, reportingDocuments | ödəniş üsulları və sənədlər |
Kompleksin (complex) sahələri
Məcburi: name, address.
| Sahə | Təsvir |
|---|---|
description, descriptionPresentation, descriptionSocial | təsvirlər |
price | from, to, currency |
space | mənzillərin sahələri: from, to |
apartType | mənzil növləri |
class | economy, comfort, comfortPlus, business, premium, elite |
stage | planning, excavation, construction, finishing, commissioned, delivered |
completionQuarter | tamamlanma rübü |
queues | növbələr: name, stage, completionQuarter |
sectionsNumber, floors, apartmentsNumber, parkingSpaces | saylar |
installment, installmentTerms | hissə-hissə ödəniş: downPaymentPct, termMonths, interestRate |
infrastructure | infrastruktur - kodlar massivi |
territoryDescription, parkingDescription, infrastructureDescription | təsvirlər |
apartmentPlans | mənzil planları: apartType, area, price, description, photos |
progress | tikintinin gedişi: title, date, description, photos |
Hər növün bütün dəyərləri ilə tam sxemi /openapi.json faylında ObjectWriteProperty, ObjectWriteRental, ObjectWriteComplex komponentlərindədir. Onlar serverin apardığı eyni yoxlamalardan yaradılır.
Agentlik açarı
| Sorğu | Nə edir |
|---|---|
PATCH /objects/{kind}/{id}/agency | obyekti agentliyə və ya geri şəxsi obyektlərə köçürmək: gövdə {"targetAgencyId": "<id>"} və ya {"targetAgencyId": null}; sahə olmadan - açarın agentliyinə |
PATCH /objects/{kind}/{id}/assignee | agent təyin etmək: {"assignTo": "<user id>"} |
Şəxsi açarla hər ikisi 403 ilə cavab verir. Obyekt bir agentlikdən birbaşa digərinə köçə bilməz (409 conflict) - əvvəlcə onu şəxsi obyektlərə köçürün. Şəxsi obyektə və ya agentliyin aktiv üzvü olmayan şəxsə agent təyin etmək də 409 conflict verir. İcazələr: agentliyə - obyektin müəllifi; geri şəxsi obyektlərə - menecer, agentliyin sahibi və ya müəllif; istənilən şəxsi təyin etmək - menecer və yuxarı, agent isə yalnız özünü.
Hadisələr
object.created, object.updated, object.published, object.deleted - bax: Vebhuklar.
Əlaqəli
- Lüğətlər - kateqoriya və atribut kodları.
- Fayllar - fotoların yüklənməsi.
- Obyekt materialları - obyekt üçün landing səhifə və PDF.