A product, field by field

Last updated ยท Page 2 of 5

Every product a walk, a search or a product read returns has these fields; each one is also described, with an example, in the API documentation. A field that can be unknown is null, never left out.

FieldWhat it holdsExample
idThe product's id: the productId of a cart line"e4d9fb19-3de1-4b36-8398-6d54f197a2e3"
titleThe offer's title as groupon.com shows it"60-minute Tailored Deep-Tissue or Swedish Massage"
shortDescriptionA short plain-text summary, for a card or a list"4.8-Star Rating, over 4,200 reviews."
descriptionThe offer's description, plain text"A peaceful oasis in Lincoln Park."
statusactive, sold_out or expired; list only active"active"
availabilityRequiredtrue when the offer is booked, not put in a cartfalse
bookingUrlWhere a product a cart cannot take is bought; null for one you put in a cartnull
categoryLabelsGroupon's category labels of the offer["Deep Tissue Massage", "Swedish Massage"]
mediaEvery picture of the offer's page, each once per size (below)[{"url": "https://img.grouponcdn.com/.../t300x182.jpg", "role": "medium", "width": 300, "height": 182, "index": 0}]
locationsThe places where the offer is used (below); empty for an offer used anywhere[{"name": "Lincoln Park", "city": "Chicago", "state": "IL"}]
optionsThe variants the shopper picks from (below)[{"id": "a40bef0d-2309-4a38-9042-338601020219", "title": "One 60-Minute Massage"}]
merchantRatingThe merchant's rating: average 0 to 5 to one decimal, and count; null without ratings{"average": 4.8, "count": 5315}
boughtgroupon.com's "bought" badge: atLeast (100, 1000, 5000 or 10000) as of asOf; null under 100{"atLeast": 1000, "asOf": "2026-10-13T18:41:36.005Z"}
finePrintGroupon's terms of redemption, as plain-text paragraphs; null when there are none["Appointment required.", "Limit 1 per person."]
distanceKm, distanceMilesA search's hits only: the nearest place's distance from near; null without near2.43, 1.51

Each entry of media:

FieldWhat it holdsExample
urlThe picture's address on Groupon's image CDN, ready to show"https://img.grouponcdn.com/.../v1/t300x182.jpg"
roleThe size: small, medium, large, extra_large or wide_crop"medium"
width, heightThe picture's size in pixels; null when Groupon does not say300, 182
indexWhich picture: 0 the main one, 1 and on the gallery, in the page's order0

Each entry of locations:

FieldWhat it holdsExample
idGroupon's id of the place"a780b4fd-2d25-bed3-9b7d-016814d7ad2e"
nameThe place's name, often its neighbourhood or branch"Lincoln Park"
street, city, postalCodeThe address"1136 West Armitage Avenue", "Chicago", "60614"
stateThe state's two-letter code"IL"
countryISO 3166-1 alpha-2"US"
latitude, longitudeThe place's point, in degrees41.9182047, -87.6568705
openingHoursIts regular week, Sunday first: dayOfWeek (0 is Sunday), closed, opens, closes ("HH:MM"); null without hours[{"dayOfWeek": 0, "closed": false, "opens": "10:00", "closes": "20:00"}]
timeZoneThe place's IANA time zone; null when unknown"America/Chicago"

Each entry of options:

FieldWhat it holdsExample
idThe optionId of a cart line"a40bef0d-2309-4a38-9042-338601020219"
titleWhat the shopper buys"One 60-Minute Deep-Tissue or Swedish Massage"
isDefaulttrue for the option Groupon's page shows firsttrue
activefalse is not sellable; null is unknown, treat it as sellabletrue
minUnits, maxUnitsThe fewest and most units one cart line may hold; maxUnits null for no maximum1, 30
priceretail (what the shopper pays per unit, the expectedPrice of a cart line), original (the strike-through price), currency, currencyPrecision, in minor units{"retail": 8460, "original": 13000, "currency": "USD", "currencyPrecision": 2}
promotionamount, promoCode and endsAt of a code that may lower the price on Groupon's checkout, if eligible; null without one{"amount": 7190, "promoCode": "SAVE15", "endsAt": "2026-10-31T06:59:59Z"}
selectionsChoose-one attributes (attributeId, title, required, values of id and title); empty for most options[]
bookingUrlGroupon's booking page with this option chosen, for a ticket booked on groupon.com; null otherwisenull