Resources / Structured data / Template

Offer and AggregateOffer JSON-LD Templates

Describe one set of transaction terms or summarize multiple offers for the same item without merging unrelated products.

Choose the correct offer type

Use Offer for one seller’s current terms for a product, service, ticket, or other item. Use AggregateOffer for a page that truthfully summarizes multiple offers for the same item. It is not a substitute for variant markup and must not combine unrelated products.

Offer template

{
  "@context": "https://schema.org",
  "@type": "Offer",
  "@id": "https://www.example.com/products/example-product/#offer",
  "url": "https://www.example.com/products/example-product/",
  "priceCurrency": "USD",
  "price": "49.00",
  "availability": "https://schema.org/InStock",
  "itemCondition": "https://schema.org/NewCondition",
  "seller": {
    "@id": "https://www.example.com/#organization"
  },
  "itemOffered": {
    "@id": "https://www.example.com/products/example-product/#product"
  }
}

AggregateOffer template

{
  "@context": "https://schema.org",
  "@type": "AggregateOffer",
  "@id": "https://www.example.com/products/example-product/#offers",
  "url": "https://www.example.com/products/example-product/",
  "priceCurrency": "USD",
  "lowPrice": "39.00",
  "highPrice": "59.00",
  "offerCount": 4,
  "availability": "https://schema.org/InStock",
  "itemOffered": {
    "@id": "https://www.example.com/products/example-product/#product"
  }
}

Customize and validate

Use ISO 4217 currency codes and documented Schema.org enumeration URLs. Confirm that all represented offers concern the same item, that the range covers the visible offers, and that offerCount is current. The itemOffered node should identify the Product or represented variant. Then use the live-page JSON-LD validation tutorial, Schema.org Validator, and any feature-specific validator for the item being offered.

Official references

Completion check

  • Match price, currency, availability, condition, and seller to visible terms.
  • Use AggregateOffer only for multiple offers of the same item.
  • Revalidate whenever transactional terms change.