What endpoints does the Wishlist Hero REST API expose?
The Wishlist Hero REST API lets external applications, such as mobile apps or support tools, read and write wishlists for your store. All endpoints are scoped to one store, authenticated with your API key, and documented as an interactive Swagger spec. Available on Gold Plus plans and above with an active subscription.
Base URL and docs
- Base:
https://your-api-base/api/v1/:storeDomain, where:storeDomainis yourmyshopify.comdomain - Interactive docs: the Swagger UI linked from the app’s REST API settings page
- Your exact endpoint and documentation links are shown in the app after you generate a key
Authentication is a Bearer token: see API authentication and API keys.
Endpoints
Wishlists
| Method | Route | Purpose |
|---|---|---|
| POST | /Wishlist/CreateOrGetExisting/:storeCustomerId? |
Create a wishlist or fetch the existing hash. With storeCustomerId, the customer is validated against Shopify and their email and name back-filled. Without it, a guest wishlist is created |
| GET | /Wishlist/:Hash/items |
List the items in a wishlist |
| GET | /Wishlist/:Hash/Items/:productVariantId |
Check whether a variant is in the wishlist |
| POST | /Wishlist/:Hash/AddItem |
Add an item |
| DELETE | /Wishlist/:Hash/DeleteItem/:productVariantId |
Remove one variant |
| DELETE | /Wishlist/:Hash/DeleteAllItems |
Clear the wishlist |
| POST | /Wishlist/:Hash/addToCartNotification |
Record that an item moved to the cart |
AddItem body
{
"ProductId": "1234567890123",
"ProductVariantId": "1234567890456",
"ProductName": "Classic Leather Jacket",
"ProductPrice": 189.99,
"ProductLink": "/products/classic-leather-jacket",
"ProductImage": "https://cdn.shopify.com/…jpg"
}
ProductHandle , DisplayPrice , and DisplayCurrency are optional; use the display fields when your storefront sells in multiple currencies. Links and handles are sanitized server side. Items added this way are attributed to the REST channel in the wishlist data.
addToCartNotification body
{
"ProductId": "1234567890123",
"ProductVariantId": "1234567890456",
"ProductName": "Classic Leather Jacket",
"ProductPrice": 189.99,
"ProductLink": "/products/classic-leather-jacket",
"StoreCustomerId": "9876543210987",
"CustomerName": "Jamie Doe"
}
This is the call that keeps the “Products added to cart” insight and activity entries accurate for custom frontends: call it when your UI moves a wishlist item into a cart.
Responses
| Response | Meaning |
|---|---|
{ ok: true, … } |
Success; creation endpoints add new: true when the wishlist was created by this call, and return the Hash |
{ ok: false, status: 401 } |
Missing or wrong API key |
{ ok: false, status: 403 } |
Plan does not include the REST API, or the store is not active |
{ ok: false, status: 404 } |
Unknown hash or resource |
Storefront internal API
The storefront widget itself talks to a separate internal API (config, wishlist CRUD, merge on login, price and image updates). It is not part of the public contract and changes without notice: build against the endpoints on this page.
Going further
- API authentication and API keys covers key lifecycle and error handling
- Share links and APIs covers public wishlist access
- The Swagger UI linked in the app always reflects the current routes