"Offer" schema

Last updated 17 June 2026 2 min

The Offer schema describes a specific commercial offer to sell something — a price, currency, availability status, and the conditions of purchase. It is typically nested inside another schema type, most commonly Product or Service.

Offer provides the "transactional" half of structured data — how the product or service is being sold.

When to use it

Use Offer whenever a page contains:

  • A product with a price
  • A service with a quoted rate
  • An event ticket
  • A course with tuition
  • A digital download (e.g., purchasing an e-book)

For a price range or multiple sellers, use AggregateOffer, which wraps a lowPrice / highPrice summary across multiple Offer entries.

Key properties

  • price – the numeric price (string or number, no currency symbol)
  • priceCurrency – ISO 4217 code (AUD, USD, EUR, etc.)
  • availability – schema.org enumeration URL (InStock, OutOfStock, PreOrder, Discontinued, LimitedAvailability, SoldOut, BackOrder)
  • url – the URL where the offer can be purchased
  • priceValidUntil – when the price expires (important for product rich results)
  • validFrom – when the offer becomes valid
  • itemConditionNewCondition, UsedCondition, RefurbishedCondition, DamagedCondition
  • seller – the Organization selling it (useful when different from the manufacturer)
  • shippingDetailsOfferShippingDetails for merchant listings
  • hasMerchantReturnPolicyMerchantReturnPolicy for return information

Note: availability and itemCondition values must be expressed as full schema.org enumeration URLs (e.g., https://schema.org/InStock), not the bare names shown above.

Simple product offer example

{
  "@type": "Offer",
  "url": "https://example.com.au/products/widget",
  "priceCurrency": "AUD",
  "price": "129.00",
  "availability": "https://schema.org/InStock",
  "itemCondition": "https://schema.org/NewCondition",
  "priceValidUntil": "2026-12-31"
}

AggregateOffer example

{
  "@type": "AggregateOffer",
  "priceCurrency": "AUD",
  "lowPrice": "89.00",
  "highPrice": "149.00",
  "offerCount": "12",
  "availability": "https://schema.org/InStock"
}

SEO value

  • Price, availability, and condition fields are used by Google in rich results
  • Required for merchant listing eligibility
  • Reinforces commerce-oriented entity understanding for AI crawlers

Best practices

  • Keep availability and stock data current; misleading availability is a leading cause of merchant listing penalties
  • For shipping-eligible products, include shippingDetails and hasMerchantReturnPolicy for richer merchant listings
  • Match the price and priceCurrency to what's actually displayed on the page; don't let temporary special pricing clash with Offer schema

Disclaimer: All information contained herein is for informational purposes only. It is not advice or instructional.