Listing
Advert for a property that is for sale or for rent, the listing actually refers to the listing agreement that is made between a principal and an agent, regarding marketing of a property.
To use EverReal playground is required to provide the Bearer token, read more in Master Data page
Important information
Amenities
Parking can have 2 values:
null
if the listing does not have amenity "Has Parking" checked{type, quality}
if the listing has amenity "Has Parking" checked
Pictures and documents
There are 4 important document properties: {coverPicture,pictures,documents,floorPlans}
The base path of pictures is formed of the baseUrl + "/" picture.resourcePath
.The base url is https://resources.everreal.co
Query
To understand what is necessary and how to use GraphQl, in Master Data page we explain what is necessary to do
Ideal CSV Structuretype Query {
listings(input: ListingFilterListPaging): [Listing]
avgListingActivity(input: AvgActivityFilter): AvgListingActivity
listingCounts(input: ListingCountsFilter): ListingCounts
}
type AvgListingActivity {
activeListings: Int
}
type ListingCounts {
listingsMissingViewings: Int
listingsMissingContracts: Int
activeAndPublished: Int
olderThan30Days: Int
listingsInContracting: Int
listingsContractingCompleted: Int
listingsMoveinCompleted: Int
}
type Listing {
id: String
title: String
type: String
isArchived: Boolean
isActive: Boolean
companyId: String
listingResponsible: User
contractDetails: ListingContractDetails
coverPicture: IFile
pictures: [IFile]
documents: [IFile]
floorplans: [IFile]
company: Company
status: LISTING_STATUS
amenities: ListingAmenities
listingInformation: ListingInformation
availableFrom: Date
propertyId: String
property: Property
unitId: String
unit: Unit
descriptions: ListingDescription
createdAt: DateTime
updatedAt: DateTime
}
type ListingAmenities {
amenitiesIncluded: [AMENITIES_INCLUDED] # See this type under units page
parking: UnitParkingType # See this type under units page
qualityOfAmenities: String
condition: String
lastRenovationYear: Int
heatingType: String
mainEnergySource: String
energyPerformanceCertificateAvailability: ENERGY_PERFORMANCE_CERTIFICATE_AVAILABILITY
energyCertificateCreationDate: ENERGY_CERTIFICATE_CREATION_DATE
buildingEnergyRatingType: BUILDING_ENERGY_RATING_TYPE
thermalCharacteristic: Float
energyConsumptionContainsWarmWater: Boolean
energyEfficiencyClass: ENERGY_EFFICIENCY_CLASS
}
type ListingDescription {
object: String
amenities: String
location: String
other: String
}
type ListingContractDetails {
currency: String
rent: Float
totalMonthlyRent: Float
parkingRent: Float
deposit: Float
heatingCostsIncluded: Boolean
utilityCosts: Float
heatingCosts: Float
petsAllowed: String
displayAmount: Float
hasCommission: Boolean
commission: String
commissionNote: String
commissionType: String
}
enum UNIT_TYPE {
APARTMENT
HOUSE
PARKING
OFFICE
STORE
GASTRONOMY
INDUSTRY
SPECIAL_PURPOSE
LAN
}
enum LISTING_TYPE {
RENT_APARTMENT
SELL_APARTMENT
RENT_SHORT_TERM_APARTMENT
RENT_HOUSE
SELL_HOUSE
RENT_PARKING
SELL_PARKING
RENT_RESIDENTIAL_LAND
SELL_RESIDENTIAL_LAND
RENT_OFFICE
SELL_OFFICE
RENT_STORE
SELL_STORE
RENT_GASTRONOMY
SELL_GASTRONOMY
RENT_INDUSTRY
SELL_INDUSTRY
RENT_SPECIAL_PURPOSE
SELL_SPECIAL_PURPOSE
RENT_COMMERCIAL_LAND
SELL_COMMERCIAL_LAND
}
enum LISTING_STATUS {
OPEN_FOR_CANDIDATES
OPEN_FOR_APPLICANTS
CONTRACTING_STARTED
CONTRACTING_COMPLETED
MOVE_IN_COMPLETED
IS_INACTIVE
IS_ARCHIVED
}
enum CANDIDATE_SOURCE {
APPLIED_EVERREAL
MANUAL_EVERREAL_CANDIDATE
MANUAL_EVERREAL_SCHEDULED
MANUAL_EVERREAL_APPLICANT
IMMOSCOUT24
WG_GESUCHT
IMMOWELT
IMMONET
IVD24
NWZ
OPENIMMO_GENERIC
EBAY
OFFLINE_CONTRACT
}
input ListingFilter {
from: Date
to: Date
candidateSources: [CANDIDATE_SOURCE]
companyId: String
propertyGroupId: String
propertyId: String
ownerId: String
listingId: String
external: Boolean
fullSearch: String
isArchived: Boolean
isActive: Boolean
internalAdvertiseId: String
availableFrom: Date
externalPropertyId: String
scoringTemplateId: String
propertyCity: String
propertyName: String
propertyStreet: String
listingType: LISTING_TYPE
status: LISTING_STATUS
responsibleFullName: String
unitName: String
unitId: String
externalUnitId: String
unitType: UNIT_TYPE
priceMin: Float
priceMax: Float
roomsMin: Int
roomsMax: Int
surfaceMin: Int
surfaceMax: Int
livingSurfaceMin: Int
livingSurfaceMax: Int
heightMax: Int
heightMin: Int
listingResponsibleUserId: String
projectId: String
candidateEmail: String
candidateIsWinner: Boolean
}
input ListingFilterListPaging {
filter: ListingFilter
paging: GraphPaging
sort: GraphSorting
}
input ListingCountsFilter {
userId: String
companyId: String
}
Usage:
Query:
query listingsQuery(
$from: Date
$to: Date
$companyId: String
$propertyId: String
$propertyGroupId: String
$ownerId: String
$listingId: String
$isArchived: Boolean
$isActive: Boolean
$fullSearch: String
) {
listings(
input: {
paging: { take: 100, skip: 0 }
filter: {
from: $from
to: $to
companyId: $companyId
propertyGroupId: $propertyGroupId
propertyId: $propertyId
ownerId: $ownerId
listingId: $listingId
isArchived: $isArchived
isActive: $isActive
fullSearch: $fullSearch
}
}
) {
id
title
type
isArchived
isActive
companyId
amenities{
amenitiesIncluded
qualityOfAmenities
parking {type quantity}
energyPerformanceCertificateAvailability
energyCertificateCreationDate
buildingEnergyRatingType
thermalCharacteristic
energyConsumptionContainsWarmWater
energyEfficiencyClass
}
coverPicture {
name
resourceId
resourcePath
size
type
order
isCoverPicture
}
pictures {
name
resourceId
resourcePath
size
type
order
isCoverPicture
}
documents {
name
resourceId
resourcePath
size
type
order
isCoverPicture
}
floorplans {
name
resourceId
resourcePath
size
type
order
isCoverPicture
}
property {
objectId
name
category
subtype
type
ownershipType
fullAddress
}
unit {
id
objectId
name
category
type
subtype
leasingStatusEnum
leasingStatusesEnum
statusesEnum
floorNumber
surface
livingSurface
netFloorSurface
hasMainStorage
}
contractDetails {
currency
rent
totalMonthlyRent
parkingRent
deposit
heatingCostsIncluded
utilityCosts
heatingCosts
petsAllowed
displayAmount
hasCommission
commission
commissionNote
commissionType
}
}
}
Variables:
You can used any variable in ListingFilter
to
{
"listingId": "fce90f3a-b8e4-4bc6-b6c0-2539acef5cdc",
"propertyId": "e7cde0a1-9708-4fce-b36e-d8b8bcaa695f",
"isActive": true,
"isArchived": false,
"fullSearch": "Hermannstrasse"
}
Should l be something like this.

Mutation
type Mutation {
updateListing(listing: ListingInput): Listing
}
Here are details on the capabilities of different mutations
updateListing
: Is used to perform update on an listing with the help of a listing Id, this will help is performing some basic operations listed below
Schema Definition
input ListingInput {
id: String!
action: LISTING_ACTIONS!
}
enum LISTING_ACTIONS {
ACTIVATE_LISTING
DEACTIVATE_LISTING
ARCHIVE_LISTING
UNARCHIVE_LISTING
}
Below we are providing a full example how to update listing, all this information is not required, only the ones that was using ! notation previously.
mutation {
updateListing(
listing: {
id: "42b751a6-3eb6-4e48-a0d1-8e9959151672"
action: ACTIVATE_LISTING
}
) {
id
}
}
Last updated
Was this helpful?