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.
Access
Section titled “Access”- A token from the authorization-code grant: it acts for the
business that connected your app. A client-credentials token answers
4030010010000406. - The business must keep a valid payment card on file (the API is free); without one,
4030010010000407. - Scope
marketplace:read. Your app declares it, and the business grants it on the consent page — see Business resources.
List offers
Section titled “List offers”GET /api/marketplace/v1/offers?status=ACTIVE&kind=PRODUCT&page=1&pageSize=20| Parameter | Meaning |
|---|---|
status | An offer status, any case: DRAFT, UNDER_REVIEW, SCHEDULED, ACTIVE, PAUSED, SOLD_OUT, WITHDRAWN, EXPIRED, ARCHIVED, REJECTED. |
kind | The offer kind, any case: PRODUCT, SERVICE, PLAN, MEMBERSHIP, DIGITAL, BUNDLE, … category is accepted as an older name for the same filter. |
catalogCategoryId | A catalog category id. |
locale | The title’s language, for example fr-CA (default en-US). |
page, pageSize | See 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 an offer
Section titled “Get an offer”GET /api/marketplace/v1/offers/{id}?locale=fr-CAAnswers 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.
Fields
Section titled “Fields”| Field | Meaning |
|---|---|
offerCode | The 10-character code printed on packages and shown on the product page — see Offer codes. |
title | In the requested locale, else English, else the offer’s own language; the offer code when it has no title. |
kind | The offer kind (what kind filters on). |
catalogCategoryId | The catalog category, when the offer has one (often null). |
pricingMode | FIXED_PRICE, MAKE_OFFER, NAME_YOUR_PRICE, AUCTION_*, QUOTE_REQUIRED, FREE, EXTERNAL_LISTING. |
currency | ISO 4217: the offer’s primary currency. |
listPriceMinorUnits | The list price, in minor units of currency (cents for USD and CAD; the currency’s own exponent, so 0 decimals for JPY). |
priceMinorUnits | The price after an active sale or scheduled discount; equal to the list price when none applies. |
priceStatus | PRICED: 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.
Errors
Section titled “Errors”| Status | platformResponseCode | Cause |
|---|---|---|
400 | 0010010000400 | page or pageSize out of range. |
400 | Marketplace_Storefront_VL_Request_RJ | An unknown status or kind. |
404 | Marketplace_Storefront_GT_Resource_FL | No such offer for this business. |
Everything else follows Errors.