Get started
Versions and changes
The current version is 1.6.0. The major version is in every address — /api/v1 — and stays the same for as long as v1 is served.
What we change without a new version
Within v1, every change is additive, so an integration that works today keeps working:
- new endpoints, and new optional request fields;
- new fields in a response;
- new values in a list of values the reference describes as open (an error
code, an order status); - accepting something that used to be refused.
So your client should ignore fields it does not recognise and treat an unknown value as "other". The reference's own version number moves with each change: the minor number for something new, the last number for a fix.
What only comes in a new major version
Removing or renaming an endpoint or a field, changing a field's type or meaning, a new required field, refusing something that used to be accepted, or changing how authentication or permissions work. Those come as /api/v2, served alongside v1 — never in place of it.
How long the old one keeps working
- A previous major version keeps working for at least 12 months after its successor is live.
- A single endpoint we deprecate keeps working for at least 6 months after we announce it.
How you hear about it
- On this page, in the changes below, before the change ships.
- By email to the contact on your partner account.
- On every response from a deprecated endpoint: a
Deprecationheader (RFC 9745) with the date it was deprecated, aSunsetheader (RFC 8594) with the date it stops answering, and aLinkheader withrel="deprecation"pointing at what to use instead. Your client can log these and warn you without anyone reading a changelog. - Before the sunset date there are short, announced brownouts — windows when the endpoint answers as if retired — so anything still using it is noticed while there is time.
After the sunset date the endpoint answers 410 with the error code retired, and a Link to its replacement.
The MCP connectors (/mcp and /mcp/account) follow the same contract: each tool is one of these endpoints, and a tool whose endpoint is retired (or in a brownout) answers with the same retired error.
Changes
-
1.6.0
Price-drop alerts (
POST /price-alerts,GET /price-alerts,DELETE /price-alerts/{price_alert_id}, newalerts:writepermission): email the person once when an item drops to a price they choose. It never buys. Only for stores that offer alerts; counted inprice_watchers. A person who connected before 1.6.0 reconnects to grantalerts:write. -
1.5.0
price_watcherson every item: how many other shoppers have a live price watch on it. For a signed-in person, their own watch is left out of that number, andyou_are_watchingsays whether they have one. -
1.4.0
Price watches (
POST /price-watches,GET /price-watches,GETandDELETE /price-watches/{price_watch_id},purchase:write): buy an item for the person if its price drops to an amount they choose, within a total and their limits. Off until switched on. -
1.3.0
Purchases by an assistant (
POST /purchases,GET /purchases/{purchase_id}, new elevatedpurchase:writepermission): an assistant a person connected through the agent registration door, and allowed to buy, can buy a quote with their saved card within limits they set, from stores that accept it (agent_checkout: directon every store). Off until switched on. -
1.2.1
nullis accepted wherever a field is optional — the same as leaving it out. Every response now matches the types this reference gives. - 1.2.0 A store's free-shipping offer (spend this much and shipping is free) on the store and on each quote, so an agent can tell the person.
-
1.1.0
The person's saved shipping address (
GET /me/shipping-address, newaddress:readpermission) and cancelling a checkout (POST /checkout/sessions/{checkout_id}/cancel), which frees its items at once. -
1.0.0
Account linking: a person can connect their ShopItUp account to an agent and approve what it may see — their profile and sizes (
GET /me) and their orders (GET /me/orders). Every endpoint is live. - 0.3.0 A US quote carries the sales tax that will be charged at checkout.
-
0.2.0
Checkout: price an order (
POST /checkout/quotes), turn it into a checkout link the person confirms and pays (POST /checkout/sessions), and follow it (GET /checkout/sessions/{checkout_id}). Partners are limited to 3,000 requests an hour as well as 120 a minute; a passing failure answers 503 with Retry-After. - 0.1.0 The catalogue: search, items, stores and categories, for the Canadian and US marketplaces.
Versions before 1.0.0 were a preview, published while the API was being built.