Skip to main content
GET /v1/products/retrieve/{uuid} returns a product StoreRouter already gave you an id for, such as a uuid from search or lookup. Use it to refresh products you stored: product pages, carts, saved lists. Retrieve is different from the other product routes:
  • Search finds products for a query.
  • Lookup resolves a URL from the wild: the index first, then an on-demand fetch.
  • Retrieve reads back an id you already hold. It reads the index only and never fetches from the merchant, so a miss is final.
Retrieve requests are not billed. To read up to 50 ids in one call, use Retrieve Products.

Request

Path parameters

string (UUID)
required
A product uuid from an earlier response. An older id for the same product still works. A value that is not a UUID returns 422.

Example

Response

string
required
The id you sent, in canonical lowercase form.
"found"
required
Always found on a 200. A miss is a 404.
string
required
The product’s current id. It differs from requestedUuid when you sent an older id for the same product. Store this one.
string
required
Catalog that supplies the product.
string | null
Human-readable catalog name.
string | null
Catalog source base URL, when configured.
boolean
required
false when the merchant no longer offers the product. Unlike lookup, retrieve still returns an inactive product, so you can tell a product that is gone from one you cannot see.
datetime | null
When the product was last deactivated, if it ever was.
MerchantProductView
required
The same product view lookup returns for an indexed product.

Example

Revalidation

The response carries a weak ETag. Send it back in If-None-Match to get 304 Not Modified with no body while the product is unchanged.

Errors