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
When to Use Offer
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