XooCode(){

Apartment

Apartment is an Accommodation subtype for self-contained housing units within a larger building: rental apartments, condos, flats, lofts. It re-declares numberOfRooms and occupancy from Accommodation but adds nothing new. The structural difference from a House is shared building infrastructure: an apartment occupies part of a building, a house is standalone.

The type hierarchy is Thing → Place → Accommodation → Apartment. Apartment listings on rental sites and vacation rental platforms read this for the property listing rich result. The most useful properties are floorSize, numberOfBedrooms, numberOfBathroomsTotal, floorLevel, amenityFeature, and petsAllowed. Vacation rentals additionally benefit from bed, occupancy, and leaseLength.

Full example of schema.org/Apartment json-ld markup

The markup is verified as valid with Rich Results Test from Google.

Highlight legend:Required by GoogleRecommendedOptional
schema.org/Apartment
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@id": "https://copenhagenrentals.dk/listings/oesterbrogade-87#apartment",
  "@type": "Apartment",
  "name": "Sunny 2-Bedroom Apartment in Østerbro",
  "description": "South-facing 2-bedroom apartment in Østerbro, walking distance to Faelledparken. Renovated kitchen, original parquet floors, balcony with park views.",
  "url": "https://copenhagenrentals.dk/listings/oesterbrogade-87",
  "image": [
    "https://copenhagenrentals.dk/listings/oesterbrogade-87/photo-1x1.jpg",
    "https://copenhagenrentals.dk/listings/oesterbrogade-87/photo-4x3.jpg",
    "https://copenhagenrentals.dk/listings/oesterbrogade-87/photo-16x9.jpg"
  ],
  "address": { "@type": "PostalAddress", "streetAddress": "Østerbrogade 87, 3.th", "addressLocality": "Copenhagen", "postalCode": "2100", "addressCountry": "DK" },
  "geo": { "@type": "GeoCoordinates", "latitude": 55.7050, "longitude": 12.5750 },
  "floorSize": { "@type": "QuantitativeValue", "value": "72", "unitCode": "MTK" },
  "numberOfRooms": 3,
  "numberOfBedrooms": 2,
  "numberOfBathroomsTotal": 1,
  "occupancy": { "@type": "QuantitativeValue", "value": 4 },
  "floorLevel": "3rd floor",
  "petsAllowed": false,
  "yearBuilt": 1903,
  "leaseLength": { "@type": "QuantitativeValue", "minValue": 12, "unitCode": "MON" },
  "amenityFeature": [
    { "@type": "LocationFeatureSpecification", "name": "Elevator", "value": true },
    { "@type": "LocationFeatureSpecification", "name": "Balcony", "value": true },
    { "@type": "LocationFeatureSpecification", "name": "Bicycle storage", "value": true },
    { "@type": "LocationFeatureSpecification", "name": "Dishwasher", "value": true },
    { "@type": "LocationFeatureSpecification", "name": "Washer/dryer in unit", "value": false }
  ]
}
</script>

Apartment vs Suite vs HotelRoom

Apartment is residential. Suite is luxury hotel accommodation with multiple rooms. HotelRoom is a single hotel room. The line blurs for serviced apartments. Rule of thumb: residential occupation (monthly+) is Apartment; hotel-style nightly accommodation is Suite or HotelRoom.

floorLevel

floorLevel is a text property. Use the local convention: "2nd floor" in the US, "1st floor" in the UK and most of Europe (where the ground floor is 0). For ground-floor units, "Ground floor" is universally understood.

Minimal valid version

The smallest markup that still produces a valid Apartment entity. Use it as the floor. Reach for the advanced example above when you want search engines and AI agents to understand more about your content.

schema.org/Apartment (minimal)
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Apartment",
  "name": "Sunny 2-Bedroom Apartment in Østerbro",
  "address": { "@type": "PostalAddress", "streetAddress": "Østerbrogade 87, 3.th", "addressLocality": "Copenhagen", "addressCountry": "DK" },
  "floorSize": { "@type": "QuantitativeValue", "value": "72", "unitCode": "MTK" },
  "numberOfBedrooms": 2,
  "occupancy": { "@type": "QuantitativeValue", "value": 4 },
  "image": "https://copenhagenrentals.dk/listings/oesterbrogade-87/photo-16x9.jpg",
  "description": "South-facing 2-bedroom apartment in Østerbro."
}
</script>

Google rich results this unlocks

Markup matching this example makes your page eligible for the following Google Search rich results. The primary target drives the required / recommended property classification in the advanced code block above.

  • Vacation rental and accommodation listingsprimary
    Google docs

Common Apartment mistakes

Mistakes that pass validation but silently fail to earn rich results or mislead consumers walking the graph. Avoid these and your markup will be ahead of most sites in the wild.

  1. 01

    Using Apartment for a hotel-style serviced unit

    Wrong
    "@type": "Apartment" for nightly-rental aparthotel rooms
    Right
    "@type": "Suite" for serviced apartments rented nightly with hotel services

    Apartment implies residential occupation. Aparthotel units rented like hotel rooms (nightly, with cleaning service) are better classified as Suite, since they trigger hotel/lodging search behavior in Google.

  2. 02

    amenityFeature with no value field

    Wrong
    "amenityFeature": [{ "@type": "LocationFeatureSpecification", "name": "Balcony" }]
    Right
    "amenityFeature": [{ "@type": "LocationFeatureSpecification", "name": "Balcony", "value": true }]

    value is what makes the LocationFeatureSpecification machine-readable. Use value: true for present amenities, value: false to explicitly call out absent ones.

About the example data

A rental apartment in Copenhagen, the city where Jane Xoo lived and worked. Suitable for a junior physician relocating to Rigshospitalet for residency.

Comments

Loading comments...

Leave a comment