Drei Objekttypen (kind): property - Verkauf, rental - Miete, complex - Wohnanlage. Lesen ist kostenlos und mit jedem Schlüssel möglich; Erstellen, Ändern und Löschen brauchen den Bereich objects:write und werden ebenfalls nicht berechnet.
Liste
curl "https://developers.grem.capital/api/v1/objects?kind=property&city=Berlin&limit=20" \
-H "Authorization: Bearer gsk_live_xxx"
GET /objects:
| Parameter | Beschreibung |
|---|---|
kind | Pflicht: property, rental oder complex; Groß-/Kleinschreibung egal |
city, country | Filter mit exakter Übereinstimmung |
priceMin, priceMax | Preis in US-Dollar (nach dem normierten Preis) |
areaMin, areaMax | Fläche, m² |
rooms | Zimmer (Verkauf und Miete); auch Bruchzahlen |
type, residentialType | Kategorie - Codes aus den Wörterbüchern (Verkauf und Miete) |
page | Seite, ab 1; ein kleinerer Wert gilt als 1 |
limit | pro Seite, Standard 20, 1-50; ein Wert außerhalb wird in den Bereich gesetzt |
sort | newest (Standard) oder oldest |
scope | nur Agenturschlüssel: standardmäßig die Objekte der Agentur; catalog - der öffentliche Katalog |
Antwort: data - die Objekte, paginate - currentPage, totalPages, totalCount.
limit und page außerhalb des Bereichs werden in ihn gesetzt, nicht abgelehnt. Andere ungültige Werte eines bekannten Parameters (unbekannter Aufzählungswert, nicht ganzzahliges page, Text statt Zahl) werden mit 400 validation und dem Feldnamen abgelehnt.
Ein Objekt
GET /objects/{kind}/{id} - ein Objekt in derselben Form. Unbekannte ID - 404. Ein Agenturschlüssel kann scope=catalog anhängen, um die öffentliche Ansicht zu erhalten.
Form eines Objekts
| Feld | Beschreibung |
|---|---|
id, kind, name, slug | Identität |
status | bei einem fremden Objekt - active oder sold |
type | Kategorie - Code |
price, currency | Preis; die Wohnanlage hat price: { from, to, currency } |
constructionYear | Baujahr, eine ganze Zahl oder null |
address | vollständige Adresse, mit Straße und Koordinaten |
nativeAreaUnit | die Einheit, in der das Objekt erfasst wurde (zur Anzeige); Flächen kommen als { "value": 50, "unit": "m2" } |
photos | Fotos: id, isMain, mimetype, variants, ready |
processingStatus | ready, processing oder failed - ob die Fotos fertig sind |
promoted | das Objekt wird beworben |
author | Agent oder Agentur des Objekts |
Kategorien und andere Merkmale sind Codes; übersetzte Bezeichnungen stehen in den Wörterbüchern. Die Wohnanlage hat zusätzlich apartmentPlans (Grundrisse) und progress (Baufortschritt).
ready: false bei einem Foto bedeutet, dass die Varianten mit Wasserzeichen noch erzeugt werden. Zeigen Sie einen Platzhalter und lesen Sie das Objekt später erneut - speichern Sie kein unfertiges Bild im Cache.
Was Sie sehen: jedes Objekt - die öffentliche Karte, wie auf der Website; Ihre Objekte - die vollständige Eigentümeransicht. Niemand erhält die Kontakte des Eigentümers, Verkäuferdaten aus Importen, Moderationsnotizen oder Originale ohne Wasserzeichen.
Erstellen, ändern, löschen
| Aktion | Anfrage | Antwort |
|---|---|---|
| Erstellen | POST /objects/{kind} | 201 mit dem Objekt |
| Ändern | PUT /objects/{kind}/{id} | das Objekt; nur der Eigentümer, sonst 404 |
| Löschen | DELETE /objects/{kind}/{id} | ein Entwurf wird endgültig gelöscht, ein veröffentlichtes Objekt archiviert; ein Objekt mit laufendem Provisionsvertrag - 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-Zimmer-Wohnung, 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(Standard) - ein Entwurf, nicht im Katalog;publish: true- veröffentlicht. Zum Veröffentlichen brauchtpropertyundrentalmindestens 1 Foto,complex2.- Nicht jede Kontorolle darf jeden Typ anlegen - wie im Kabinett.
- Unbekannte Felder werden ignoriert. Kategoriecodes entnehmen Sie den Wörterbüchern. Die Codes von
condition,conditionTypeundamenities(in camelCase, etwaneedsRenovation,fridge) stehen im Schreibschema selbst (die Tabellen unten und/openapi.json) -GET /dictionariesübersetzt sie nicht. - Flächen: eine Zahl in m² oder
{ "value": 700, "unit": "ft2" }. PUTohnephotosbehält die vorhandenen Fotos.Idempotency-Keybeim Erstellen verhindert ein Duplikat bei Wiederholung.
Fotos
photos ist ein Array; jedes Element ist:
- eine öffentliche Adresse
https://...- GREM lädt das Bild selbst herunter; - die ID einer mit
POST /uploadshochgeladenen Datei (Dateien).
Eine Adresse, die sich nicht herunterladen lässt, wird übersprungen und in warnings der Antwort gemeldet. Mit strictPhotos: true schlägt eine solche Anfrage stattdessen mit 422 fehl.
Felder für Verkauf
Pflicht: name, type, address, price.
| Feld | Beschreibung |
|---|---|
type | Residential, Commercial, Industrial oder Land plot |
residentialType, commercialType, industrialType | Untertyp - ein Code oder ein Array von Codes |
marketSegment | primary (Neubau) oder secondary |
description | Beschreibung, bis 5000 Zeichen |
address | country, city (Pflicht), district, region, street, streetNumber, postalCode, location |
price, currency | Preis; Währung UAH, USD, EUR, AZN, GBP, AED, CNY, TRY, GEL |
constructionYear | Jahr, 1700 bis 2100 |
spaceAll, spaceLiving, spaceKitchen, effectiveArea, auxiliaryArea, landPlotArea | Flächen |
rooms, bedrooms, numberOfBathrooms, balconies, numberWindows, unitsCount | Anzahlen |
floor, buildingFloor, ceilingHeight | Etage, Geschosse, Deckenhöhe |
condition | needsRenovation, partialRenovation, renovated, designer, shellCore, newFromDeveloper |
buildingType | newBuilding, secondary, stalinka, khrushchevka, brezhnevka, czech, gostinka, prerevolutionary, townhouseRow, detached, other |
wallMaterialType, constructionTech, kitchenType | Wandmaterial, Bautechnik, Küchentyp |
amenities, buildingAmenities | Ausstattung der Einheit und des Gebäudes - Arrays von Codes |
utilitySystem, heating, windowView, balcony, parking | Versorgung, Heizung, Aussicht, Balkon, Parken |
safety | shelterNearby, powerBackup, autonomousHeating, waterReserve, starlink, gasAvailable, internetAvailable, elevatorWorks (ja/nein) |
accessibility | ramp, groundLevelEntrance, wideDoors, disabledParking, wheelchairElevator (ja/nein) |
programs | eOselya, eVidnovlennya, mortgageEligible, installment |
monthRentalRate, annualIncome, annualYield, paybackPeriod, propertyTax, insuranceCost, managementFee, repairsReserve | Investitionskennzahlen |
commission | Provision für Agenten: payer, type, value |
tour | 3D-Tour: kind, url |
complexId | die Wohnanlage, zu der die Einheit gehört |
photos, video | Medien |
publish, strictPhotos | siehe oben |
Felder für Miete
Pflicht: name, type (Residential, Commercial, Industrial), address, price. Die meisten Felder sind wie beim Verkauf; mietspezifisch:
| Feld | Beschreibung |
|---|---|
rentalType | long - langfristig, short - tageweise |
price, dayPrice, deposit | Miete, Tagespreis, Kaution |
totalArea, totalFloors, bathrooms | Fläche, Geschosse, Bäder |
minRentTime, minTermMonths | Mindestdauer |
availableFrom | verfügbar ab |
checkIn, checkOut | Check-in- und Check-out-Zeit: from, to — Stunde des Tages (15 = 15:00 Uhr) |
withChildren, withPets | Kinder erlaubt; Haustiere: yes, no, with someone |
furniture, furnitureList | Möbel |
conditionType | Zustand - dieselben Werte wie condition beim Verkauf |
onsiteAmenities, internalFeature | Ausstattung |
utilitiesIncluded, utilitiesCost | Nebenkosten |
checkInPay, onlinePay, bankTransfer, reportingDocuments | Zahlungswege und Belege |
Felder für Wohnanlagen
Pflicht: name, address.
| Feld | Beschreibung |
|---|---|
description, descriptionPresentation, descriptionSocial | Beschreibungen |
price | from, to, currency |
space | Flächen der Einheiten: from, to |
apartType | Typen der Einheiten |
class | economy, comfort, comfortPlus, business, premium, elite |
stage | planning, excavation, construction, finishing, commissioned, delivered |
completionQuarter | Fertigstellungsquartal |
queues | Bauabschnitte: name, stage, completionQuarter |
sectionsNumber, floors, apartmentsNumber, parkingSpaces | Anzahlen |
installment, installmentTerms | Ratenzahlung: downPaymentPct, termMonths, interestRate |
infrastructure | Infrastruktur - ein Array von Codes |
territoryDescription, parkingDescription, infrastructureDescription | Beschreibungen |
apartmentPlans | Grundrisse: apartType, area, price, description, photos |
progress | Baufortschritt: title, date, description, photos |
Das vollständige Schema jedes Typs mit allen Werten - Komponenten ObjectWriteProperty, ObjectWriteRental, ObjectWriteComplex in /openapi.json. Sie werden aus denselben Prüfungen erzeugt, die der Server ausführt.
Agenturschlüssel
| Anfrage | Was sie tut |
|---|---|
PATCH /objects/{kind}/{id}/agency | ein Objekt in die Agentur verschieben oder zurück ins Persönliche: Body {"targetAgencyId": "<id>"} oder {"targetAgencyId": null}; ohne das Feld - in die Agentur des Schlüssels |
PATCH /objects/{kind}/{id}/assignee | einen Agenten zuweisen: {"assignTo": "<user id>"} |
Mit einem persönlichen Schlüssel antworten beide mit 403. Ein Objekt kann nicht direkt von einer Agentur in eine andere wechseln (409 conflict) - zuerst ins Persönliche verschieben. Einen Agenten einem persönlichen Objekt zuzuweisen oder jemanden, der kein aktives Mitglied der Agentur ist, ergibt ebenfalls 409 conflict. Rechte: in die Agentur - der Autor des Objekts; zurück ins Persönliche - ein Manager, der Agenturinhaber oder der Autor; beliebige Zuweisung - ab Manager, ein Agent - nur sich selbst.
Ereignisse
object.created, object.updated, object.published, object.deleted - siehe Webhooks.
Verwandte Artikel
- Wörterbücher - Codes für Kategorien und Merkmale.
- Dateien - Fotos hochladen.
- Inseratsmaterialien - Landingpage und PDF für ein Objekt.