Shared wishlists

These endpoints are called from a shopper's browser, so they take your publishable key rather than a secret one. Anything specific to one customer also takes a signed email and timestamp. Identifying the customer explains how to produce the signature.

To call them from your own server instead, send a secret key as a bearer token and leave apiPublishableKey out. See Calling the widget API from a server.

GET /widgets/shared-wishlists/{shareToken}

Read a shared wishlist by its share token, for a store that shows shared lists on a page of its own site instead of the hosted page. No customer signature is needed: the token in the link is the only credential, exactly as on the hosted page. A private list, an unknown token and a store with sharing switched off all answer the same 404, so tokens can't be probed

Path parameters

shareTokenstringrequired

The share token from the link the visitor arrived on: the meiseiWishlist query parameter, or wherever {token} was placed in the store's share page address.

Query parameters

apiPublishableKeystring

Your organization's publishable key, from Settings, API keys. Leave it out when the request carries a secret key as a bearer token instead, which is how a server calls these endpoints.

Request
curl \
  "https://your-store.meisei.app/api/widgets/shared-wishlists/string?apiPublishableKey=pk_YOUR_PUBLISHABLE_KEY"
Response
{
  "name": "string",
  "ownerFirstName": "string",
  "showPrices": true,
  "purchaseMarkingEnabled": true,
  "items": [
    {
      "id": "A4Ws1igz",
      "quantity": 0,
      "note": "string",
      "imageUrl": "string",
      "purchasedQuantity": 0,
      "purchases": ["..."],
      "priceCents": 0,
      "currencyCode": "string",
      "product": {
        "title": "...",
        "imageUrl": "...",
        "url": "..."
      },
      "variant": {
        "title": "...",
        "imageUrl": "..."
      }
    }
  ]
}

POST /widgets/shared-wishlists/{shareToken}/items/{itemId}/purchase

Mark an item on a shared wishlist as purchased, as a visitor to the store's own shared list page. The answer carries a one-time undoToken: keep it in the visitor's browser, because it is the only way to undo the marking, and it stops working 30 minutes later. Refused while the store has purchase marking switched off, and once the item is fully purchased. Rate limited per share token

Path parameters

shareTokenstringrequired

The share token from the link the visitor arrived on: the meiseiWishlist query parameter, or wherever {token} was placed in the store's share page address.

itemIdstringrequired

The ID of the item, from the shared list's items.

Query parameters

apiPublishableKeystring

Your organization's publishable key, from Settings, API keys. Leave it out when the request carries a secret key as a bearer token instead, which is how a server calls these endpoints.

Body parameters

quantityinteger

How many the visitor bought. Defaults to 1, and can't exceed what is still needed.

notestring

A short note other visitors see, such as who bought it.

browserFingerprintstring | null

An optional browser fingerprint, kept hashed for abuse tracing only.

Request
curl \
  -X POST \
  "https://your-store.meisei.app/api/widgets/shared-wishlists/string/items/A4Ws1igz/purchase?apiPublishableKey=pk_YOUR_PUBLISHABLE_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "quantity": 0,
  "note": "string",
  "browserFingerprint": "string"
}'
Response
{
  "data": {
    "name": "string",
    "ownerFirstName": "string",
    "showPrices": true,
    "purchaseMarkingEnabled": true,
    "items": [
      {
        "id": "...",
        "quantity": "...",
        "note": "...",
        "imageUrl": "...",
        "purchasedQuantity": "...",
        "purchases": "...",
        "priceCents": "...",
        "currencyCode": "...",
        "product": "...",
        "variant": "..."
      }
    ]
  },
  "undoToken": "string",
  "undoExpiresAt": "2025-01-15T09:30:00Z"
}

POST /widgets/shared-wishlists/{shareToken}/items/{itemId}/undo

Undo a marking made through the purchase endpoint, within 30 minutes and only with the undoToken it answered with. Rate limited per share token

Path parameters

shareTokenstringrequired

The share token from the link the visitor arrived on: the meiseiWishlist query parameter, or wherever {token} was placed in the store's share page address.

itemIdstringrequired

The ID of the item, from the shared list's items.

Query parameters

apiPublishableKeystring

Your organization's publishable key, from Settings, API keys. Leave it out when the request carries a secret key as a bearer token instead, which is how a server calls these endpoints.

Body parameters

undoTokenstringrequired

The undoToken the marking answered with. Only the browser holding it can undo.

Request
curl \
  -X POST \
  "https://your-store.meisei.app/api/widgets/shared-wishlists/string/items/A4Ws1igz/undo?apiPublishableKey=pk_YOUR_PUBLISHABLE_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "undoToken": "string"
}'
Response
{
  "name": "string",
  "ownerFirstName": "string",
  "showPrices": true,
  "purchaseMarkingEnabled": true,
  "items": [
    {
      "id": "A4Ws1igz",
      "quantity": 0,
      "note": "string",
      "imageUrl": "string",
      "purchasedQuantity": 0,
      "purchases": ["..."],
      "priceCents": 0,
      "currencyCode": "string",
      "product": {
        "title": "...",
        "imageUrl": "...",
        "url": "..."
      },
      "variant": {
        "title": "...",
        "imageUrl": "..."
      }
    }
  ]
}