> For the complete documentation index, see [llms.txt](https://the-wishlist-documentation.gitbook.io/the-wishlist-documentation-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://the-wishlist-documentation.gitbook.io/the-wishlist-documentation-docs/wishlist-rest-api/wishlists/getwishlistswithoutitemsbycustomer.md).

# getWishlistsWithoutItemsByCustomer

Get all wishlists belonging to a customer, identified by customerId, customerRef or email.

No items are returned. This endpoint returns wishlist metadata, including the wishlist ID and item count of each wishlist, and the total items across all wishlists.

For the best performance, use this endpoint to return the wishlists and item counts, and a separate call to return wishlist items (e.g. `GET /api/wishlist/item/variantRefs`).

**Customers with no wishlists**

* If the customer has no wishlists, the response is `200` with an empty body (`{}`). A `404` is **not** returned.
* Fields with no value are omitted. Treat a missing `wishlists` field as an empty list, and a missing `totalItemsAllWishlists` or `wishlistCount` as 0.
* If your integration creates a default wishlist for customers who have none, make that decision on the **first page only** (no `lastItemId`). An empty response on a later page only means you have reached the end of the list.

**Pagination**

* Default page size is 20, maximum 50.
* `lastItemId` is returned whenever the page contains wishlists, including the last page. Pass it as `lastItemId` to fetch the next page.
* Stop when a page contains fewer wishlists than `pageSize`. Requesting the page after the last one returns `{}`.

**Notes**

* At least one of customerId, customerRef or email is required. If more than one is given they are tried in that order; the next is used only when the previous matches no wishlists.

```json
{"openapi":"3.0.3","info":{"title":"Wishlist REST API","version":"0.0.1"},"tags":[{"name":"wishlists","description":"Create, read, update and delete wishlists, and look them up by id, reference or customer."}],"servers":[{"url":"https://api.au-aws.thewishlist.io/services/wsservice"}],"security":[{"Bearer":[]}],"components":{"securitySchemes":{"Bearer":{"type":"http","scheme":"bearer","description":"OAuth2 bearer token issued by TWC Keycloak, sent as `Bearer <token>`."}}},"paths":{"/api/wishlists/byCustomer":{"get":{"summary":"getWishlistsWithoutItemsByCustomer","tags":["wishlists"],"responses":{"200":{"description":"OK. Returns `{}` if the customer has no wishlists, or if `lastItemId` is past the last page.","content":{"*/*":{"schema":{"type":"object","properties":{"totalItemsAllWishlists":{"type":"integer","description":"Total items across all of the customer's wishlists. Omitted when there are no wishlists."},"lastItemId":{"type":"string","description":"ID of the last wishlist in this page. Pass as `lastItemId` to get the next page. Omitted when there are no wishlists."},"wishlistCount":{"type":"integer","description":"Number of wishlists in this page. Omitted when there are no wishlists."},"wishlists":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"wishlistRef":{"type":"string"},"name":{"type":"string"},"customerId":{"type":"string"},"customerRef":{"type":"string"},"isPrivate":{"type":"boolean"},"deleted":{"type":"boolean"},"createdTime":{"type":"string"},"modifiedTime":{"type":"string"},"itemCount":{"type":"integer"},"hasMoreItems":{"type":"boolean"},"wishlistItems":{"type":"array","items":{"type":"object","properties":{}}},"attributeGroups":{"type":"object","properties":{}}}},"description":"The customer's wishlists. Omitted when the customer has no wishlists: treat as an empty list."}}}}}},"400":{"description":"Bad Request. No customerId, customerRef or email was provided, or `sort` is invalid."}},"operationId":"get-api-wishlists-without-items-byCustomer","description":"Get all wishlists belonging to a customer, identified by customerId, customerRef or email.\n\nNo items are returned. This endpoint returns wishlist metadata, including the wishlist ID and item count of each wishlist, and the total items across all wishlists.\n\nFor the best performance, use this endpoint to return the wishlists and item counts, and a separate call to return wishlist items (e.g. `GET /api/wishlist/item/variantRefs`).\n\n**Customers with no wishlists**\n- If the customer has no wishlists, the response is `200` with an empty body (`{}`). A `404` is **not** returned.\n- Fields with no value are omitted. Treat a missing `wishlists` field as an empty list, and a missing `totalItemsAllWishlists` or `wishlistCount` as 0.\n- If your integration creates a default wishlist for customers who have none, make that decision on the **first page only** (no `lastItemId`). An empty response on a later page only means you have reached the end of the list.\n\n**Pagination**\n- Default page size is 20, maximum 50.\n- `lastItemId` is returned whenever the page contains wishlists, including the last page. Pass it as `lastItemId` to fetch the next page.\n- Stop when a page contains fewer wishlists than `pageSize`. Requesting the page after the last one returns `{}`.\n\n**Notes**\n- At least one of customerId, customerRef or email is required. If more than one is given they are tried in that order; the next is used only when the previous matches no wishlists.\n","parameters":[{"in":"header","name":"X-TWC-Tenant","description":"tenant-key (your retail store's unique identifier in TWC)","schema":{"type":"string"}},{"in":"query","name":"customerId","description":"TWC unique customer identifier.","schema":{"type":"string"}},{"in":"query","name":"customerRef","description":"The retailer's unique identifier for a customer","schema":{"type":"string"}},{"in":"query","name":"email","description":"Customer email","schema":{"type":"string"}},{"in":"query","name":"pageSize","description":"Number of wishlists to return. Default 20, maximum 50.","schema":{"type":"integer","default":20,"minimum":1,"maximum":50}},{"in":"query","name":"lastItemId","description":"Pagination cursor. Pass the `lastItemId` from the previous response to get the next page of wishlists. Omit for the first page.","schema":{"type":"string"}},{"in":"query","name":"sort","description":"Order of the wishlists in the page. Omit for the default wishlist first, then oldest to newest. `created_asc`: oldest to newest. `created_desc`: newest to oldest. Any other value returns 400.","schema":{"type":"string","enum":["created_asc","created_desc"]}}]}}}}
```
