Skip to content

Marketplace offers

An offer is what a business sells on United Pet Club: a product, service, plan, membership, digital item or bundle, at a pricing mode, in a status. These routes read the offers of the business that connected your app, drafts included: it is the seller’s own view.

  • A token from the authorization-code grant: it acts for the business that connected your app. A client-credentials token answers 403 0010010000406.
  • The business must keep a valid payment card on file (the API is free); without one, 403 0010010000407.
  • Scope marketplace:read. Your app declares it, and the business grants it on the consent page — see Business resources.
GET /api/marketplace/v1/offers?status=ACTIVE&kind=PRODUCT&page=1&pageSize=20
ParameterMeaning
statusAn offer status, any case: DRAFT, UNDER_REVIEW, SCHEDULED, ACTIVE, PAUSED, SOLD_OUT, WITHDRAWN, EXPIRED, ARCHIVED, REJECTED.
kindThe offer kind, any case: PRODUCT, SERVICE, PLAN, MEMBERSHIP, DIGITAL, BUNDLE, … category is accepted as an older name for the same filter.
catalogCategoryIdA catalog category id.
localeThe title’s language, for example fr-CA (default en-US).
page, pageSizeSee Pagination.

Newest first. An unknown status or kind is a 400, not an empty page.

{
"data": [
{
"id": "0f7a4c1e-3333-7000-8000-000000000003",
"offerCode": "K7M2Q4X9A3",
"storefrontId": "0f7a4c1e-1111-7000-8000-000000000001",
"title": "Reflective dog leash, blue",
"status": "ACTIVE",
"kind": "PRODUCT",
"catalogItemId": "0f7a4c1e-5555-7000-8000-000000000005",
"catalogCategoryId": null,
"pricingMode": "FIXED_PRICE",
"currency": "USD",
"listPriceMinorUnits": 2500,
"priceMinorUnits": 2000,
"priceStatus": "PRICED",
"createdAt": "2026-09-02T17:40:11Z",
"updatedAt": "2026-10-12T08:03:55Z"
}
],
"pagination": { "page": 1, "pageSize": 20, "total": 1 }
}
GET /api/marketplace/v1/offers/{id}?locale=fr-CA

Answers one offer in the shape above. An offer of another business answers 404, exactly like an offer that does not exist.

/api/marketplace/v1/listings and /api/marketplace/v1/listings/{id} are aliases of these two routes (the module’s first name), with the same parameters and answers.

FieldMeaning
offerCodeThe 10-character code printed on packages and shown on the product page — see Offer codes.
titleIn the requested locale, else English, else the offer’s own language; the offer code when it has no title.
kindThe offer kind (what kind filters on).
catalogCategoryIdThe catalog category, when the offer has one (often null).
pricingModeFIXED_PRICE, MAKE_OFFER, NAME_YOUR_PRICE, AUCTION_*, QUOTE_REQUIRED, FREE, EXTERNAL_LISTING.
currencyISO 4217: the offer’s primary currency.
listPriceMinorUnitsThe list price, in minor units of currency (cents for USD and CAD; the currency’s own exponent, so 0 decimals for JPY).
priceMinorUnitsThe price after an active sale or scheduled discount; equal to the list price when none applies.
priceStatusPRICED: both prices are set. UNPRICED: the offer should have a price and none applies (the store shows “pricing unavailable”). NOT_LIST_PRICED: auctions, quotes, free and external offers have no list price. UNAVAILABLE: the price could not be read right now; read again later. Both prices are null unless PRICED.

The price is the display price any buyer is shown: before tax and delivery, for one unit, without member-only or hidden prices.

StatusplatformResponseCodeCause
4000010010000400page or pageSize out of range.
400Marketplace_Storefront_VL_Request_RJAn unknown status or kind.
404Marketplace_Storefront_GT_Resource_FLNo such offer for this business.

Everything else follows Errors.