Üç ilan türü (kind): property, satılık; rental, kiralık; complex, konut sitesi. Okuma ücretsizdir ve her anahtara açıktır; oluşturma, düzenleme ve silme objects:write kapsamını gerektirir ve onlar da ücretlendirilmez.
Liste
curl "https://developers.grem.capital/api/v1/objects?kind=property&city=Berlin&limit=20" \
-H "Authorization: Bearer gsk_live_xxx"
GET /objects:
| Parametre | Açıklama |
|---|---|
kind | zorunlu: property, rental veya complex; büyük/küçük harf fark etmez |
city, country | tam eşleşme filtreleri |
priceMin, priceMax | ABD doları cinsinden fiyat (normalize edilmiş fiyata göre) |
areaMin, areaMax | alan, m² |
rooms | oda (satılık ve kiralık); ondalıklı olabilir |
type, residentialType | kategori: sözlüklerdeki kodlar (satılık ve kiralık) |
page | sayfa, 1'den başlar; daha küçük bir değer 1 sayılır |
limit | sayfa başına, varsayılan 20, 1-50; aralık dışındaki değer aralığa çekilir |
sort | newest (varsayılan) veya oldest |
scope | yalnızca ajans anahtarları: varsayılan olarak ajansın ilanları; catalog, herkese açık katalog |
Yanıt: data, ilanlar; paginate, currentPage, totalPages, totalCount.
Aralık dışındaki limit ve page reddedilmez, aralığa çekilir. Bilinen bir parametrenin diğer geçersiz değerleri (bilinmeyen bir enum değeri, tam sayı olmayan page, sayı yerine metin) alan adını belirten 400 validation ile reddedilir.
Tek ilan
GET /objects/{kind}/{id}: aynı biçimde tek bir ilan. Bilinmeyen kimlik 404. Bir ajans anahtarı, herkese açık görünümü almak için scope=catalog ekleyebilir.
İlanın biçimi
| Alan | Açıklama |
|---|---|
id, kind, name, slug | kimlik |
status | başkasının ilanında active veya sold |
type | kategori, kod |
price, currency | fiyat; konut sitesinde price: { from, to, currency } |
constructionYear | yapım yılı, tam sayı veya null |
address | sokak ve koordinatlarla tam adres |
nativeAreaUnit | ilanın girildiği birim (gösterim için); alanlar { "value": 50, "unit": "m2" } olarak gelir |
photos | fotoğraflar: id, isMain, mimetype, variants, ready |
processingStatus | ready, processing veya failed: fotoğrafların hazır olup olmadığı |
promoted | ilan öne çıkarılıyor |
author | ilanın temsilcisi veya ajansı |
Kategoriler ve diğer özellikler koddur; çevrilmiş etiketler sözlüklerdedir. Konut sitesinde ayrıca apartmentPlans (planlar) ve progress (inşaat ilerlemesi) bulunur.
Bir fotoğrafta ready: false, filigranlı varyantların hâlâ oluşturulduğu anlamına gelir. Bir yer tutucu gösterin ve ilanı daha sonra yeniden okuyun; bitmemiş bir görseli önbelleğe almayın.
Neler görürsünüz: herhangi bir ilan için sitedeki gibi herkese açık kart; kendi ilanlarınız için tam sahip görünümü. Hiç kimse sahibin iletişim bilgilerini, içe aktarmalardan gelen satıcı verilerini, moderasyon notlarını veya filigransız orijinalleri almaz.
Oluşturma, düzenleme, silme
| İşlem | İstek | Yanıt |
|---|---|---|
| Oluşturma | POST /objects/{kind} | ilanla birlikte 201 |
| Düzenleme | PUT /objects/{kind}/{id} | ilan; yalnızca sahibi, aksi hâlde 404 |
| Silme | DELETE /objects/{kind}/{id} | taslak kalıcı olarak silinir, yayınlanmış ilan arşivlenir; geçerli komisyon sözleşmesi olan ilan: 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 odalı daire, 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(varsayılan), katalogda olmayan bir taslak;publish: true, yayınlanmış. Yayınlamak içinpropertyverentalen az 1,complexen az 2 fotoğraf gerektirir.- Her hesap rolü her türü oluşturamaz: paneldekiyle aynı.
- Bilinmeyen alanlar yok sayılır. Kategori kodlarını sözlüklerden alın.
condition,conditionTypeveamenitieskodları (camelCase, örneğinneedsRenovation,fridge) yazma şemasının kendisinde listelenir (aşağıdaki tablolar ve/openapi.json);GET /dictionariesbunları çözmez. - Alanlar: m² cinsinden bir sayı veya
{ "value": 700, "unit": "ft2" }. photosolmadan yapılanPUTmevcut fotoğrafları korur.- Oluştururken
Idempotency-Key, tekrar durumunda kopyayı önler.
Fotoğraflar
photos bir dizidir; her öğe şunlardan biridir:
- herkese açık bir
https://...adresi: GREM görseli kendisi indirir; POST /uploadsile yüklenmiş bir dosyanın kimliği (Dosyalar).
İndirilemeyen bir adres atlanır ve yanıttaki warnings içinde bildirilir. strictPhotos: true ile böyle bir istek bunun yerine 422 ile başarısız olur.
Satılık alanları
Zorunlu: name, type, address, price.
| Alan | Açıklama |
|---|---|
type | Residential, Commercial, Industrial veya Land plot |
residentialType, commercialType, industrialType | alt tür: bir kod veya kod dizisi |
marketSegment | primary (yeni yapı) veya secondary |
description | açıklama, 5000 karaktere kadar |
address | country, city (zorunlu), district, region, street, streetNumber, postalCode, location |
price, currency | fiyat; para birimi UAH, USD, EUR, AZN, GBP, AED, CNY, TRY, GEL |
constructionYear | yıl, 1700 ile 2100 arası |
spaceAll, spaceLiving, spaceKitchen, effectiveArea, auxiliaryArea, landPlotArea | alanlar |
rooms, bedrooms, numberOfBathrooms, balconies, numberWindows, unitsCount | sayılar |
floor, buildingFloor, ceilingHeight | kat, toplam kat, tavan yüksekliği |
condition | needsRenovation, partialRenovation, renovated, designer, shellCore, newFromDeveloper |
buildingType | newBuilding, secondary, stalinka, khrushchevka, brezhnevka, czech, gostinka, prerevolutionary, townhouseRow, detached, other |
wallMaterialType, constructionTech, kitchenType | duvar malzemesi, yapım teknolojisi, mutfak türü |
amenities, buildingAmenities | daire ve bina donanımı: kod dizileri |
utilitySystem, heating, windowView, balcony, parking | altyapı, ısıtma, manzara, balkon, otopark |
safety | shelterNearby, powerBackup, autonomousHeating, waterReserve, starlink, gasAvailable, internetAvailable, elevatorWorks (evet/hayır) |
accessibility | ramp, groundLevelEntrance, wideDoors, disabledParking, wheelchairElevator (evet/hayır) |
programs | eOselya, eVidnovlennya, mortgageEligible, installment |
monthRentalRate, annualIncome, annualYield, paybackPeriod, propertyTax, insuranceCost, managementFee, repairsReserve | yatırım rakamları |
commission | temsilciler için komisyon: payer, type, value |
tour | 3D tur: kind, url |
complexId | birimin ait olduğu konut sitesi |
photos, video | medya |
publish, strictPhotos | yukarıya bakın |
Kiralık alanları
Zorunlu: name, type (Residential, Commercial, Industrial), address, price. Alanların çoğu satılıkla aynıdır; kiralığa özgü olanlar:
| Alan | Açıklama |
|---|---|
rentalType | long, uzun dönem; short, günlük |
price, dayPrice, deposit | kira, günlük fiyat, depozito |
totalArea, totalFloors, bathrooms | alan, kat sayısı, banyolar |
minRentTime, minTermMonths | en kısa süre |
availableFrom | müsait olma tarihi |
checkIn, checkOut | giriş ve çıkış saati: from, to — günün saati (15 = 15:00) |
withChildren, withPets | çocuklara izin; evcil hayvanlar: yes, no, with someone |
furniture, furnitureList | mobilya |
conditionType | durum: satılıktaki condition ile aynı değerler |
onsiteAmenities, internalFeature | donanım |
utilitiesIncluded, utilitiesCost | faturalar |
checkInPay, onlinePay, bankTransfer, reportingDocuments | ödeme yöntemleri ve belgeler |
Konut sitesi alanları
Zorunlu: name, address.
| Alan | Açıklama |
|---|---|
description, descriptionPresentation, descriptionSocial | açıklamalar |
price | from, to, currency |
space | birim alanları: from, to |
apartType | birim türleri |
class | economy, comfort, comfortPlus, business, premium, elite |
stage | planning, excavation, construction, finishing, commissioned, delivered |
completionQuarter | tamamlanma çeyreği |
queues | etaplar: name, stage, completionQuarter |
sectionsNumber, floors, apartmentsNumber, parkingSpaces | sayılar |
installment, installmentTerms | taksit: downPaymentPct, termMonths, interestRate |
infrastructure | altyapı: kod dizisi |
territoryDescription, parkingDescription, infrastructureDescription | açıklamalar |
apartmentPlans | planlar: apartType, area, price, description, photos |
progress | inşaat ilerlemesi: title, date, description, photos |
Her türün tüm değerleriyle tam şeması: /openapi.json içindeki ObjectWriteProperty, ObjectWriteRental, ObjectWriteComplex bileşenleri. Bunlar sunucunun çalıştırdığı aynı denetimlerden üretilir.
Ajans anahtarı
| İstek | Ne yapar |
|---|---|
PATCH /objects/{kind}/{id}/agency | bir ilanı ajansa taşıma veya kişisele geri alma: gövde {"targetAgencyId": "<id>"} veya {"targetAgencyId": null}; alan olmadan, anahtarın ajansına |
PATCH /objects/{kind}/{id}/assignee | bir temsilci atama: {"assignTo": "<user id>"} |
Kişisel bir anahtarla ikisi de 403 döndürür. Bir ilan bir ajanstan doğrudan diğerine taşınamaz (409 conflict): önce kişisele taşıyın. Kişisel bir ilana veya ajansın aktif üyesi olmayan birine temsilci atamak da 409 conflict döndürür. Yetkiler: ajansa, ilanın yazarı; kişisele geri, bir yönetici, ajans sahibi veya yazar; herkesi atama, yöneticiden itibaren; temsilci yalnızca kendini atayabilir.
Olaylar
object.created, object.updated, object.published, object.deleted: bkz. Webhook'lar.
İlgili makaleler
- Sözlükler: kategori ve özellik kodları.
- Dosyalar: fotoğraf yükleme.
- İlan materyalleri: bir ilan için açılış sayfası ve PDF.