Google Carousel (Beta) Structured Data — What It Is and Why It Matters

Google Carousel (Beta) Structured Data — What It Is and Why It Matters

In September 2025, Google launched a new structured data-based feature in beta that’s already transforming how websites appear in Search — the Carousel (Beta) rich result. This experience enables site owners to showcase multiple listings from their own site in a scrollable horizontal carousel on Google Search.

If you’re running a website that covers products, events, local businesses, hotels, or vacation rentals, this feature could give you a significant boost in visibility — especially in the European Economic Area (EEA), Turkey, and South Africa.

In this multi-part guide, we’ll walk through exactly how to implement this structured data using Google’s official guidelines, with real JSON-LD examples, eligibility requirements, and validation tools — all directly from the source.

All information in this guide comes directly from Google’s official documentation:
https://developers.google.com/search/docs/appearance/structured-data/carousels-beta


🔍 What is the Carousel (Beta) Rich Result?

According to Google:

“This guide focuses on a new carousel rich result that’s in beta, which is a list-like rich result that people can scroll horizontally to see more entities from a given site (also known as a host carousel).”

Source: Google Developers – Carousels (Beta)

This means you can now display multiple entities (like hotels, restaurants, or products) in a scrollable horizontal format, all coming from your own domain. Each “tile” in the carousel can include:

  • Name of the entity
  • Price range
  • Star rating
  • Thumbnail images
  • A direct URL to the detail page

Think of it like a mini product showcase — but directly embedded into Google Search results.


🧠 Why Does This Matter for SEO?

Traditional rich results like snippets or product schema show one entity per page. With the new Carousel (Beta):

  • You can list multiple items per result.
  • Visibility increases for category-level pages.
  • It helps boost click-through rates (CTR) by offering multiple entry points from one query.

For example, if someone searches “Top hotels in Paris,” and you’ve implemented this carousel schema correctly, Google may show your site’s entire list of top hotels as a host carousel, instead of just one hotel page.


🆕 How is This Different from Other Carousels?

There are two major differences:

FeatureOld CarouselsCarousel (Beta)
Powered byMultiple websitesYour website only
Markup TypeVaries (e.g., Recipe, Course)ItemList + supported schema
Supported TypesLimitedLocalBusiness, Product, Event
Country AvailabilityGlobalEEA, Turkey, South Africa only (for now)

So this isn’t a traditional “Top Stories” carousel that aggregates results from across the web — it’s a site-specific, host-controlled carousel.


🧱 What Makes It a “Beta” Feature?

Google has labeled this as beta because:

  • It’s still evolving (expect changes in eligibility or formatting).
  • It’s not available worldwide yet.
  • It may disappear or change behavior depending on Google’s experimentation and regional regulations (especially in the EU).

“This feature is in beta and you may see changes in requirements or guidelines, as we develop this feature.”

Source


🌍 Where Is This Feature Available?

As of now (September 2025), Carousel (Beta) is available only in:

✅ European Economic Area (EEA):

  • Hotels
  • Vacation Rentals
  • Ground Transportation
  • Flights
  • Local Businesses
  • Events (Things to Do)
  • Shopping

✅ Turkey:

  • Hotels
  • Vacation Rentals
  • Local Businesses

✅ South Africa:

  • Hotels
  • Vacation Rentals
  • Things to Do (Events, Tours)
  • Flights
  • Shopping

Full availability details:
https://developers.google.com/search/docs/appearance/structured-data/carousels-beta#availability

If your business operates in or targets these regions, you should definitely consider implementing this structured data now to stay ahead of the competition.

🧩 What Do You Need to Implement It?

You need:

  • A summary (category) page (e.g., “Best cafes in Berlin”)
  • At least three entities listed on that page
  • Each entity must:
    • Be its own detail page
    • Have structured data for the supported schema types
  • JSON-LD using ItemList + [LocalBusiness/Product/Event]

Eligibility, Country Availability & Supported Schema Types for Google Carousel (Beta)

Above, we introduced Google’s new host carousel experience — a powerful way to feature multiple listings from your own site directly in Google Search. But before you dive into implementation, it’s critical to understand who can actually use this feature and what structured data types are supported.

Everything you read below is taken directly from the official Google documentation:
🔗 Carousels (Beta) Structured Data Guide – Google Developers

🌍 Where is Carousel (Beta) Currently Available?

As of September 2025, Google limits this carousel experience to three regions:

1. European Economic Area (EEA)

Eligible for queries related to:

  • Hotels
  • Vacation rentals
  • Ground transportation
  • Flights
  • Local businesses
  • Events, tours, and activities (“Things to do”)
  • Shopping

📝 Note: This covers all EU member states + Iceland, Liechtenstein, and Norway (but not Switzerland).


2. Turkey

Eligible only for queries related to:

  • Hotels
  • Vacation rentals
  • Local businesses

3. South Africa

Eligible for queries related to:

  • Hotels
  • Vacation rentals
  • Flights
  • Shopping
  • “Things to do” (events, tours, activities)

📌 Source:
https://developers.google.com/search/docs/appearance/structured-data/carousels-beta#availability


📝 Required Criteria to Qualify for the Carousel Feature

You are eligible to show a carousel rich result if:

✅ Your site content matches one of the supported schema types
✅ Your page structure includes a summary/category page linking to detail pages
✅ Your site targets or serves users in EEA, Turkey, or South Africa
✅ You submit your interest (if needed) to Google


📬 Optional But Recommended: Submit Interest to Google

If you’re targeting EEA or Turkey, and your content matches eligible categories like hotels, events, or local businesses, fill out this form:

🔗 Aggregator Features Interest Form

For flight-related content, use this separate form:

🔗 Flight Queries Interest Form

If your business is based in South Africa, Google provides a unique form for their refinement chips and carousel:

🔗 South Africa Interest Form


🧾 What Structured Data Types Are Supported?

Google supports ItemList (as the container) and requires it to be paired with one of the following content types:

Schema TypeExample EntitiesSource
LocalBusinessCafes, Salons, Restaurants, Shopsschema.org/LocalBusiness
HotelIndividual hotelsschema.org/Hotel
VacationRentalAirbnb-style listingsschema.org/VacationRental
ProductClothing, gadgets, home goodsschema.org/Product
EventConcerts, tours, activitiesschema.org/Event

You can mix and match schema types on the same summary page if needed. For example:

  • A “Things to do in Paris” page may include:
    • Events (Event)
    • Attractions (LocalBusiness)
    • Experiences (Event again)

🔍 Why It’s Important to Choose the Right Type

Google shows different attributes depending on the type you use.

TypeUnique Attributes
Restaurant (subtype of LocalBusiness)priceRange, servesCuisine, ratingValue
HotelamenityFeature, priceRange, ratingValue
Productoffers, price, priceCurrency, ratingValue
Eventoffers, price, eventDate, ratingValue

To use properties like amenityFeature, you must use the correct parent type, e.g., LodgingBusiness or Hotel.


📌 Example: Summary Page Structure

Your category page (e.g., “Top 10 Restaurants in Rome”) should:

  • Contain brief info about each restaurant
  • Link to a dedicated detail page for each item
  • Include structured data as shown in Part 4 (JSON-LD example coming soon)

⚠️ You Cannot Use:

🚫 One-page anchor links (e.g., example.com/page#item1)
🚫 A single page with all details and no individual URLs
🚫 Pages with less than 3 entities


✅ Quick Checklist: Are You Eligible?

RequirementStatus
Located in EEA, Turkey, or South Africa?
Has a category/summary page with 3+ items?
Using ItemList with supported schema types?
Each item links to a real detail page?
Serving users in eligible regions?

If all green, you’re ready to proceed.

How to Use ItemList with LocalBusiness, Product, or Event in Carousel (Beta)

Now that we know who’s eligible and which schema types are supported, it’s time to get technical. In this part, you’ll learn:

  • How to use the ItemList container schema
  • How to structure individual items inside the list
  • What fields are required, recommended, and optional
  • JSON-LD setup for LocalBusiness, Product, and Event types

Everything here is sourced directly from Google’s official documentation:
🔗 developers.google.com/search/docs/appearance/structured-data/carousels-beta


🔗 The Core Structure: ItemList

Every carousel must start with an outer ItemList schema that holds multiple ListItem entries. Each ListItem points to a specific schema type (like a Restaurant or Product).

✅ Required Structure:

{
  "@context": "https://schema.org",
  "@type": "ItemList",
  "itemListElement": [ ... ]
}

📦 Inside itemListElement

Each element must follow the ListItem structure and include:

FieldTypeRequiredNotes
@typeListItemMust be set to ListItem
positionIntegerStarts at 1, goes in order
itemObjectThe actual schema type (e.g., Restaurant, Product)

Example:

{
  "@type": "ListItem",
  "position": 1,
  "item": {
    "@type": "Restaurant",
    ...
  }
}

🛠️ Common Required Fields for All Carousel Items

All supported types (Restaurant, Hotel, Event, Product) must include these 3 fields inside each item:

PropertyDescription
nameThe name of the entity (no HTML formatting)
urlCanonical URL of the detail page
imageOne or more image URLs (must be crawlable)

✅ Image best practices:

  • Formats: JPEG, PNG, WebP
  • Aspect ratios: 1×1, 4×3, 16×9
  • Min resolution: 50,000 pixels total (e.g., 250×200)

🔗 Image Guidelines


⭐ Recommended Properties by Type

🏨 1. LocalBusiness & Subtypes (e.g., Restaurant, Hotel, VacationRental)

PropertyUse
priceRangee.g., “$$”, “$$$” (Max 12 characters)
aggregateRatingRating value + review count
servesCuisineFor restaurants
amenityFeatureFor Hotel or VacationRental, use LocationFeatureSpecification
"aggregateRating": {
  "@type": "AggregateRating",
  "ratingValue": 4.6,
  "reviewCount": 120
}

🛒 2. Product

PropertyUse
offersUse Offer or AggregateOffer
offers.priceNumeric value
offers.priceCurrencyISO code (e.g., “USD”, “EUR”)
aggregateRatingOptional but encouraged
"offers": {
  "@type": "AggregateOffer",
  "lowPrice": 19.99,
  "highPrice": 39.99,
  "priceCurrency": "USD"
}

🎟️ 3. Event

PropertyUse
offers.priceIf free, use 0
offers.priceCurrencyISO 4217 format
aggregateRatingOptional
startDate and locationNot required for carousel, but good to have
"offers": {
  "@type": "Offer",
  "price": 45.00,
  "priceCurrency": "EUR"
}

🧠 Best Practices

  • Each url must point to a different detail page
  • All urls must be on the same domain or subdomain
  • No anchor links or sections on a single page
  • Validate your markup using the Rich Results Test

✅ Summary Table

Schema TypeRequiredRecommended
ItemListitemListElement, position, item
LocalBusinessname, url, imagepriceRange, aggregateRating, servesCuisine, amenityFeature
Productname, url, imageoffers, price, currency, aggregateRating
Eventname, url, imageoffers, price, currency, aggregateRating

Full JSON-LD Examples for Google Carousel (Beta) — Restaurant, Hotel, Event & Product

Once you’ve structured your summary/category page correctly and understood the supported schema types (from Part 3), the final step is to write valid JSON-LD.

This part provides Google-approved examples of how to implement structured data for a carousel rich result — directly from their official documentation.

✅ All examples below include:

  • Proper use of ItemList and ListItem
  • At least three unique items
  • Required and recommended fields
  • Official schema.org types

🏨 Example 1: Restaurant Carousel (@type: Restaurant)

{
  "@context": "https://schema.org",
  "@type": "ItemList",
  "itemListElement": [
    {
      "@type": "ListItem",
      "position": 1,
      "item": {
        "@type": "Restaurant",
        "name": "Trattoria Luigi",
        "image": [
          "https://example.com/photos/1x1/photo.jpg",
          "https://example.com/photos/4x3/photo.jpg",
          "https://example.com/photos/16x9/photo.jpg"
        ],
        "priceRange": "$$$",
        "servesCuisine": "Italian",
        "aggregateRating": {
          "@type": "AggregateRating",
          "ratingValue": 4.5,
          "reviewCount": 250
        },
        "url": "https://example.com/trattoria-luigi"
      }
    },
    {
      "@type": "ListItem",
      "position": 2,
      "item": {
        "@type": "Restaurant",
        "name": "La Pergola",
        "image": [
          "https://example.com/photos/1x1/photo.jpg",
          "https://example.com/photos/4x3/photo.jpg",
          "https://example.com/photos/16x9/photo.jpg"
        ],
        "priceRange": "$$$",
        "servesCuisine": "Italian",
        "aggregateRating": {
          "@type": "AggregateRating",
          "ratingValue": 4.9,
          "reviewCount": 1150
        },
        "url": "https://example.com/la-pergola"
      }
    },
    {
      "@type": "ListItem",
      "position": 3,
      "item": {
        "@type": "Restaurant",
        "name": "Pasta e Basta",
        "image": [
          "https://example.com/photos/1x1/photo.jpg",
          "https://example.com/photos/4x3/photo.jpg",
          "https://example.com/photos/16x9/photo.jpg"
        ],
        "priceRange": "$$$",
        "servesCuisine": "Italian",
        "aggregateRating": {
          "@type": "AggregateRating",
          "ratingValue": 4.2,
          "reviewCount": 690
        },
        "url": "https://example.com/pasta-e-basta"
      }
    }
  ]
}

🏨 Example 2: Hotel + VacationRental Carousel

{
  "@context": "https://schema.org",
  "@type": "ItemList",
  "itemListElement": [
    {
      "@type": "ListItem",
      "position": 1,
      "item": {
        "@type": "Hotel",
        "name": "Four Seasons Paris",
        "image": [
          "https://example.com/photos/1x1/photo.jpg",
          "https://example.com/photos/4x3/photo.jpg",
          "https://example.com/photos/16x9/photo.jpg"
        ],
        "priceRange": "$$$$",
        "amenityFeature": {
          "@type": "LocationFeatureSpecification",
          "name": "internetType",
          "value": "Free"
        },
        "aggregateRating": {
          "@type": "AggregateRating",
          "ratingValue": 4.9,
          "reviewCount": 50
        },
        "url": "https://example.com/four-seasons"
      }
    },
    {
      "@type": "ListItem",
      "position": 2,
      "item": {
        "@type": "VacationRental",
        "name": "Downtown Condo",
        "image": [
          "https://example.com/photos/1x1/photo.jpg",
          "https://example.com/photos/4x3/photo.jpg",
          "https://example.com/photos/16x9/photo.jpg"
        ],
        "priceRange": "$$",
        "amenityFeature": {
          "@type": "LocationFeatureSpecification",
          "name": "instantBookable",
          "value": true
        },
        "aggregateRating": {
          "@type": "AggregateRating",
          "ratingValue": 4.7,
          "reviewCount": 827
        },
        "url": "https://example.com/downtown-condo"
      }
    },
    {
      "@type": "ListItem",
      "position": 3,
      "item": {
        "@type": "Hotel",
        "name": "Ritz Paris",
        "image": [
          "https://example.com/photos/1x1/photo.jpg",
          "https://example.com/photos/4x3/photo.jpg",
          "https://example.com/photos/16x9/photo.jpg"
        ],
        "priceRange": "$$$$",
        "amenityFeature": {
          "@type": "LocationFeatureSpecification",
          "name": "freeBreakfast",
          "value": true
        },
        "aggregateRating": {
          "@type": "AggregateRating",
          "ratingValue": 4.9,
          "reviewCount": 1290
        },
        "url": "https://example.com/ritz-paris"
      }
    }
  ]
}

🎟️ Example 3: Event + LocalBusiness Carousel

{
  "@context": "https://schema.org",
  "@type": "ItemList",
  "itemListElement": [
    {
      "@type": "ListItem",
      "position": 1,
      "item": {
        "@type": "Event",
        "name": "Seine River Dinner Cruise",
        "image": [
          "https://example.com/photos/1x1.jpg",
          "https://example.com/photos/4x3.jpg",
          "https://example.com/photos/16x9.jpg"
        ],
        "offers": {
          "@type": "Offer",
          "price": 45.00,
          "priceCurrency": "EUR"
        },
        "aggregateRating": {
          "@type": "AggregateRating",
          "ratingValue": 4.2,
          "reviewCount": 690
        },
        "url": "https://example.com/event-1"
      }
    },
    {
      "@type": "ListItem",
      "position": 2,
      "item": {
        "@type": "LocalBusiness",
        "name": "Notre-Dame Cathedral",
        "image": [
          "https://example.com/photos/1x1.jpg",
          "https://example.com/photos/4x3.jpg",
          "https://example.com/photos/16x9.jpg"
        ],
        "priceRange": "$",
        "aggregateRating": {
          "@type": "AggregateRating",
          "ratingValue": 4.8,
          "reviewCount": 4220
        },
        "url": "https://example.com/notre-dame"
      }
    },
    {
      "@type": "ListItem",
      "position": 3,
      "item": {
        "@type": "Event",
        "name": "Eiffel Tower Summit Tour",
        "image": [
          "https://example.com/photos/1x1.jpg",
          "https://example.com/photos/4x3.jpg",
          "https://example.com/photos/16x9.jpg"
        ],
        "offers": {
          "@type": "Offer",
          "price": 59.00,
          "priceCurrency": "EUR"
        },
        "aggregateRating": {
          "@type": "AggregateRating",
          "ratingValue": 4.9,
          "reviewCount": 652
        },
        "url": "https://example.com/eiffel-tour"
      }
    }
  ]
}

🛒 Example 4: Product Carousel

{
  "@context": "https://schema.org",
  "@type": "ItemList",
  "itemListElement": [
    {
      "@type": "ListItem",
      "position": 1,
      "item": {
        "@type": "Product",
        "name": "Puffy Coat by Goat Coat",
        "image": [
          "https://example.com/photos/1x1.jpg",
          "https://example.com/photos/4x3.jpg",
          "https://example.com/photos/16x9.jpg"
        ],
        "offers": {
          "@type": "AggregateOffer",
          "lowPrice": 45.00,
          "highPrice": 60.00,
          "priceCurrency": "EUR"
        },
        "aggregateRating": {
          "@type": "AggregateRating",
          "ratingValue": 4.9,
          "reviewCount": 50
        },
        "url": "https://example.com/puffy-coat"
      }
    }
  ]
}

🧪 Test Before You Go Live

Before publishing:

Best Practices, Validation & Sitemap Submission for Google Carousel (Beta)

By now, you’ve learned:

  • How the Carousel (Beta) works
  • Which countries and content types are eligible
  • How to write valid JSON-LD schema using ItemList

In this part, we’ll focus on what to do after implementation:

✅ Validation
✅ Deployment
Indexing
✅ Sitemap submission
✅ Troubleshooting

All recommendations here come directly from Google’s official documentation:
🔗 Carousels (Beta) Guide — Google Search Central


✅ 1. Validation: Use Google’s Rich Results Test

After adding structured data to your page, test it using:

🔗 Rich Results Test

Paste your page URL or code snippet. This tool will:

  • Detect your ItemList and each schema item
  • Show you any missing required fields
  • Confirm eligibility for rich results

📌 Tip: Fix all errors and warnings before publishing.


✅ 2. Use the URL Inspection Tool in Search Console

Once the page is live, go to:

🔗 URL Inspection Tool

Use this to:

  • Check if the page is indexed
  • Verify that Google sees your structured data
  • Confirm crawl status (not blocked by robots.txt, noindex, or login walls)

If everything looks good, hit Request Indexing to ask Google to recrawl it.


✅ 3. Make Sure the Page Structure Matches Guidelines

For your page to qualify for the Carousel (Beta), it must meet these critical structural rules:

RequirementDescription
✅ Summary/Category PageLists at least 3 entities (e.g., restaurants, events, products)
✅ Detail PagesEach item must link to a unique detail page (not an anchor link)
✅ Same DomainAll urls in the schema must be on the same domain or subdomain
❌ Not SupportedPages with less than 3 items, or all-in-one anchor-linked pages

“The markup must be on a summary or category page… While you don’t need to add markup to the detail pages, you must include the detail page URLs in your summary page’s markup.”
Google Carousel (Beta) Guidelines


✅ 4. Submit a Sitemap to Google Search Console

This helps Google discover all of your newly structured pages.

🔗 How to Build & Submit a Sitemap

You can use:

⚠️ Be sure your sitemap:

  • Uses absolute URLs
  • Is updated automatically when you add new entities
  • Has a valid lastmod date for better crawl prioritization

✅ 5. Allow Time for Crawling & Indexing

Even after submitting your sitemap and requesting indexing:

  • It can take several days to a week before rich results appear
  • Use the Enhancements > Rich Results report in Google Search Console to monitor visibility
  • Track impressions via Search Performance Reports

⚠️ Troubleshooting: When Carousel Doesn’t Show

If your carousel isn’t appearing in search results:

Possible IssueFix
❌ Invalid or incomplete schemaRun through Rich Results Test again
❌ Detail pages not indexableCheck robots.txt, noindex, or login requirements
❌ Less than 3 itemsAdd more items to meet minimum
❌ Wrong @typeUse only: LocalBusiness, Product, Event
❌ Markup not on summary pageSchema must exist on category/summary page, not item pages

Still having issues? Refer to:

🔗 Structured Data Troubleshooting Guide (Google)

FAQs, Common Errors, Manual Action Warnings & Official Resources

By now, you’ve seen exactly how to implement Google’s host carousel using official structured data. But before you finalize everything, let’s go over common mistakes, manual actions, and a full FAQ checklist — all sourced directly from Google.

🔗 Official documentation used:
https://developers.google.com/search/docs/appearance/structured-data/carousels-beta

Do I need to add schema to detail pages too?

No. You only need to add structured data on the summary or category page. However, that page must link to individual standalone detail pages.

Can I show a carousel using only anchor links (e.g., #section1)?

No. Google does not support carousel markup that links to internal sections within the same page. Every item must have its own full URL.

Can I mix different types of items (e.g., Restaurants + Events)?

Yes. Google supports mixed types as long as each item is a valid schema type: Restaurant, Hotel, VacationRental, Product, or Event.

Does this carousel appear globally?

No. As of now, it’s limited to the EEA, Turkey, and South Africa only. If your site or audience is outside those regions, the carousel will not show.
More info:
🔗 Carousel Availability by Country

What happens if I use invalid schema?

If you use incomplete or spammy structured data, Google may ignore your markup — or worse, apply a manual action.

🚫 Manual Actions: What to Avoid

According to Google’s structured data policies, misuse of structured data may lead to:

  • Removal of rich results for your site
  • Penalties in manual review
  • Markup being completely ignored

❌ Don’t:

  • Add fake ratings or reviews
  • Use anchor links (#) instead of real URLs
  • Add structured data that doesn’t match visible page content
  • Mark up fewer than 3 items
  • Use schema types not supported by the carousel feature

🔗 How to Fix Structured Data Manual Actions


⚠️ Common Errors & How to Fix Them

ErrorSolution
url not uniqueEach item needs a separate full URL
image not crawlableCheck robots.txt and use absolute URLs
❌ Wrong @typeUse only: Restaurant, Hotel, VacationRental, Product, Event
❌ Not enough itemsAdd 3+ items to qualify for carousel
❌ Invalid JSONValidate using Rich Results Test

✅ Final Checklist: Are You Ready?

✅ StepDescription
✅ Summary pageLists 3+ items with schema
✅ Detail pagesLive, indexable, unique URLs
✅ SchemaValid JSON-LD using ItemList + supported type
✅ Image rules1×1, 4×3, 16×9 at 50k+ pixels
✅ Test toolsPassed Rich Results Test + URL Inspection
✅ SitemapSubmitted and updated in Search Console

📚 Official Google Resources (All in One Place)

Here are all the authoritative links used in this guide:


✍️ Final Thoughts

Google’s new Carousel (Beta) rich result is an opportunity for eligible sites to:

  • Show multiple entries per search result
  • Improve click-through rate (CTR)
  • Offer a richer search appearance

But to benefit, you must strictly follow Google’s documentation. Any deviation or attempt to “hack” your way into the carousel can result in schema being ignored or penalized.

If your content fits the eligible types and you serve users in the supported countries — now is the best time to implement it.

✍️ Author

Harshit Kumar
AI SEO Specialist & Founder of KumarHarshit.in
Harshit Kumar is a leading AI SEO strategist who specializes in zero-fluff, Google-backed SEO practices. He creates deeply technical, long-form guides optimized for AI Overviews, Google Search, and Gemini — without relying on outdated hacks or third-party myths. You’ll often find him simplifying complex search updates into action-ready insights for SEOs, SEO tool developers, and business owners.

3 Comments on “Google Carousel (Beta) Structured Data — What It Is and Why It Matters

  1. Your blog is like a beacon of light in the vast expanse of the internet. Your thoughtful analysis and insightful commentary never fail to leave a lasting impression. Thank you for all that you do.

  2. I have recommended this blog to all of my friends and family It’s rare to find such quality content these days!

Leave a Reply

Your email address will not be published. Required fields are marked *

*