Docs

İlanlar

Son güncelleme: 2026-10-037 dk okuma

Üç 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:

ParametreAçıklama
kindzorunlu: property, rental veya complex; büyük/küçük harf fark etmez
city, countrytam eşleşme filtreleri
priceMin, priceMaxABD doları cinsinden fiyat (normalize edilmiş fiyata göre)
areaMin, areaMaxalan, m²
roomsoda (satılık ve kiralık); ondalıklı olabilir
type, residentialTypekategori: sözlüklerdeki kodlar (satılık ve kiralık)
pagesayfa, 1'den başlar; daha küçük bir değer 1 sayılır
limitsayfa başına, varsayılan 20, 1-50; aralık dışındaki değer aralığa çekilir
sortnewest (varsayılan) veya oldest
scopeyalnı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

AlanAçıklama
id, kind, name, slugkimlik
statusbaşkasının ilanında active veya sold
typekategori, kod
price, currencyfiyat; konut sitesinde price: { from, to, currency }
constructionYearyapım yılı, tam sayı veya null
addresssokak ve koordinatlarla tam adres
nativeAreaUnitilanın girildiği birim (gösterim için); alanlar { "value": 50, "unit": "m2" } olarak gelir
photosfotoğraflar: id, isMain, mimetype, variants, ready
processingStatusready, processing veya failed: fotoğrafların hazır olup olmadığı
promotedilan öne çıkarılıyor
authorilanı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İstekYanıt
OluşturmaPOST /objects/{kind}ilanla birlikte 201
DüzenlemePUT /objects/{kind}/{id}ilan; yalnızca sahibi, aksi hâlde 404
SilmeDELETE /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çin property ve rental en az 1, complex en 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, conditionType ve amenities kodları (camelCase, örneğin needsRenovation, fridge) yazma şemasının kendisinde listelenir (aşağıdaki tablolar ve /openapi.json); GET /dictionaries bunları çözmez.
  • Alanlar: m² cinsinden bir sayı veya { "value": 700, "unit": "ft2" }.
  • photos olmadan yapılan PUT mevcut 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 /uploads ile 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.

AlanAçıklama
typeResidential, Commercial, Industrial veya Land plot
residentialType, commercialType, industrialTypealt tür: bir kod veya kod dizisi
marketSegmentprimary (yeni yapı) veya secondary
descriptionaçıklama, 5000 karaktere kadar
addresscountry, city (zorunlu), district, region, street, streetNumber, postalCode, location
price, currencyfiyat; para birimi UAH, USD, EUR, AZN, GBP, AED, CNY, TRY, GEL
constructionYearyıl, 1700 ile 2100 arası
spaceAll, spaceLiving, spaceKitchen, effectiveArea, auxiliaryArea, landPlotAreaalanlar
rooms, bedrooms, numberOfBathrooms, balconies, numberWindows, unitsCountsayılar
floor, buildingFloor, ceilingHeightkat, toplam kat, tavan yüksekliği
conditionneedsRenovation, partialRenovation, renovated, designer, shellCore, newFromDeveloper
buildingTypenewBuilding, secondary, stalinka, khrushchevka, brezhnevka, czech, gostinka, prerevolutionary, townhouseRow, detached, other
wallMaterialType, constructionTech, kitchenTypeduvar malzemesi, yapım teknolojisi, mutfak türü
amenities, buildingAmenitiesdaire ve bina donanımı: kod dizileri
utilitySystem, heating, windowView, balcony, parkingaltyapı, ısıtma, manzara, balkon, otopark
safetyshelterNearby, powerBackup, autonomousHeating, waterReserve, starlink, gasAvailable, internetAvailable, elevatorWorks (evet/hayır)
accessibilityramp, groundLevelEntrance, wideDoors, disabledParking, wheelchairElevator (evet/hayır)
programseOselya, eVidnovlennya, mortgageEligible, installment
monthRentalRate, annualIncome, annualYield, paybackPeriod, propertyTax, insuranceCost, managementFee, repairsReserveyatırım rakamları
commissiontemsilciler için komisyon: payer, type, value
tour3D tur: kind, url
complexIdbirimin ait olduğu konut sitesi
photos, videomedya
publish, strictPhotosyukarı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:

AlanAçıklama
rentalTypelong, uzun dönem; short, günlük
price, dayPrice, depositkira, günlük fiyat, depozito
totalArea, totalFloors, bathroomsalan, kat sayısı, banyolar
minRentTime, minTermMonthsen kısa süre
availableFrommüsait olma tarihi
checkIn, checkOutgiriş ve çıkış saati: from, to — günün saati (15 = 15:00)
withChildren, withPetsçocuklara izin; evcil hayvanlar: yes, no, with someone
furniture, furnitureListmobilya
conditionTypedurum: satılıktaki condition ile aynı değerler
onsiteAmenities, internalFeaturedonanım
utilitiesIncluded, utilitiesCostfaturalar
checkInPay, onlinePay, bankTransfer, reportingDocumentsödeme yöntemleri ve belgeler

Konut sitesi alanları

Zorunlu: name, address.

AlanAçıklama
description, descriptionPresentation, descriptionSocialaçıklamalar
pricefrom, to, currency
spacebirim alanları: from, to
apartTypebirim türleri
classeconomy, comfort, comfortPlus, business, premium, elite
stageplanning, excavation, construction, finishing, commissioned, delivered
completionQuartertamamlanma çeyreği
queuesetaplar: name, stage, completionQuarter
sectionsNumber, floors, apartmentsNumber, parkingSpacessayılar
installment, installmentTermstaksit: downPaymentPct, termMonths, interestRate
infrastructurealtyapı: kod dizisi
territoryDescription, parkingDescription, infrastructureDescriptionaçıklamalar
apartmentPlansplanlar: apartType, area, price, description, photos
progressinş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ı

İstekNe yapar
PATCH /objects/{kind}/{id}/agencybir 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}/assigneebir 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

Bu makale yardımcı oldu mu?