Find courier lockers and counters
- Credentials
- OAuth access token
- Scopes
orders:read
Neither q nor a point returns lockers: []. A read, so it is not write-gated: a store whose plan has lapsed can still search.
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.
q?stringFree-text search.
lat?numberWith lng: search near a point (0,0 is ignored).
lng?numberOK
application/json- response
data*curl -X GET 'https://api.shopeazy.co/v1/merchant/stores/<storeId>/delivery/lockers' \ -H 'Authorization: Bearer <access_token>'{ "data": { "lockers": [ { "id": "string", "name": "string", "courier": "string", "provider": "string", "type": "locker", "addressLine": "string", "localArea": "string", "city": "string", "province": "string", "postalCode": "string", "openingHours": "string", "distanceM": 0 } ] }}What is going in the box, and what it will be billed at GET
Shown before booking a courier. Only lines that need shipping count; `lineIds` narrows it to the lines of one parcel of a split order. Nothing is quoted or booked: `quoteDelivery` prices it and `bookCollection` books it. A read, so it is not write-gated. Access: OAuth scope `orders:read`; not write-gated.
Delivery settings and couriers GET
Access: OAuth scope `store:read`; owner/admin only; not write-gated.