Rich pins are no longer for the selected few. Learn how to make your own rich product pins using oEmbed or semantic markups – cheat sheet included!

When Pinterest first introduced rich pins in May, PinLeague CEO, Danny Maloney, saw them as Pinterest’s first billion dollar revenue feature. This feature gives companies ability to display price, availability, their logo, show price changes and much more, all within the pin. Although only a few companies had access to these pins at first, Pinterest has since provided the coding to allow any company the chance of having rich pins on their own site.

To create rich product pins, Pinterest requires you to either use oEmbed or semantic markups (Open Graph or While a knowledge of HTML coding does make the task a little easier, below we’ve outlined, defined and even created a cheat sheet of the main points to keep in mind when adding rich product pins to your site.


oEmbed is Pinterest’s preferred method of generating rich pins since they only have to look at a single canonical URL to find all the information needed to produce the pin. Because of this, Pinterest can be confident that the pin will always have the right information.

An oEmbed formula will look like this:

“provider_name”: “PinLeague”,
“url”: “”,
“title”: “Pin League Professional Analytics Suite”,
“description”: “Gain insights and take strategic action on Pinterest with PinLeague’s Professional Analytics Suite.”,
“product_id”: “PL12345″,
“price”: 99.00,
“currency_code”: “USD”,
“brand”: “PinLeague Analytics”
“availability”: “in stock”
“quantity”: “100000″

To set up a single rich product pin, use these required fields (color coded to match formula):

  • url: The canonical URL for the product.
  • title: The product name. No need to use HTML formatting here since any tags will be removed.
  • price: The price of the product without any currency symbols.
  • currency_code: Easily find the correct currency code from For example, the US dollar is listed as “USD”.

While the above are the only fields technically required, it’s a good idea to also include:

  • provider_name: The store name, such as Karmaloop.
  • description: This is the, well, description of the product. This section also doesn’t require HTML formatting – just type away.
  • brand: The brand name of the product. For example, the brand Burton can be found on Karmaloop’s website.
  • product_id: the ID used on your site to identify the product.
  • availability: Can be “in stock”, “preorder”, “backorder”, “out of stock”, or “discontinued”. Do not capitalize any of the values, as this field is case sensitive.
  • quantity: The amount of the product left, written as an integer. When the quantity hits 0, the availability automatically changes to “out of stock”

To create a rich pin connected to a page with multiple products or offerings, the set up looks a little different:

“provider_name”: “PinLeague”,
“url”: “”,
"title": "PinLeague Analytics Suites"
"brand": "PinLeague Analytics"
"product_id": "PL12345",
"title": "PinLeague Lite Analytics"
"description": "Gain insights and take strategic action on Pinterest with PinLeague's Lite Analytics Suite."
"price": 29.00
"currency_code": "USD"
"offer_id": "123"
"availability": "in stock"
"quantity": "100000"
"title": "PinLeague Professional Analytics"
"description": "Gain insights and take strategic action on Pinterest with PinLeague's Professional Analytics Suite."
"price": 99.00
"currency_code": "USD"
"availability": "in stock"
"quantity": "100000"

While many of these fields are the same (and their descriptions are found above), there are some key differences, particularly under the ‘products’ and ‘offers’ fields:

  • provider_name: Name of your store.
  • url (required)
  • products: (required) While nothing goes directly after the colon, this field is where the product markups begin.
    • title (required)
    • description
    • brand
    • product_id
    • offers: (required) This, like the ‘products’ tag begins a new field related to offers from your domain
      • price (required)
      • currency_code (required)
      • title
      • description
      • offer_id: The id that correlates to the offer id on your site.
      • availability
      • quantity

Open Graph Tags

Open Graph, originally developed by Facebook, requires that you put information about the products in the HTML header of your site. However, this method doesn’t allow for multiple product descriptions on one page.

The Open Graph tags will look like this:

Gain insights and take strategic action on Pinterest with PinLeague’s Professional Analytics Suite”.


If you notice, the first field actually is written in Open Graph form (og:site_name). The reason for this is due to the fact markups do not offer a site name field.

There are only two required fields for product markups, after stating the item type:

  • url: Canonical url for the product on your site.
  • name: Name of the product, without any HTML tags.

The other fields, that are a good idea to include, are:

  • description: Description of the product, without any HTML tags.
  • brand: Brand name of the product.
  • productId: The unique identifier for the product on your website. also allows you to offer special offers via rich pins. These fields are:

  • name: Name of the offer, without HTML tags.
  • description: Description of the offer, without HTML tags.
  • sku: The unique identifier for the offer on your site.
  • price: Price of the offer without any currency signs.
  • priceCurrency: Currency code, once again found at
  • availability: Can be listed as, “” or “InStock”, “” or “OnlineOnly”, “” or “InStoreOnly”, “” or “OutOfStock”, “” or “PreOrder”, and “” or “Discontinued”.

Validate your Pins

Before sending your rich pins off to be approved by Pinterest, you must first validate them. To do so go to and enter the URL for your product. After validation, you are then ready apply and take advantage of all rich pins have to offer!