graphQL basic queries (examples)

For inspiration purposes only, we have drafted three basic queries.

If your customer is inquiring about other properties than the ones included in the drafts, they may well exist. Create a topic in a suitable group in the Developer Forum to ask about specific supplementary properties.

Case list query

The case list is sorted ascending by “scopeUpdateAt”, which is also the property related to the since parameter.

If you want to restrict the response to return only a given number of case elements, you can do so by providing the take parameter. You then paginate through the case list by combining the take and the skip parameters.

:information: The request never returns more than 1,000 items. If the response contains exactly 1,000 items, you should continue requesting by changing the since parameter value or using the take/skip parameters until the response contains less than 1,000 items!

:warning: Don’t combine take/skip parameters with the since parameter :slight_smile:

Case list query - with comments

*= Er kun udfyldt, hvis der skal afviges fra oplysningerne (eller mangel på samme) i adresse elementet under primaryEstate

Query Forklaring
query {
distributionCases(since: “2024-12-02T23:51:16.908”) { Mulige parametre: since, take, skip
id sagens id til brug for videreopslag på enkeltsag
caseNumber sagsnr
importantDateTimeOnMarketOffsetAt Dato for gennemført signering af formidlingsaftale.
Findes der ingen signering, vises dato for skift af status til “Formidlingsaftale indgået”
importantDateFirstAdvertisementAt Første annonceringsdato (første gang sagen er gjort aktiv uden at være skuffesag). Hvis dato er tom kan ‘importantDateTimeOnMarketOffsetAt’ benyttes til sorteringsformål
importantDateAgreementSignedAt Dato for evt. skift af status til “Købsaftale underskrevet” eller “Udlejningsaftale underskrevet”
importantDateAgreementFinalizedAt Dato for evt. skift af status til “Handlen er endelig” eller “Udlejningen er endelig”
namespace sagstype udtrykt ved namespace
scopeUpdatedAt Sagsdata senest opdateret (kan anvendes som “since” parameter")
destinations {
namespace destination udtrykt ved namespace
suspended Hvis værdien er ‘true’ har bruger valgt, at sagen IKKE skal vises på den pågældende destination
}
state {
namespace sagens status udtrykt ved namespace
displayName
}
endResults{
endResultOutcomeNamespace Hvis en sag, der ikke længere er aktiv, har resulteret i et salg eller en udlejning, vil endResultOutcomeNamespace ende på “.final.yesdeal”
}
markeringerpaasag: taxons( Markeringer på sag. F.eks. “Skuffesag” og “Må annonceres som solgt”
taxonomyNamespace: “dk.realequity.taxonomy.markeringerpaasag”
) {
taxonDisplayName
taxonNamespace
}
resourceGroup { Sagsejerbutik
id Forretningsid
storeIdentifier Forretningsnummer
displayName Forretningsnavn
}
propositionSummary {
askingCashPrice Kontantpris
totalMonthlyGrossPayment Brutto pr. måned, ekskl. Ejerudgifter
totalMonthlyNetPayment Netto pr. måned, ekskl. Ejerudgifter
coopChargeMonthly Månedlig boligydelse, Andelsbolig
rentMonthly Månedlig leje
}
estateSummary {
housingArea Boligareal
numberOfRooms Antal værelser
plotArea Grundareal
floorArea Etageareal
energyLabel Energiklassifikation
}
primaryEstate {
namespace Ejendomstype udtrykt ved namespace. Ignoreres, hvis marketingEstateTypes har indhold
marketingEstateTypes Liste med markedsføringsejendomstyper udtrykt ved namespace. Som primær ejendomstype anvendes den, som matcher ejendommens namespace
markeringerpaaejendom: taxons( Markeringer på ejendom, f.eks. Kategori, investering, flexbolig
taxonomyNamespace: “dk.realequity.taxonomy.markeringerpaaejendom”
) {
taxonDisplayName
taxonNamespace
}
address { Adresseelement
displayName Sammenskrevet adresse
streetName Vejnavn
houseNumber Husnummer (inkl. evt. bogstav)
floor Etage
door Side/dør
supplementaryCityName Stednavn
zipCode Postnr
cityName Postdistrikt
countryCode ISO 3166 alpha 2 country code
municipalityCode Kommunenr
municipalityName Kommunenavn
regionCode Regionsnr
regionName Regionsnavn
}
}
advertisementAddress *Markedsføringsadresse uden postnummer og -by
marketing {
websiteLabel {
label Label til hjemmeside
activeFrom Label gyldig fra
activeTo Label gyldig til
}
}
images(first: 1) { Første billede på sagen
namespaceDisplayName
displayName
description
xsUrl
}
openHouseAppointments { Åbenthus aftaler
id
namespace
displayName
start
end
bookingRequired
}
}
}
Case list query - without comments
query {
  distributionCases(since: "2024-12-02T23:51:16.908") {
    id
    caseNumber
    importantDateTimeOnMarketOffsetAt
    importantDateFirstAdvertisementAt
    importantDateAgreementSignedAt
    importantDateAgreementFinalizedAt
    namespace
    scopeUpdatedAt
    destinations {
      namespace
      suspended
    }
    state {
      namespace
      displayName
    }
    endResults{
      endResultOutcomeNamespace
    }
    markeringerpaasag: taxons(
      taxonomyNamespace: "dk.realequity.taxonomy.markeringerpaasag"
    ) {
      taxonDisplayName
      taxonNamespace
    }
    resourceGroup {
      id
      storeIdentifier
      displayName
    }
    propositionSummary {
      askingCashPrice
      totalMonthlyGrossPayment
      totalMonthlyNetPayment
      coopChargeMonthly
      rentMonthly
    }
    estateSummary {
      housingArea
      numberOfRooms
      plotArea
      floorArea
      energyLabel
    }
    primaryEstate {
      namespace
      marketingEstateTypes
      markeringerpaaejendom: taxons(
        taxonomyNamespace: "dk.realequity.taxonomy.markeringerpaaejendom"
      ) {
        taxonDisplayName
        taxonNamespace
      }
      address {
        displayName
        streetName
        houseNumber
        floor
        door
        supplementaryCityName
        zipCode
        cityName
        countryCode
        municipalityCode
        municipalityName
        regionCode
        regionName
      }
    }
    advertisementAddress
    marketing {
      websiteLabel {
        label
        activeFrom
        activeTo
      }
    }
    images(first: 1) {
      namespaceDisplayName
      displayName
      description
      xsUrl
    }
    openHouseAppointments {
      id
      namespace
      displayName
      start
      end
      bookingRequired
    }
  }
}

Case presentation query

Case presentation query - with comments

*= Er kun udfyldt, hvis der skal afviges fra oplysningerne (eller mangel på samme) i adresse elementet under primaryEstate

Query Forklaring
query ($caseId: String!){
distributionCase(caseId: $caseId) {
id SagID
caseNumber Sagsnr
displayName Sagens navn i mæglers sytem
createdAt Sagens oprettelsesdato
namespace Sagstype
scopeUpdatedAt Seneste opdateringsdato
importantDateTimeOnMarketOffsetAt Dato for gennemført signering af formidlingsaftale.
Findes der ingen signering, vises dato for skift af status til “Formidlingsaftale indgået”
importantDateFirstAdvertisementAt Første annonceringsdato (første gang sagen er gjort aktiv uden at være skuffesag). Hvis dato er tom kan ‘importantDateTimeOnMarketOffsetAt’ benyttes til sorteringsformål
importantDateAgreementSignedAt Dato for evt. skift af status til “Købsaftale underskrevet” eller “Udlejningsaftale underskrevet”
importantDateAgreementFinalizedAt Dato for evt. skift af status til “Handlen er endelig” eller “Udlejningen er endelig”
destinations {
namespace destination udtrykt ved namespace
suspended Hvis værdien er ‘true’ har bruger valgt, at sagen IKKE skal vises på den pågældende destination
}
state {
namespace Sagens status
displayName
}
endResults{
endResultOutcomeNamespace Hvis en sag, der ikke længere er aktiv, har resulteret i et salg eller en udlejning, vil endResultOutcomeNamespace ende på “.final.yesdeal”
}
taxons { Markeringer og egenskaber på sagen
taxonomyDisplayName
taxonomyNamespace
taxonDisplayName
taxonNamespace
}
resourceGroup { Sagsejerforretning
id resourceGroupId
storeIdentifier ButikID / Forretningsnummer
displayName
}
estateSummary {
numberOfRooms Antal værelser
whereOfNumberOfLivingRooms Heraf stuer
noOfStories Antal plan
yearBuilt Byggeår
yearRenovationAddition Om-/tilbygningsår
energyLabel Energiklassifikation
housingArea Boligareal
convertedAttic Udnyttet tagetage
basementArea Kælderareal
carportArea Carport (arealsum af indbygget og selvstændig carport)
garageArea Garage (arealsum af indbygget og selvstændig garage)
shedArea Udhus
commercialArea Erhvervsareal
floorArea Etageareal (erhverv)
outdoorArea Udenomsareal/grundareal (erhvervslejemål)
plotArea Grundareal
builtArea Bebygget areal
heatingCosts Månedlig varmeudgift (andelsbolig)
consumptionCostsMonthly Depricated in this context. This information should be requested as a propositionSummary property
Forbrugsudgifter pr. måned (boligudlejning)
operatingCostsAnnually Årlige driftsudgifter (erhverv + landbrug der ikke er omfattet af LOFE)
consumptionCostsAnnually Forbrugsudgifter pr. år (erhvervsudlejning)
rentalIncomeAnnually Årlig lejeindtægt (erhverv)
vatRegistered Momsregistreret (erhverv)
connectionFeesPaid Udtrykker om tilslutningsafgifter er betalt (kun grunde)
Udfaldsrum: “YES”, “NO”, “PARTIAL”
}
propositionSummary {
askingCashPrice Udbudspris
downPayment Udbetaling
ownerExpensesTotalMonthly Ejerudgifter (boligsalg)
consumptionCostsMonthly Forbrugsudgifter pr. måned (boligudlejning)
rateOfReturn Afkast i % (erhverv)
deposit Depositum (udlejning)
totalMonthlyGrossPayment Brutto pr. måned, excl. Ejerudgifter
totalMonthlyNetPayment Netto pr. måned, excl. Ejerudgifter
coopChargeMonthly Månedlig boligydelse, Andelsbolig
rentAnnually Årlig leje (erhvervsudlejning)
rentM2Annually Årlig leje pr. m2 (erhvervsudlejning)
rentMonthly Månedlig leje (boligudlejning)
prepaidRent Forudbetalt leje (udlejning)
rentalAvailableFromDescription Ledigt fra tekstfelt (kun erhvervsudlejning)
rentAvailableFrom Lejemål ledigt fra (boligudlejning)
rentAvailableTo Lejemål ledigt til (boligudlejning)
maxRentalPeriod Maksimal udlejningsperiode, mdr. (boligudlejning)
}
primaryEstate {
namespace Ejendomstype udtrykt ved namespace. Ignoreres, hvis marketingEstateTypes har indhold
marketingEstateTypes Liste med markedsføringsejendomstyper udtrykt ved namespace. Som primær ejendomstype anvendes den, som matcher ejendommens namespace
address { Adresseoplysninger
displayName Sammenskrevet adresse
streetName Vejnavn
houseNumber Husnummer
floor Etage
door dør/side
supplementaryCityName stednavn
zipCode postnr
cityName postdistrikt
countryCode ISO 3166 alpha 2 country code
longitude længdegrad
latitude breddegrad
}
taxons { Markeringer, egenskaber og faciliteter på ejendommen
taxonomyDisplayName
taxonomyNamespace
taxonDisplayName
taxonNamespace
}
}
advertisementAddress *Markedsføringsadresse uden postnummer og -by
marketing {
homepage {
headline Annonceoverskrift
description Annoncetekst
}
websiteLabel {
label indhold
activeFrom gældende fra
activeTo gældende til
}
}
images { Billeder, plantegninger og kort
id Id på underliggende billedfil. Ændrer sig hvis billedet udskiftes
namespace dk.realequity.mediaitem.image.photo, dk.realequity.mediaitem.image.drawing, dk.realequity.mediaitem.image.map, dk.realequity.mediaitem.image.qrcode
namespaceDisplayName Foto, Plantegning, Kort, QR-kode
displayName Vil oftest være filnavn
description Valgfri beskrivelse fra mæglers side
contentType filtype
xlUrl Fem størrelsesmuligheder: xsUrl, smUrl, mdUrl, lgUrl, xlUrl
}
mediaLinks { Video url’er
displayName
namespace
url
}
publicDocuments { Se “Public documents
displayName
namespace
url
}
openHouseAppointments { Åbenthus aftale
id Aftalens id skal benyttes i request ved tilmelding til åbent hus
namespace
displayName
start
end
bookingRequired
}
Maegler: roles(type:PRIMARY_AGENT) { Returnerer kontaktmægler, hvis en sådan er registreret, og ellers kommissionerende mægler
Personoplysninger: ownerContact {
employee {
jobTitle
}
Navn: displayName
email {
address
}
phone {
number Telefonnummer
internationalNumber Telefonnummer med landekode-prefix
}
image(namespace: “dk.realequity.mediaitem.image.employee.hompage”) {
namespace
xlUrl
}
}
}
}
}
Case presentation query - without comments
query ($caseId: String!){
  distributionCase(caseId: $caseId) {
    id
    caseNumber
    displayName
    createdAt
    namespace
    scopeUpdatedAt
    importantDateTimeOnMarketOffsetAt
    importantDateFirstAdvertisementAt
    importantDateAgreementSignedAt
    importantDateAgreementFinalizedAt
    destinations {
      namespace
      suspended
     }
   state {
      namespace
      displayName
     }
    endResults{
      endResultOutcomeNamespace
     }
    taxons {
      taxonomyDisplayName
      taxonomyNamespace
      taxonDisplayName
      taxonNamespace
     }
    resourceGroup {
      id
      storeIdentifier
      displayName
     }
    estateSummary {
      numberOfRooms
      whereOfNumberOfLivingRooms
      noOfStories
      yearBuilt
      yearRenovationAddition
      energyLabel
      housingArea
      convertedAttic
      basementArea
      carportArea
      garageArea
      shedArea
      commercialArea
      floorArea
      outdoorArea
      plotArea
      builtArea
      heatingCosts
      operatingCostsAnnually
      consumptionCostsAnnually
      rentalIncomeAnnually
      vatRegistered
	  connectionFeesPaid
     }
    propositionSummary {
      askingCashPrice
      downPayment
      ownerExpensesTotalMonthly
      consumptionCostsMonthly
      rateOfReturn
      deposit
      totalMonthlyGrossPayment
      totalMonthlyNetPayment
      coopChargeMonthly
      rentAnnually
      rentM2Annually
      rentMonthly
      prepaidRent
	  rentalAvailableFromDescription
      rentAvailableFrom
      rentAvailableTo
      maxRentalPeriod
     }
    primaryEstate {
      namespace
      marketingEstateTypes
      address {
        displayName
        streetName
        houseNumber
        floor
        door
        supplementaryCityName
        zipCode
        cityName
        countryCode
        longitude
        latitude
       }
      taxons {
        taxonomyDisplayName
        taxonomyNamespace
        taxonDisplayName
        taxonNamespace
       }
     }
    advertisementAddress
    marketing {
      homepage {
        headline
        description
       }
      websiteLabel {
        label
        activeFrom
        activeTo
       }
     }
    images {
      id
      namespace
      namespaceDisplayName
      displayName
      description
      contentType
      xlUrl
     }
    mediaLinks {
      displayName
      namespace
      url
     }
    publicDocuments {
      displayName
      namespace
      url
     }
    openHouseAppointments {
      id
      namespace
      displayName
      start
      end
      bookingRequired
     }
    Maegler: roles(type:PRIMARY_AGENT) {
      Personoplysninger: ownerContact {
        employee {
          jobTitle
         }
        Navn: displayName
        email {
          address
         }
        phone {
          number
          internationalNumber
         }
        image(namespace: "dk.realequity.mediaitem.image.employee.hompage") {
          namespace
          xlUrl
         }
       }
     }
   }
}

Store information query (single store)

Store information (single store) - with comments
Query Forklaring
query ($resourceGroupId: String!) {
distributionResourceGroup(resourceGroupId: $resourceGroupId) {
storeIdentifier Forretningsnr
resourceGroupId Forretningsid
displayName Forretningsnavn
openingHours { Åbningstider
monday
tuesday
wednesday
thursday
friday
saturday
sunday
}
marketing {
homepage { Forretningsbeskrivelse til hjemmeside
headline
description
}
}
image(namespace: “dk.realequity.mediaitem.image.resourcegroup.homepage”) { Forretningsbillede til hjemmeside
namespaceDisplayName
xlUrl
}
address { Forretningsadresse
displayName
streetName
houseNumber
door
supplementaryCityName
zipCode
cityName
latitude
longitude
}
phone {
number Telefonnr med landekode præfix
internationalNumber Telefonnr med landekode præfix
}
email {
address emailadresse
}
cvr cvr-nr.
websiteEmployees { Liste med medarbejdere udpeget til visning på hjemmeside
position Medarbejderens placering i sorteringsrækkefølgen
employee {
jobTitle
contact {
displayName
image(namespace: “dk.realequity.mediaitem.image.employee.hompage”) { Medarbejderbillede til hjemmeside
mdUrl
}
email {
address medarbejders emailadresse
}
phone {
number medarbejders telefonnr
internationalNumber medarbejders telefonnr med landekode præfix
}
}
}
}
}
}
Store information (single store) - without comments
query ($resourceGroupId: String!) {
  distributionResourceGroup(resourceGroupId: $resourceGroupId) {
    storeIdentifier
    resourceGroupId
    displayName
    openingHours {
      monday
      tuesday
      wednesday
      thursday
      friday
      saturday
      sunday
    }
    marketing {
      homepage {
        headline
        description
      }
    }
    image(namespace: "dk.realequity.mediaitem.image.resourcegroup.homepage") {
      namespaceDisplayName
      xlUrl
    }
    address {
      displayName
      streetName
      houseNumber
      door
      supplementaryCityName
      zipCode
      cityName
      latitude
      longitude
    }
    phone {
      number
      internationalNumber
    }
    email {
      address
    }
    cvr
    websiteEmployees {
      position
      employee {
        jobTitle
        contact {
          displayName
          image(namespace: "dk.realequity.mediaitem.image.employee.hompage") {
            mdUrl
          }
          email {
            address
          }
          phone {
            number
            internationalNumber
          }
        }
      }
    }
  }
}

Stores list query (chains only)

Stores list - with comments
Query Forklaring
query ($chainId: String!) {
distributionResourceGroups(chainId: $chainId) {
storeIdentifier Forretningsnr
resourceGroupId Forretningsid
displayName Forretningsnavn
openingHours { Åbningstider
monday
tuesday
wednesday
thursday
friday
saturday
sunday
}
marketing {
homepage { Forretningsbeskrivelse til hjemmeside
headline
description
}
}
image(namespace: “dk.realequity.mediaitem.image.resourcegroup.homepage”) { Forretningsbillede til hjemmeside
namespaceDisplayName
xlUrl
}
address { Forretningsadresse
displayName
streetName
houseNumber
door
supplementaryCityName
zipCode
cityName
latitude
longitude
}
phone {
number Telefonnr med landekode præfix
internationalNumber Telefonnr med landekode præfix
}
email {
address emailadresse
}
cvr cvr-nr.
websiteEmployees { Liste med medarbejdere udpeget til visning på hjemmeside
position Medarbejderens placering i sorteringsrækkefølgen
employee {
jobTitle
contact {
displayName
image(namespace: “dk.realequity.mediaitem.image.employee.hompage”) { Medarbejderbillede til hjemmeside
mdUrl
}
email {
address medarbejders emailadresse
}
phone {
number medarbejders telefonnr
internationalNumber medarbejders telefonnr med landekode præfix
}
}
}
}
}
}
Stores list - without comments
query ($chainId: String!) {
  distributionResourceGroups(chainId: $chainId) {
    storeIdentifier
    resourceGroupId
    displayName
    openingHours {
      monday
      tuesday
      wednesday
      thursday
      friday
      saturday
      sunday
    }
    marketing {
      homepage {
        headline
        description
      }
    }
    image(namespace: "dk.realequity.mediaitem.image.resourcegroup.homepage") {
      namespaceDisplayName
      xlUrl
    }
    address {
      displayName
      streetName
      houseNumber
      door
      supplementaryCityName
      zipCode
      cityName
      latitude
      longitude
    }
    phone {
      number
      internationalNumber
    }
    email {
      address
    }
    cvr
    websiteEmployees {
      position
      employee {
        jobTitle
        contact {
          displayName
          image(namespace: "dk.realequity.mediaitem.image.employee.hompage") {
            mdUrl
          }
          email {
            address
          }
          phone {
            number
            internationalNumber
          }
        }
      }
    }
  }
}

Change log

Details (last updated 2026-05-20)

2026-05-20

  • “connectionFeesPaid” added. Applies to building plots only (where estate taxon “dk.realequity.taxonomy.markeringerpaaejendom.grund” exists)

2026-05-12

  • “rentalAvailableFromDescription” added. Applies to commercial rental only and holds a simple textual description (not a date)

2026-04-21

  • “importantDateTimeOnMarketOffsetAt” now reflects the signature date from completed signing process on the listing agreement. (formidlingsaftale)
    If no signing process has been completed the value still echoes the date when state dk.realquity.state.accepted was applied.

2026-02-23

  • “consumptionCostsAnnually” added to support commercial rental

2025-04-23

  • “coopChargeMonthly” added to Case presentation query (was already in Case list query)

2025-04-04:

  • New role argument “type” is introduced when deciding which agent role to request.
    Using the type argument “PRIMARY_AGENT” automatically picks the agent having the contact role or - if no agent with that role is found - the agent having the commissioning role.

    It’s still possible to use the namespace argument (eg. “dk.realequity.role.agent.kontaktmaegler” or “dk.realequity.role.agent.commissioning”) if you want to show multiple agents on the case or if you want to decide for yourself which one to show.

2025-03-27:

  • “consumptionCostsMonthly” is moved from case.estateSummary to case.propositionSummary. However, the property will be available in both summaries until July 2025.

2025-02-27:

  • “destinations” list added in “Case list” and “Case presentation” to support new feature that allows the user to suspend advertising on a given destination.

2025-02-10:

  • “importantDateAgreementFinalizedAt” added in “Case list” and “Case presentation”

2025-02-06:

  • “importantDateFirstAdvertisementAt” added in “Case list” and “Case presentation”
  • “Store information query (single store)” added

2025-01-28:

  • “endResult” added in “Case list” and “Case presentation”

2025-01-14:

  • “advertismentAddress” added in “Case list” and “Case presentation”