Who is on a tour departure
- Credentials
- OAuth access token
- Scopes
orders:read
Each party (order, contact, seats, pickup, paid) and each traveller with their answers and whether they were ticked off. Names and answers are the shopper's own words (untrusted text). With no departure, the next departure that has bookings; manifest is null when nobody is booked on an upcoming one.
Access: OAuth scope orders:read; not write-gated.
merchantOAuth orders:readAuthorizationBearer <token>OAuth 2.1 (authorization code + PKCE S256, public clients, dynamic registration) for connected AI apps. Effective power is scopes granted AND the person's role today AND the plan. orders:refund, billing:write and team:write are opt-in on the consent screen. Write implies read for marketing:read and messages:read, so a grant holding marketing:write passes a marketing:read check, and messages:send passes messages:read.
Scope: orders:read
storeId*stringA store the person can reach. Any other id answers 404, never 403.
itemId*stringdeparture?integerThe start of the departure, epoch milliseconds.
OK
application/json- response
data*curl -X GET 'https://api.shopeazy.co/v1/merchant/stores/<storeId>/tours/<itemId>/manifest' \ -H 'Authorization: Bearer <access_token>'{ "data": { "listing": "Botanical garden walk", "manifest": null, "otherDepartures": [] }}The link a customer pays an order at GET
`route` is `shop` (the shop's own pay page, `payUrl`), `provider` (only the card partner's hosted link can be made, which needs the order page) or null (nothing can take this payment online yet). A paid order has `paid: true` and no link. Access: OAuth scope `orders:write`; not write-gated.
Live courier prices for this order POST
A POST because it calls the couriers, but changes nothing, so it is not write-gated: a store whose plan has lapsed can still ask for a price. Access: OAuth scope `orders:read`; not write-gated.