Skip to main content
Most sellers have one shop, so the Your shop API never makes you look up a shop ID first. Every read covers every shop connected to the workspace. If you have several, you narrow a call with shop_id.

Every shop by default

  • Lists and searches (listings, orders, reviews, customers, changes, syncs) return items from every connected shop, unless shop_id narrows them.
  • Stats add up every connected shop, unless shop_id narrows 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.
In an AI assistant, 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
A shop ID that isn’t connected to the workspace returns 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’s summary says how fresh each one is:
  • as_of is the oldest shop’s time, so you never read the answer as newer than it is. It’s null if any shop’s time is unknown.
  • freshness lists each shop’s own as_of.
  • notices name shops by ID: stale_shops for data more than 7 days old, sales_not_covered for shops whose sales Alura doesn’t cover yet. See Coverage.

When an answer needs one shop

An operation that acts on exactly one shop takes shop_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 usd value. When a total mixes currencies, amount and currency are null and only usd is given.
  • Shop stats report in one currency. Shops with different currencies are converted, and the response says so in conversion. Add group_by=shop for each shop’s own totals in by_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.