shop_id.
Every shop by default
- Lists and searches (listings, orders, reviews, customers, changes, syncs) return items from every connected shop, unless
shop_idnarrows them. - Stats add up every connected shop, unless
shop_idnarrows them. - Every item carries its
shop_id, so you can tell the shops apart in one list. - IDs of listings, orders, reviews and customers are unique on Etsy, so their paths take no shop ID:
GET /v1/workspace/listings/{id}finds the listing in whichever of your shops holds it.
list_my_shops returns the shops and their IDs. Call it first. The shops can change between conversations, because the workspace can connect or remove a shop, and a grant can switch workspace.
Narrow a call with shop_id
On REST, shop_id takes one shop or several, comma-separated or repeated: ?shop_id=22841907,30577120. MCP tools take shop_id as a JSON array, such as {"shop_id": ["22841907", "30577120"]}, except get_my_shop, which always requires shop_id, one shop as a string, even when the workspace has one shop, and start_my_sync, which takes one shop as a string or none for every shop.
Response
404 not_found for the whole call. Alura never drops the unknown ID and answers for the rest, and it never widens the call to other shops.
Freshness across shops
Each shop is synced on its own, so the shops in one answer can be stored at different times. A list’ssummary says how fresh each one is:
as_ofis the oldest shop’s time, so you never read the answer as newer than it is. It’snullif any shop’s time is unknown.freshnesslists each shop’s ownas_of.noticesname shops by ID:stale_shopsfor data more than 7 days old,sales_not_coveredfor shops whose sales Alura doesn’t cover yet. See Coverage.
When an answer needs one shop
An operation that acts on exactly one shop takesshop_id, and it’s optional when the workspace has only one. With several shops, leaving it out returns 400 shop_id_required, and its shops field lists each shop’s id and name to choose from. The same rule applies on REST and MCP. Every read in this version covers several shops, so no read returns it.
Shops in the same answer
- Customers are merged across shops. A buyer who ordered from two of your shops is one customer, with both shops in
shop_ids, and their orders and spending added up. Only the shops you selected count. The name and location come from the shop of their latest order. Guest buyers, who checked out without an Etsy account, aren’t customers. - Money in several currencies. A listing’s or customer’s money stays in its own currency with a
usdvalue. When a total mixes currencies,amountandcurrencyarenulland onlyusdis given. - Shop stats report in one currency. Shops with different currencies are converted, and the response says so in
conversion. Addgroup_by=shopfor each shop’s own totals inby_shop. See Shop stats. - Sales sorts leave out shops whose sales Alura doesn’t cover for the period, and name them in
sales_not_covered. The other shops are still ranked.
Next steps
Connect and sync
Connect a shop and start a sync.
Coverage
Why a sales number can be null.
Buyer data
Scopes, permissions and what reaches your AI client.