Add item to wishlist
curl --request POST \
--url https://store.salesive.com/api/v1/wishlist \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'x-shop-id: <api-key>' \
--data '
{
"productId": "<string>",
"foodId": "<string>",
"serviceId": "<string>",
"variantId": "<string>"
}
'import requests
url = "https://store.salesive.com/api/v1/wishlist"
payload = {
"productId": "<string>",
"foodId": "<string>",
"serviceId": "<string>",
"variantId": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"x-shop-id": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
Authorization: 'Bearer <token>',
'x-shop-id': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
productId: '<string>',
foodId: '<string>',
serviceId: '<string>',
variantId: '<string>'
})
};
fetch('https://store.salesive.com/api/v1/wishlist', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://store.salesive.com/api/v1/wishlist",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'productId' => '<string>',
'foodId' => '<string>',
'serviceId' => '<string>',
'variantId' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"x-shop-id: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://store.salesive.com/api/v1/wishlist"
payload := strings.NewReader("{\n \"productId\": \"<string>\",\n \"foodId\": \"<string>\",\n \"serviceId\": \"<string>\",\n \"variantId\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("x-shop-id", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://store.salesive.com/api/v1/wishlist")
.header("Authorization", "Bearer <token>")
.header("x-shop-id", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"productId\": \"<string>\",\n \"foodId\": \"<string>\",\n \"serviceId\": \"<string>\",\n \"variantId\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://store.salesive.com/api/v1/wishlist")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["x-shop-id"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"productId\": \"<string>\",\n \"foodId\": \"<string>\",\n \"serviceId\": \"<string>\",\n \"variantId\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"status": 123,
"success": true,
"message": "<string>",
"data": {
"_id": "<string>",
"user": "<string>",
"shop": "<string>",
"items": [
{
"product": {
"_id": "<string>",
"name": "<string>",
"price": 123,
"images": [
"<string>"
],
"formattedPrice": "<string>",
"sku": "<string>"
},
"addedAt": "2023-11-07T05:31:56Z",
"variant": "<string>",
"variantAttributes": {}
}
],
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z"
}
}Wishlist
Add item to wishlist
Add a product, food, or service item to the authenticated shopper’s wishlist.
POST
/
wishlist
Add item to wishlist
curl --request POST \
--url https://store.salesive.com/api/v1/wishlist \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'x-shop-id: <api-key>' \
--data '
{
"productId": "<string>",
"foodId": "<string>",
"serviceId": "<string>",
"variantId": "<string>"
}
'import requests
url = "https://store.salesive.com/api/v1/wishlist"
payload = {
"productId": "<string>",
"foodId": "<string>",
"serviceId": "<string>",
"variantId": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"x-shop-id": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
Authorization: 'Bearer <token>',
'x-shop-id': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
productId: '<string>',
foodId: '<string>',
serviceId: '<string>',
variantId: '<string>'
})
};
fetch('https://store.salesive.com/api/v1/wishlist', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://store.salesive.com/api/v1/wishlist",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'productId' => '<string>',
'foodId' => '<string>',
'serviceId' => '<string>',
'variantId' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"x-shop-id: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://store.salesive.com/api/v1/wishlist"
payload := strings.NewReader("{\n \"productId\": \"<string>\",\n \"foodId\": \"<string>\",\n \"serviceId\": \"<string>\",\n \"variantId\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("x-shop-id", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://store.salesive.com/api/v1/wishlist")
.header("Authorization", "Bearer <token>")
.header("x-shop-id", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"productId\": \"<string>\",\n \"foodId\": \"<string>\",\n \"serviceId\": \"<string>\",\n \"variantId\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://store.salesive.com/api/v1/wishlist")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["x-shop-id"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"productId\": \"<string>\",\n \"foodId\": \"<string>\",\n \"serviceId\": \"<string>\",\n \"variantId\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"status": 123,
"success": true,
"message": "<string>",
"data": {
"_id": "<string>",
"user": "<string>",
"shop": "<string>",
"items": [
{
"product": {
"_id": "<string>",
"name": "<string>",
"price": 123,
"images": [
"<string>"
],
"formattedPrice": "<string>",
"sku": "<string>"
},
"addedAt": "2023-11-07T05:31:56Z",
"variant": "<string>",
"variantAttributes": {}
}
],
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z"
}
}Request
POST /wishlist
Authorization: Bearer {{token}}
x-shop-id: {{shopId}}
Content-Type: application/json
{
"productId": "69fb494e51280f9f65d059ae"
}
Headers
| Header | Type | Description |
|---|---|---|
Authorization | string | Provide the customer token as Bearer <jwt>. |
x-shop-id | string | Identify the shop that owns the wishlist. |
Content-Type | string | Always set to application/json. |
Body parameters
| Field | Type | Required | Description |
|---|---|---|---|
productId | string | No | Product identifier (ecommerce). Provide exactly one of productId, foodId, or serviceId. |
foodId | string | No | Food item identifier (restaurant stores). |
serviceId | string | No | Service identifier (business stores). |
variantId | string | No | Variant identifier. Only valid for product wishlist items. |
Wishlist items are typed: a product item returns a populated
product, a food item returns food (with a foodId field), and a service item returns service (with a serviceId field).Successful response
{
"status": 200,
"success": true,
"message": "Item added to wishlist",
"data": {
"_id": "693c048b5b24f53cda947ddb",
"user": "69360693a7a8f7dc8ae32d6d",
"shop": "68b8f52575da81b332af29f1",
"items": [
{
"product": {
"_id": "69fb494e51280f9f65d059ae",
"images": [
"https://cdn.salesive.com/products/wristwatch.webp"
],
"name": "Wristwatch",
"price": 45000,
"promoPrice": null,
"formattedPrice": "45000.00",
"promoActive": false,
"formattedPromoPrice": null,
"isAvailable": true,
"lowestPrice": 45000,
"highestPrice": 45000,
"image": "https://cdn.salesive.com/products/wristwatch.webp",
"plainDescription": "High quality and affordable wristwatch",
"id": "69fb494e51280f9f65d059ae"
},
"addedAt": "2026-06-09T09:10:33.816Z"
}
],
"createdAt": "2025-12-12T12:03:23.104Z",
"updatedAt": "2026-06-09T09:10:33.818Z",
"__v": 3,
"id": "693c048b5b24f53cda947ddb"
}
}
Error response
{
"status": 404,
"success": false,
"message": "Product not found",
"data": {}
}
Authorizations
JWT issued by the Salesive Store API for authenticated shoppers.
Optional storefront identifier sent as a header to scope responses to a specific shop. Try It requests remember this value once provided.
Headers
Optional identifier that scopes responses to a specific storefront when the referer cannot be inferred.
Body
application/json
- Option 1
- Option 2
- Option 3
Add a product, food, or service item to the wishlist. Provide exactly one of productId, foodId, or serviceId.
Product identifier to add to wishlist (ecommerce stores).
Food item identifier to add to wishlist (restaurant stores).
Service identifier to add to wishlist (business stores).
Optional variant identifier (product wishlist items only).
Was this page helpful?
⌘I

