The Ultimate OfferCatalog
Schema Generator
Structure an entire product or service catalog as a single, browsable entity — ideal for businesses with many related offers, like menus or service packages.
Magic Build
Paste your URL below and our AI will automatically fill the OfferCatalog fields for you.
Configuration
Live GeneratorWhy use OfferCatalog?
Structure an entire product or service catalog as a single, browsable entity — ideal for businesses with many related offers, like menus or service packages.This type is officially supported by major search engines for enhancing search listing appearance.
Output Panel
Want to automate this?
Connect your site to SchemaGen and our AI will automatically extract and deploy schemas for you. No manual coding required.
Launch AI GeneratorWhat is OfferCatalog Schema?
Structure an entire product or service catalog as a single, browsable entity — ideal for businesses with many related offers, like menus or service packages.
Google uses OfferCatalog structured data to understand the content and context of your pages. When correctly implemented, this schema can unlock rich results in Google Search — enhancing your listing with additional information that dramatically improves visibility and click-through rates.
Why Add OfferCatalog Structured Data?
Appear in Rich Results
Structured data helps Google show enhanced results for your pages in search — including stars, prices, FAQs, and more.
Boost Click-Through Rate
Rich snippets can increase CTR by up to 30% compared to plain search results — more clicks with the same ranking.
Feed AI Search Engines
AI answer engines like Perplexity and Google SGE use structured data to verify and cite facts from your content.
How to Implement OfferCatalog JSON-LD
Generate
Use the form above to fill in your details and generate valid OfferCatalog JSON-LD markup in seconds.
Copy
Copy the generated JSON-LD output code with one click — it's already formatted and ready to deploy.
Deploy
Paste the code into your <head> tag, or use SchemaGen's SDK to deploy without touching code.
Want to skip steps 2 & 3? Connect SchemaGen's SDK to deploy directly from the dashboard.
Properties You Can Include
OfferCatalog schema supports the following schema.org properties. Required fields are the minimum Google needs to consider your markup valid; recommended fields unlock richer search result appearances.
| Property | Description | Expected Type | Status |
|---|---|---|---|
| additionalType | An additional type for the item, typically used for adding more specific types from external vocabularies in microdata syntax. This is a relationship between something and a class that the thing is in. Typically the value is a URI-identified RDF class, and in this case corresponds to the use of rdf:type in RDF. Text values can be used sparingly, for cases where useful information can be added without their being an appropriate schema to reference. In the case of text values, the class label should follow the schema.org style guide. | Text, URL | Optional |
| aggregateElement | Indicates a prototype of the elements in the list that is used to hold aggregate information (ratings, offers, etc.). | Thing | Optional |
| alternateName | An alias for the item. | Text | Optional |
| description | A description of the item. | Text, TextObject | Optional |
| disambiguatingDescription | A sub property of description. A short description of the item used to disambiguate from other, similar items. Information from other properties (in particular, name) may be necessary for the description to be useful for disambiguation. | Text | Optional |
| identifier | The identifier property represents any kind of identifier for any kind of Thing, such as ISBNs, GTIN codes, UUIDs etc. Schema.org provides dedicated properties for representing many of these, either as textual strings or as URL (URI) links. See [background notes](/docs/datamodel.html#identifierBg) for more details. | PropertyValue, Text, URL | Optional |
| image | An image of the item. This can be a URL or a fully described ImageObject. | ImageObject, URL | Recommended |
| itemListElement | For itemListElement values, you can use simple strings (e.g. "Peter", "Paul", "Mary"), existing entities, or use ListItem.\n\nText values are best if the elements in the list are plain strings. Existing entities are best for a simple, unordered list of existing things in your data. ListItem is used with ordered lists when you want to provide additional context about the element in that list or when the same item might be in different places in different lists.\n\nNote: The order of elements in your mark-up is not sufficient for indicating the order or elements. Use ListItem with a 'position' property in such cases. | ListItem, Text, Thing | Optional |
| itemListOrder | Type of ordering (e.g. Ascending, Descending, Unordered). | ItemListOrderType, Text | Optional |
| mainEntityOfPage | Indicates a page (or other CreativeWork) for which this thing is the main entity being described. See [background notes](/docs/datamodel.html#mainEntityBackground) for details. | CreativeWork, URL | Optional |
| name | The name of the item. | Text | Required |
| numberOfItems | The number of items in an ItemList. Note that some descriptions might not fully describe all items in a list (e.g., multi-page pagination); in such cases, the numberOfItems would be for the entire list. | Integer | Optional |
| owner | A person or organization who owns this Thing. | Organization, Person | Optional |
| potentialAction | Indicates a potential Action, which describes an idealized action in which this thing would play an 'object' role. | Action | Optional |
| sameAs | URL of a reference Web page that unambiguously indicates the item's identity. E.g. the URL of the item's Wikipedia page, Wikidata entry, or official website. | URL | Optional |
| subjectOf | A CreativeWork or Event about this Thing. | CreativeWork, Event | Optional |
| url | URL of the item. | URL | Recommended |
Example OfferCatalog JSON-LD
Here's what valid OfferCatalog structured data looks like with sample values filled in. Use the generator above to replace these with your own data.
{
"@context": "https://schema.org",
"@type": "OfferCatalog",
"name": "Example OfferCatalog",
"image": "https://example.com/images/example.jpg",
"url": "https://example.com/page",
"additionalType": "Example additionalType",
"aggregateElement": {
"@type": "Thing",
"name": "Example Thing",
"image": "https://example.com/images/example.jpg",
"url": "https://example.com/page"
},
"alternateName": "Example alternateName",
"description": "A sample description for this OfferCatalog.",
"disambiguatingDescription": "Example disambiguatingDescription"
}Validate Your OfferCatalog Schema
Once deployed, validate your schema is working correctly with our free audit tool. Paste your URL and we'll check for errors, missing properties, and Google Rich Result eligibility.
Check your OfferCatalog schema for errors and Rich Result eligibility