S SCHEMA.BIZ
Product Extends: Intangible

Offer Schema Markup

Offer is the schema type that represents a commercial offer — it contains the price, currency, availability, and conditions for purchasing a product or service. It's almost always used as a nested object within Product, Event, or Service.

Eligible Rich Results

Product Rich Result (via Product) Event Rich Result (via Event)

When to Use Offer

Product pricing Event tickets Service pricing Subscription plans

Properties

Property Type Status Description
price Number or Text required The price as a number without currency symbol.
priceCurrency Text required Three-letter ISO 4217 currency code (e.g., USD, EUR, GBP).
availability ItemAvailability required Stock status (use full URL like https://schema.org/InStock).
url URL recommended URL where the offer can be purchased.
priceValidUntil Date recommended Date after which the price may change.
itemCondition OfferItemCondition optional New, Used, Refurbished, or Damaged.
seller Organization or Person optional The entity selling the item.
validFrom DateTime optional When the offer becomes valid.

JSON-LD Examples

Simple Offer

A basic product offer.

{
  "@type": "Offer",
  "price": "49.99",
  "priceCurrency": "USD",
  "availability": "https://schema.org/InStock",
  "itemCondition": "https://schema.org/NewCondition",
  "url": "https://shop.com/product"
}

Common Mistakes

Including currency symbols in the price field ($49.99) — use plain numbers only.

Using short-form availability ('InStock') instead of the full URL.

Forgetting priceCurrency — price alone is meaningless without currency context.

Complete Guide to Offer Schema Markup

Offer schema is a critical building block of e-commerce structured data. While it's rarely used as a standalone type, it appears inside nearly every Product and Event markup block. Getting the Offer right is essential for displaying prices in Google Search.

The three required fields for a valid Offer are price, priceCurrency, and availability. The price must be a numeric value without currency symbols — use '49.99', not '$49.99'. Currency is specified separately using the ISO 4217 three-letter code.

Availability must use the full schema.org URL (https://schema.org/InStock), not a shortened version. Valid values include InStock, OutOfStock, PreOrder, BackOrder, SoldOut, and LimitedAvailability.

Related Types

Ready to Create Offer Markup?

Use our free generator to create valid Offer JSON-LD markup with a visual form. No coding required.

Open Generator