VANITYPASS
White-label APIWishlists

Wishlists

Let users save travel experiences to named wishlists — create, read, update, and delete collections.

Wishlists

Wishlists let your users save travel experiences into named collections — "Tokyo 2026", "Anniversary trip", "Someday" — so they can come back to them later. Each wishlist has a name, an optional description, and a set of items, where every item points at an experience by its product_code.

All wishlist endpoints are authenticated as the end user. Every request must send:

  • Authorization: Bearer <JWT> — the user's access token
  • X-App-Id: <uuid> — your white-label app identifier
  • X-Environment: Sandbox | Production — target environment

Wishlists are scoped to the authenticated user, so no user identifier is passed in the path — the JWT determines ownership.

Lifecycle

1. POST   /v1/travel/experiences/wishlists            → create a wishlist
2. GET    /v1/travel/experiences/wishlists            → list the user's wishlists
3. GET    /v1/travel/experiences/wishlists/{id}       → read one wishlist with its items
4. PUT    /v1/travel/experiences/wishlists/{id}       → rename or re-describe it
5. POST   /v1/travel/experiences/wishlists/{id}/items → add an experience (see Wishlist Items)
6. DELETE /v1/travel/experiences/wishlists/{id}       → delete it

List Wishlists

GET /v1/travel/experiences/wishlists

Returns a summary of every wishlist owned by the authenticated user. Each entry is a lightweight summary (with an item count and optional cover image) rather than the full item list — fetch a single wishlist to get its items.

The response is a WishlistsResponse object with a wishlists array. Each summary contains:

FieldTypeNotes
idstringWishlist identifier.
namestringWishlist name.
item_countintegerNumber of items in the wishlist (≥ 0).
created_atinteger (int64)Creation timestamp.
updated_atinteger (int64)Last-updated timestamp.
descriptionstring | nullOptional description.
cover_imagestring | nullOptional cover image URL.
Sandbox-only. Try-it requests target https://cloud.vanitypass.com with X-Environment: Sandbox. No real bookings or charges. Production access: contact us.
GET/v1/travel/experiences/wishlists

Sandbox credentials

Keys never leave your browser — they are sent only to cloud.vanitypass.com with X-Environment: Sandbox.

curl -X GET 'https://cloud.vanitypass.com/v1/travel/experiences/wishlists' \
  -H 'Content-Type: application/json' \
  -H 'X-Environment: Sandbox' \

Create Wishlist

POST /v1/travel/experiences/wishlists

Creates a new, empty wishlist for the user. The response is the full Wishlist object (with an empty items array). Add experiences afterward via the items endpoint.

FieldTypeRequiredNotes
namestringYesDisplay name for the wishlist.
descriptionstring | nullNoOptional description.
Sandbox-only. Try-it requests target https://cloud.vanitypass.com with X-Environment: Sandbox. No real bookings or charges. Production access: contact us.
POST/v1/travel/experiences/wishlists

Sandbox credentials

Keys never leave your browser — they are sent only to cloud.vanitypass.com with X-Environment: Sandbox.

curl -X POST 'https://cloud.vanitypass.com/v1/travel/experiences/wishlists' \
  -H 'Content-Type: application/json' \
  -H 'X-Environment: Sandbox' \
  -d '{"name":"Tokyo 2026","description":"Experiences to book for the spring trip"}'

Get Wishlist

GET /v1/travel/experiences/wishlists/{wishlist_id}

Returns a single wishlist including its full items array. Use this when rendering the wishlist detail view.

ParameterInTypeNotes
wishlist_idpathstring (uuid)Wishlist UUID.

The response is a Wishlist object:

FieldTypeNotes
idstringWishlist identifier.
namestringWishlist name.
user_idstringOwner of the wishlist.
itemsarrayList of WishlistItem objects (see Wishlist Items).
created_atinteger (int64)Creation timestamp.
updated_atinteger (int64)Last-updated timestamp.
descriptionstring | nullOptional description.
Sandbox-only. Try-it requests target https://cloud.vanitypass.com with X-Environment: Sandbox. No real bookings or charges. Production access: contact us.
GET/v1/travel/experiences/wishlists/{wishlist_id}

Sandbox credentials

Keys never leave your browser — they are sent only to cloud.vanitypass.com with X-Environment: Sandbox.

curl -X GET 'https://cloud.vanitypass.com/v1/travel/experiences/wishlists/{wishlist_id}' \
  -H 'Content-Type: application/json' \
  -H 'X-Environment: Sandbox' \

Update Wishlist

PUT /v1/travel/experiences/wishlists/{wishlist_id}

Updates a wishlist's name and/or description. Both fields are optional — send only the fields you want to change. This endpoint does not modify items; use the items endpoints for that. Returns the updated Wishlist.

ParameterInTypeNotes
wishlist_idpathstring (uuid)Wishlist UUID.
FieldTypeRequiredNotes
namestring | nullNoNew name. Omit or send null to leave unchanged.
descriptionstring | nullNoNew description. Omit or send null to leave unchanged.
Sandbox-only. Try-it requests target https://cloud.vanitypass.com with X-Environment: Sandbox. No real bookings or charges. Production access: contact us.
PUT/v1/travel/experiences/wishlists/{wishlist_id}

Sandbox credentials

Keys never leave your browser — they are sent only to cloud.vanitypass.com with X-Environment: Sandbox.

curl -X PUT 'https://cloud.vanitypass.com/v1/travel/experiences/wishlists/{wishlist_id}' \
  -H 'Content-Type: application/json' \
  -H 'X-Environment: Sandbox' \
  -d '{"name":"Tokyo — Spring 2026","description":"Finalized shortlist"}'

Delete Wishlist

DELETE /v1/travel/experiences/wishlists/{wishlist_id}

Permanently deletes a wishlist and all of its items.

ParameterInTypeNotes
wishlist_idpathstring (uuid)Wishlist UUID.
Sandbox-only. Try-it requests target https://cloud.vanitypass.com with X-Environment: Sandbox. No real bookings or charges. Production access: contact us.
DELETE/v1/travel/experiences/wishlists/{wishlist_id}

Sandbox credentials

Keys never leave your browser — they are sent only to cloud.vanitypass.com with X-Environment: Sandbox.

curl -X DELETE 'https://cloud.vanitypass.com/v1/travel/experiences/wishlists/{wishlist_id}' \
  -H 'Content-Type: application/json' \
  -H 'X-Environment: Sandbox' \

Wishlisted Product Codes

GET /v1/travel/experiences/wishlists/product-codes

Returns every experience product_code the user has saved across all of their wishlists. This is handy for annotating experience search or listing results with a "saved" indicator without fetching each wishlist individually.

Sandbox-only. Try-it requests target https://cloud.vanitypass.com with X-Environment: Sandbox. No real bookings or charges. Production access: contact us.
GET/v1/travel/experiences/wishlists/product-codes

Sandbox credentials

Keys never leave your browser — they are sent only to cloud.vanitypass.com with X-Environment: Sandbox.

curl -X GET 'https://cloud.vanitypass.com/v1/travel/experiences/wishlists/product-codes' \
  -H 'Content-Type: application/json' \
  -H 'X-Environment: Sandbox' \