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 tokenX-App-Id: <uuid>— your white-label app identifierX-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:
| Field | Type | Notes |
|---|---|---|
id | string | Wishlist identifier. |
name | string | Wishlist name. |
item_count | integer | Number of items in the wishlist (≥ 0). |
created_at | integer (int64) | Creation timestamp. |
updated_at | integer (int64) | Last-updated timestamp. |
description | string | null | Optional description. |
cover_image | string | null | Optional cover image URL. |
https://cloud.vanitypass.com with X-Environment: Sandbox. No real bookings or charges. Production access: contact us./v1/travel/experiences/wishlistsSandbox 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.
| Field | Type | Required | Notes |
|---|---|---|---|
name | string | Yes | Display name for the wishlist. |
description | string | null | No | Optional description. |
https://cloud.vanitypass.com with X-Environment: Sandbox. No real bookings or charges. Production access: contact us./v1/travel/experiences/wishlistsSandbox 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.
| Parameter | In | Type | Notes |
|---|---|---|---|
wishlist_id | path | string (uuid) | Wishlist UUID. |
The response is a Wishlist object:
| Field | Type | Notes |
|---|---|---|
id | string | Wishlist identifier. |
name | string | Wishlist name. |
user_id | string | Owner of the wishlist. |
items | array | List of WishlistItem objects (see Wishlist Items). |
created_at | integer (int64) | Creation timestamp. |
updated_at | integer (int64) | Last-updated timestamp. |
description | string | null | Optional description. |
https://cloud.vanitypass.com with X-Environment: Sandbox. No real bookings or charges. Production access: contact us./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.
| Parameter | In | Type | Notes |
|---|---|---|---|
wishlist_id | path | string (uuid) | Wishlist UUID. |
| Field | Type | Required | Notes |
|---|---|---|---|
name | string | null | No | New name. Omit or send null to leave unchanged. |
description | string | null | No | New description. Omit or send null to leave unchanged. |
https://cloud.vanitypass.com with X-Environment: Sandbox. No real bookings or charges. Production access: contact us./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.
| Parameter | In | Type | Notes |
|---|---|---|---|
wishlist_id | path | string (uuid) | Wishlist UUID. |
https://cloud.vanitypass.com with X-Environment: Sandbox. No real bookings or charges. Production access: contact us./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.
https://cloud.vanitypass.com with X-Environment: Sandbox. No real bookings or charges. Production access: contact us./v1/travel/experiences/wishlists/product-codesSandbox 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' \