Open a shared list
curl --request GET \
--url https://{host}/api/v1/shared-lists/{shareRef} \
--header 'X-Shopify-ApiKey: <api-key>' \
--header 'X-Shopify-CustomerId: <api-key>' \
--header 'X-Shopify-Shop: <api-key>'const options = {
method: 'GET',
headers: {
'X-Shopify-ApiKey': '<api-key>',
'X-Shopify-Shop': '<api-key>',
'X-Shopify-CustomerId': '<api-key>'
}
};
fetch('https://{host}/api/v1/shared-lists/{shareRef}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://{host}/api/v1/shared-lists/{shareRef}"
headers = {
"X-Shopify-ApiKey": "<api-key>",
"X-Shopify-Shop": "<api-key>",
"X-Shopify-CustomerId": "<api-key>"
}
response = requests.get(url, headers=headers)
print(response.text)import Foundation
let url = URL(string: "https://{host}/api/v1/shared-lists/{shareRef}")!
var request = URLRequest(url: url)
request.httpMethod = "GET"
request.timeoutInterval = 10
request.allHTTPHeaderFields = [
"X-Shopify-ApiKey": "<api-key>",
"X-Shopify-Shop": "<api-key>",
"X-Shopify-CustomerId": "<api-key>"
]
let (data, _) = try await URLSession.shared.data(for: request)
print(String(decoding: data, as: UTF8.self))val client = OkHttpClient()
val request = Request.Builder()
.url("https://{host}/api/v1/shared-lists/{shareRef}")
.get()
.addHeader("X-Shopify-ApiKey", "<api-key>")
.addHeader("X-Shopify-Shop", "<api-key>")
.addHeader("X-Shopify-CustomerId", "<api-key>")
.build()
val response = client.newCall(request).execute(){
"data": {
"id": 123,
"name": "<string>",
"shop": "<string>",
"isPublic": true,
"createdAt": "2023-11-07T05:31:56Z",
"isSharedView": true,
"isOwner": true,
"items": [
{
"id": 123,
"wishlistId": 123,
"productId": "<string>",
"variantId": "<string>",
"title": "<string>",
"variantTitle": "<string>",
"handle": "<string>",
"image": "<string>",
"price": "<string>",
"currency": "<string>",
"availableForSale": true,
"metafields": {},
"variants": {},
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z"
}
],
"sharedAt": "2023-11-07T05:31:56Z",
"canSave": true,
"savedAs": {
"wishlistId": 123,
"wishlistName": "<string>"
},
"shareId": "<string>",
"shareRecipient": "<string>",
"isLinkShare": true,
"isLinkViewer": true,
"isRevoked": true,
"sharedWith": [
{
"name": "<string>",
"email": "<string>",
"isGuest": true
}
],
"sharedBy": null
},
"pagination": {
"page": 123,
"limit": 123,
"totalItems": 123,
"totalPages": 123,
"hasNextPage": true,
"hasPrevPage": true
},
"meta": {
"tabCounts": {
"mine": 123,
"sharedWithMe": 123,
"sharedByMe": 123
}
}
}{
"title": "Unauthenticated",
"status": 401,
"code": "UNAUTHENTICATED",
"message": "Invalid API Key",
"messageKey": null
}{
"title": "Guest disabled",
"status": 403,
"code": "GUEST_DISABLED",
"message": "Please log in to save items to your wishlist.",
"messageKey": "error_guest_login_required"
}{
"title": "Wishlist not found",
"status": 404,
"code": "WISHLIST_NOT_FOUND",
"message": "Wishlist not found",
"messageKey": "error_wishlist_not_found"
}{
"title": "Version retired",
"status": 410,
"code": "VERSION_RETIRED",
"message": "Please update the app to continue.",
"messageKey": "error_app_update_required"
}{
"title": "Validation failed",
"status": 422,
"code": "VALIDATION_FAILED",
"message": "name is required.",
"messageKey": null,
"errors": [
{
"field": "name",
"message": "name is required."
}
]
}{
"title": "Rate limited",
"status": 429,
"code": "RATE_LIMITED",
"message": "Too many requests. Please try again in a minute.",
"messageKey": "error_too_many_requests"
}{
"title": "Internal error",
"status": 500,
"code": "INTERNAL_ERROR",
"message": "Something went wrong. Please try again.",
"messageKey": "error_something_went_wrong"
}{
"title": "Share verify failed",
"status": 503,
"code": "SHARE_VERIFY_FAILED",
"message": "We couldn't confirm your account just now. Please try again.",
"messageKey": "error_share_verify_failed"
}Shared lists
Open a shared list
GET
/
shared-lists
/
{shareRef}
Open a shared list
curl --request GET \
--url https://{host}/api/v1/shared-lists/{shareRef} \
--header 'X-Shopify-ApiKey: <api-key>' \
--header 'X-Shopify-CustomerId: <api-key>' \
--header 'X-Shopify-Shop: <api-key>'const options = {
method: 'GET',
headers: {
'X-Shopify-ApiKey': '<api-key>',
'X-Shopify-Shop': '<api-key>',
'X-Shopify-CustomerId': '<api-key>'
}
};
fetch('https://{host}/api/v1/shared-lists/{shareRef}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://{host}/api/v1/shared-lists/{shareRef}"
headers = {
"X-Shopify-ApiKey": "<api-key>",
"X-Shopify-Shop": "<api-key>",
"X-Shopify-CustomerId": "<api-key>"
}
response = requests.get(url, headers=headers)
print(response.text)import Foundation
let url = URL(string: "https://{host}/api/v1/shared-lists/{shareRef}")!
var request = URLRequest(url: url)
request.httpMethod = "GET"
request.timeoutInterval = 10
request.allHTTPHeaderFields = [
"X-Shopify-ApiKey": "<api-key>",
"X-Shopify-Shop": "<api-key>",
"X-Shopify-CustomerId": "<api-key>"
]
let (data, _) = try await URLSession.shared.data(for: request)
print(String(decoding: data, as: UTF8.self))val client = OkHttpClient()
val request = Request.Builder()
.url("https://{host}/api/v1/shared-lists/{shareRef}")
.get()
.addHeader("X-Shopify-ApiKey", "<api-key>")
.addHeader("X-Shopify-Shop", "<api-key>")
.addHeader("X-Shopify-CustomerId", "<api-key>")
.build()
val response = client.newCall(request).execute(){
"data": {
"id": 123,
"name": "<string>",
"shop": "<string>",
"isPublic": true,
"createdAt": "2023-11-07T05:31:56Z",
"isSharedView": true,
"isOwner": true,
"items": [
{
"id": 123,
"wishlistId": 123,
"productId": "<string>",
"variantId": "<string>",
"title": "<string>",
"variantTitle": "<string>",
"handle": "<string>",
"image": "<string>",
"price": "<string>",
"currency": "<string>",
"availableForSale": true,
"metafields": {},
"variants": {},
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z"
}
],
"sharedAt": "2023-11-07T05:31:56Z",
"canSave": true,
"savedAs": {
"wishlistId": 123,
"wishlistName": "<string>"
},
"shareId": "<string>",
"shareRecipient": "<string>",
"isLinkShare": true,
"isLinkViewer": true,
"isRevoked": true,
"sharedWith": [
{
"name": "<string>",
"email": "<string>",
"isGuest": true
}
],
"sharedBy": null
},
"pagination": {
"page": 123,
"limit": 123,
"totalItems": 123,
"totalPages": 123,
"hasNextPage": true,
"hasPrevPage": true
},
"meta": {
"tabCounts": {
"mine": 123,
"sharedWithMe": 123,
"sharedByMe": 123
}
}
}{
"title": "Unauthenticated",
"status": 401,
"code": "UNAUTHENTICATED",
"message": "Invalid API Key",
"messageKey": null
}{
"title": "Guest disabled",
"status": 403,
"code": "GUEST_DISABLED",
"message": "Please log in to save items to your wishlist.",
"messageKey": "error_guest_login_required"
}{
"title": "Wishlist not found",
"status": 404,
"code": "WISHLIST_NOT_FOUND",
"message": "Wishlist not found",
"messageKey": "error_wishlist_not_found"
}{
"title": "Version retired",
"status": 410,
"code": "VERSION_RETIRED",
"message": "Please update the app to continue.",
"messageKey": "error_app_update_required"
}{
"title": "Validation failed",
"status": 422,
"code": "VALIDATION_FAILED",
"message": "name is required.",
"messageKey": null,
"errors": [
{
"field": "name",
"message": "name is required."
}
]
}{
"title": "Rate limited",
"status": 429,
"code": "RATE_LIMITED",
"message": "Too many requests. Please try again in a minute.",
"messageKey": "error_too_many_requests"
}{
"title": "Internal error",
"status": 500,
"code": "INTERNAL_ERROR",
"message": "Something went wrong. Please try again.",
"messageKey": "error_something_went_wrong"
}{
"title": "Share verify failed",
"status": 503,
"code": "SHARE_VERIFY_FAILED",
"message": "We couldn't confirm your account just now. Please try again.",
"messageKey": "error_share_verify_failed"
}Authorizations
ApiKey & Shop & CustomerIdApiKey & Shop & SessionId
Store API key from Wishlist settings > API Settings.
The store's myshopify domain, e.g. your-store.myshopify.com.
Numeric Shopify customer id of a logged-in shopper. Verified against the store on every call.
Path Parameters
A numeric share id, an sh_ public share id, or the shareToken value from a share link URL.
Query Parameters
Required range:
x >= 1Page size. Server default is 5 when omitted.
Required range:
1 <= x <= 50Language for product titles (Storefront API).
Market country code for prices.
true or 1 adds meta.tabCounts (page 1 only).
Available options:
true, 1, false, 0