Wishlists
All endpoints require a valid JWT token in the Authorization header.
Get a wishlist
GET /v1/wishlists/{customerId}Returns the customer’s wishlist. Supports pagination.
Query parameters
| Parameter | Default | Description |
|---|---|---|
limit | 50 | Number of items to return (max 200) |
offset | 0 | Number of items to skip |
Response
{ "ok": true, "data": { "items": [ { "productId": "8012345678", "variantId": "44012345678", "addedAt": "2025-12-01T10:30:00.000Z" } ], "count": 1, "total": 1, "has_more": false }}Add an item
POST /v1/wishlists/{customerId}/itemsRequest body
{ "product_id": "8012345678", "variant_id": "44012345678"}variant_id is optional. If omitted, the default variant is used.
Response
{ "ok": true, "data": { "added": true, "itemCount": 5 }}Remove an item
DELETE /v1/wishlists/{customerId}/items/{productId}Response
{ "ok": true, "data": { "removed": true, "itemCount": 4 }}Merge wishlists
Merge a guest (cookie) wishlist into a customer’s account wishlist. Call this when a customer logs in.
POST /v1/wishlists/{customerId}/mergeRequest body
{ "items": [ { "productId": "8012345678", "addedAt": "2025-12-01T10:30:00.000Z" }, { "productId": "8098765432", "addedAt": "2025-12-02T14:00:00.000Z" } ]}Response
{ "ok": true, "data": { "merged": true, "itemCount": 7 }}Share a wishlist
Generate a shareable link for a customer’s wishlist. Requires Starter plan or above.
GET /v1/wishlists/{customerId}/shareResponse
{ "ok": true, "data": { "shareToken": "abc123def456", "shareUrl": "https://your-store.myshopify.com/apps/wishlist/shared/abc123def456", "expiresAt": "2026-01-15T00:00:00.000Z" }}Get a shared wishlist
Fetch a wishlist by its share token. No authentication required.
GET /v1/wishlists/shared/{shareToken}Response
{ "ok": true, "data": { "items": [ { "productId": "8012345678", "variantId": "44012345678", "addedAt": "2025-12-01T10:30:00.000Z" } ], "count": 3, "expiresAt": "2026-01-15T00:00:00.000Z" }}