> ## Documentation Index
> Fetch the complete documentation index at: https://docs.way.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Search and Display Listings

> Retrieve, filter, and sort a brand's listings to build storefronts and landing pages

The most common use of the listings API is building a custom landing page or storefront: pull specific collections of a brand's listings based on your design needs. All of it runs on [Get all listings](/api-reference/listings/get-listings) and [Get featured listings](/api-reference/listings/get-featured-listings).

## Fetch listings

```bash theme={null}
curl "$WAY_API/v3/listings?page=1&limit=12" \
  --header "Authorization: Bearer $WAY_API_KEY"
```

Each item carries what a listing card needs: `title`, `coverMedia`, `startingPrice` and `brandCurrency`, `kind`, `category`, `vibes`, `location`, and `firstAvailableDate`. Responses are paginated (`meta` + `links`), 10 items per page by default.

## Featured listings

For a hero row or curated carousel, [Get featured listings](/api-reference/listings/get-featured-listings) returns the listings the brand marked featured, already in the order configured in the dashboard:

```bash theme={null}
curl "$WAY_API/v3/listings/featured" \
  --header "Authorization: Bearer $WAY_API_KEY"
```

## Filtering

Combine query parameters to build themed collections:

| Goal                                  | Parameter                                                                                             |
| ------------------------------------- | ----------------------------------------------------------------------------------------------------- |
| Free-text search box                  | `q=sailing`                                                                                           |
| A category page                       | `categoryIds[]=<uuid>` - IDs from [Get categories](/api-reference/brand-configuration/get-categories) |
| A vibe collection ("Family friendly") | `vibeIds[]=<uuid>` - IDs from [Get vibes](/api-reference/brand-configuration/get-vibes)               |
| One product line only                 | `productLines[]=activate` (`host`, `activate`, or `reserve`)                                          |
| Localized content                     | `language=es-ES`                                                                                      |

```bash theme={null}
curl "$WAY_API/v3/listings?productLines[]=activate&vibeIds[]=f047e2cb-...&q=spa" \
  --header "Authorization: Bearer $WAY_API_KEY"
```

## Sorting

`sortBy` accepts `title`, `category`, `createdAt`, `status`, or `listingOrder` (the merchandising order the brand arranged in the dashboard - usually the right default for storefronts), with `sortDir=ASC|DESC`:

```bash theme={null}
curl "$WAY_API/v3/listings?sortBy=listingOrder&sortDir=ASC" ...
```

## From card to detail page

When the guest clicks a listing, load its full record with [Get a listing](/api-reference/listings/get-listing) - descriptions, media gallery, price tiers, resource groups, cancellation policies, and the `kind`/`experienceId` values that drive the [booking flow](/guides/build-a-booking-integration).

<Tip>
  Listing data changes rarely - it's a good candidate for short-lived caching on your side. Availability is what changes constantly; fetch it live via the [sessions endpoints](/api-reference/listings/get-listing-sessions).
</Tip>
