DocsAllemagneAfficher la version internationale de la base de connaissances

Biens

Dernière mise à jour: 2026-10-039 min de lecture

Trois types de biens (kind) : property - à vendre, rental - à louer, complex - résidence (programme immobilier). La lecture est gratuite et ouverte à toute clé ; la création, la modification et la suppression demandent le scope objects:write et ne sont pas facturées non plus.

Liste

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

GET /objects :

ParamètreDescription
kindobligatoire : property, rental ou complex ; la casse n'a pas d'importance
city, countryfiltres à correspondance exacte
priceMin, priceMaxprix, en dollars américains (selon le prix normalisé)
areaMin, areaMaxsurface, m²
roomspièces (property et rental) ; peut être fractionnaire
type, residentialTypecatégorie - codes issus des dictionnaires (property et rental)
pagepage, à partir de 1 ; une valeur inférieure est traitée comme 1
limitéléments par page, 20 par défaut, 1-50 ; une valeur hors plage est ramenée dans la plage
sortnewest (par défaut) ou oldest
scopeclés d'agence uniquement : par défaut, les biens de l'agence ; catalog - le catalogue public

Réponse : data - les biens, paginate - currentPage, totalPages, totalCount.

limit et page hors plage sont ramenés dans la plage, pas refusés. Les autres valeurs invalides d'un paramètre connu (une valeur d'enum inconnue, un page non entier, du texte au lieu d'un nombre) sont refusées avec 400 validation qui nomme le champ.

Un bien

GET /objects/{kind}/{id} - un bien, dans le même format. Identifiant inconnu - 404. Une clé d'agence peut ajouter scope=catalog pour obtenir la vue publique.

Format d'un bien

ChampDescription
id, kind, name, slugidentité
statuspour le bien d'un tiers - active ou sold
typecatégorie - code
price, currencyprix ; une résidence a price: { from, to, currency }
constructionYearannée de construction, un entier ou null
addressadresse complète, avec la rue et les coordonnées
nativeAreaUnitl'unité dans laquelle le bien a été saisi (pour l'affichage) ; les surfaces sont renvoyées sous la forme { "value": 50, "unit": "m2" }
photosphotos : id, isMain, mimetype, variants, ready
processingStatusready, processing ou failed - indique si les photos sont prêtes
promotedle bien est mis en avant
authorl'agent ou l'agence du bien

Les catégories et les autres attributs sont des codes ; leurs libellés traduits se trouvent dans les dictionnaires. Une résidence a aussi apartmentPlans (plans des logements) et progress (avancement des travaux).

ready: false sur une photo signifie que les variantes avec filigrane sont encore en cours de génération. Affichez un espace réservé et relisez le bien plus tard - ne mettez pas en cache une image inachevée.

Ce que vous voyez : pour n'importe quel bien, la fiche publique, comme sur le site ; pour vos biens, la vue complète du propriétaire. Personne ne reçoit les coordonnées du propriétaire, les données du vendeur issues des imports, les notes de modération ni les originaux sans filigrane.

Créer, modifier, supprimer

ActionRequêteRéponse
CréerPOST /objects/{kind}201 avec le bien
ModifierPUT /objects/{kind}/{id}le bien ; propriétaire uniquement, sinon 404
SupprimerDELETE /objects/{kind}/{id}un brouillon est supprimé définitivement, un bien publié est archivé ; un bien avec un contrat de commission actif - 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 (par défaut) - un brouillon, absent du catalogue ; publish: true - publié. La publication demande au moins 1 photo pour property et rental, 2 pour complex.
  • Tous les rôles de compte ne peuvent pas créer tous les types de biens - comme dans l'espace personnel.
  • Les champs inconnus sont ignorés. Prenez les codes de catégorie dans les dictionnaires. Les codes de condition, conditionType et amenities (en camelCase, comme needsRenovation, fridge) sont listés dans le schéma d'écriture lui-même (les tableaux ci-dessous et /openapi.json) - GET /dictionaries ne les décode pas.
  • Surfaces : un nombre en m² ou { "value": 700, "unit": "ft2" }.
  • Un PUT sans photos conserve les photos existantes.
  • Idempotency-Key à la création évite un doublon en cas de nouvelle tentative.

Photos

photos est un tableau ; chaque élément est :

  • une adresse publique https://... - GREM télécharge l'image lui-même ;
  • l'identifiant d'un fichier envoyé avec POST /uploads (Fichiers).

Une adresse impossible à télécharger est ignorée et signalée dans les warnings de la réponse. Avec strictPhotos: true, une telle requête échoue avec 422 à la place.

Champs d'un bien à vendre

Obligatoires : name, type, address, price.

ChampDescription
typeResidential, Commercial, Industrial ou Land plot
residentialType, commercialType, industrialTypesous-type - un code ou un tableau de codes
marketSegmentprimary (neuf) ou secondary
descriptiondescription, jusqu'à 5000 caractères
addresscountry, city (obligatoire), district, region, street, streetNumber, postalCode, location
price, currencyprix ; devise UAH, USD, EUR, AZN, GBP, AED, CNY, TRY, GEL
constructionYearannée, 1700-2100
spaceAll, spaceLiving, spaceKitchen, effectiveArea, auxiliaryArea, landPlotAreasurfaces
rooms, bedrooms, numberOfBathrooms, balconies, numberWindows, unitsCountnombres
floor, buildingFloor, ceilingHeightétage, nombre d'étages, hauteur sous plafond
conditionneedsRenovation, partialRenovation, renovated, designer, shellCore, newFromDeveloper
buildingTypenewBuilding, secondary, stalinka, khrushchevka, brezhnevka, czech, gostinka, prerevolutionary, townhouseRow, detached, other
wallMaterialType, constructionTech, kitchenTypematériau des murs, technique de construction, type de cuisine
amenities, buildingAmenitieséquipements du logement et de l'immeuble - tableaux de codes
utilitySystem, heating, windowView, balcony, parkingréseaux, chauffage, vue, balcon, stationnement
safetyshelterNearby, powerBackup, autonomousHeating, waterReserve, starlink, gasAvailable, internetAvailable, elevatorWorks (oui/non)
accessibilityramp, groundLevelEntrance, wideDoors, disabledParking, wheelchairElevator (oui/non)
programseOselya, eVidnovlennya, mortgageEligible, installment
monthRentalRate, annualIncome, annualYield, paybackPeriod, propertyTax, insuranceCost, managementFee, repairsReserveindicateurs d'investissement
commissioncommission pour les agents : payer, type, value
tourvisite 3D : kind, url
complexIdla résidence à laquelle appartient le logement
photos, videomédias
publish, strictPhotosvoir ci-dessus

Champs d'un bien à louer

Obligatoires : name, type (Residential, Commercial, Industrial), address, price. La plupart des champs sont les mêmes que pour un bien à vendre ; les champs propres à la location :

ChampDescription
rentalTypelong - longue durée, short - à la journée
price, dayPrice, depositloyer, tarif journalier, dépôt de garantie
totalArea, totalFloors, bathroomssurface, nombre d'étages, salles de bain
minRentTime, minTermMonthsdurée minimale
availableFromdisponible à partir du
checkIn, checkOutheures d'arrivée et de départ : from, to — heures de la journée (15 = 15:00)
withChildren, withPetsenfants acceptés ; animaux : yes, no, with someone
furniture, furnitureListmobilier
conditionTypeétat - les mêmes valeurs que condition pour un bien à vendre
onsiteAmenities, internalFeatureéquipements
utilitiesIncluded, utilitiesCostcharges
checkInPay, onlinePay, bankTransfer, reportingDocumentsmodes de paiement et justificatifs

Champs d'une résidence

Obligatoires : name, address.

ChampDescription
description, descriptionPresentation, descriptionSocialdescriptions
pricefrom, to, currency
spacesurfaces des logements : from, to
apartTypetypes de logements
classeconomy, comfort, comfortPlus, business, premium, elite
stageplanning, excavation, construction, finishing, commissioned, delivered
completionQuartertrimestre de livraison
queuestranches : name, stage, completionQuarter
sectionsNumber, floors, apartmentsNumber, parkingSpacesnombres
installment, installmentTermspaiement échelonné : downPaymentPct, termMonths, interestRate
infrastructureinfrastructures - un tableau de codes
territoryDescription, parkingDescription, infrastructureDescriptiondescriptions
apartmentPlansplans des logements : apartType, area, price, description, photos
progressavancement des travaux : title, date, description, photos

Le schéma complet de chaque type avec toutes les valeurs : composants ObjectWriteProperty, ObjectWriteRental, ObjectWriteComplex dans /openapi.json. Ils sont générés à partir des mêmes contrôles que ceux exécutés par le serveur.

Clé d'agence

RequêteCe qu'elle fait
PATCH /objects/{kind}/{id}/agencytransférer un bien dans l'agence ou le ramener en personnel : corps {"targetAgencyId": "<id>"} ou {"targetAgencyId": null} ; sans le champ - dans l'agence de la clé
PATCH /objects/{kind}/{id}/assigneeattribuer un agent : {"assignTo": "<user id>"}

Avec une clé personnelle, les deux répondent 403. Un bien ne peut pas passer directement d'une agence à une autre (409 conflict) - ramenez-le d'abord en personnel. Attribuer un agent à un bien personnel, ou à quelqu'un qui n'est pas membre actif de l'agence, donne aussi 409 conflict. Droits : vers l'agence - l'auteur du bien ; retour en personnel - un manager, le propriétaire de l'agence ou l'auteur ; attribuer n'importe qui - manager et au-dessus, un agent - uniquement lui-même.

Événements

object.created, object.updated, object.published, object.deleted - voir Webhooks.

Voir aussi

Cet article vous a-t-il aidé ?