> ## 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.

# Get all listings

> Returns the brand's published listings with pagination, sorting, filtering by category, vibe, and product line, and free-text search. The brand is identified by your API key (or by the `Way-Brand-Id` header with a legacy key).



## OpenAPI

````yaml get /v3/listings
openapi: 3.0.0
info:
  title: Way Partner API
  description: >-
    REST API for Way partners: list experiences, check availability, run
    checkout, and manage bookings.
  version: '1.0'
servers:
  - url: https://api.letsway.com
    description: Production.
  - url: https://api.staging.letsway.com
    description: Staging.
security: []
tags:
  - name: Listings
    description: 'Retrieve the listings a brand offers: experiences, events, and resources.'
  - name: Availability
    description: Dates, sessions, and price tiers for scheduling a booking.
  - name: Carts & Checkout
    description: >-
      Payment intents and booking creation. The cart ID is a client-generated
      UUID; there is no create-cart endpoint.
  - name: Bookings
    description: Retrieve, cancel, and reschedule bookings.
  - name: Experiences
    description: Experience details, settings, custom questions, reviews, and hosts.
  - name: Brand Configuration
    description: Brand settings, taxonomy, terms, and promotion code validation.
  - name: Waitlists
    description: Waitlists for sold-out sessions and invitation handling.
  - name: Integrations
    description: Configured integrations, analytics, and room-charge validation.
  - name: Organizations
    description: Organization-level access across brands.
paths:
  /v3/listings:
    get:
      tags:
        - Listings
      summary: Get all listings
      description: >-
        Returns the brand's published listings with pagination, sorting,
        filtering by category, vibe, and product line, and free-text search. The
        brand is identified by your API key (or by the `Way-Brand-Id` header
        with a legacy key).
      operationId: ListingV3PublicController_getAll
      parameters:
        - $ref: '#/components/parameters/categoryIdsQuery'
        - $ref: '#/components/parameters/filtersQuery'
        - $ref: '#/components/parameters/isUnlistedQuery'
        - $ref: '#/components/parameters/languageQuery'
        - $ref: '#/components/parameters/limitQuery'
        - $ref: '#/components/parameters/pageQuery'
        - $ref: '#/components/parameters/productLinesQuery'
        - $ref: '#/components/parameters/qQuery'
        - $ref: '#/components/parameters/sortByQuery'
        - $ref: '#/components/parameters/sortDirQuery'
        - $ref: '#/components/parameters/vibeIdsQuery'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetListingsV3PublicResponse'
              example:
                items:
                  - advertisedPrice: 100
                    bookingAvailabilityMode: group
                    brandId: f2ce0a06-7997-4626-9532-65ac70f3a19c
                    category:
                      id: c80c38ad-7379-42b0-ae92-bc26de382a0b
                      brandId: f2ce0a06-7997-4626-9532-65ac70f3a19c
                      name: Family
                    eventDates: null
                    experienceId: c99f70ee-1c0e-4534-a31a-96d5d966cc4b
                    hidePrice: false
                    hostedBy: null
                    id: d9fa9229-9132-415d-bc04-513062ee3bcd
                    isExclusive: false
                    kind: experience
                    maxParticipants: 10
                    medias:
                      - id: 0a4cd3a1-d099-4916-90ea-7e5012c06598
                        kind: cover
                        type: image
                        links:
                          - type: image
                            url: >-
                              https://images.letsway.com/staging/tr:w-original/https://storage.googleapis.com/kouto-api-media/2026/6/accbde4c0064e535c67fd874a3b95d235d72465ed862dca1.jpg
                            resolution: original
                          - type: image
                            url: >-
                              https://images.letsway.com/staging/tr:w-original/https://storage.googleapis.com/kouto-api-media/2026/6/accbde4c0064e535c67fd874a3b95d235d72465ed862dca1.jpg
                            resolution: '384'
                          - type: image
                            url: >-
                              https://images.letsway.com/staging/tr:w-original/https://storage.googleapis.com/kouto-api-media/2026/6/accbde4c0064e535c67fd874a3b95d235d72465ed862dca1.jpg
                            resolution: '480'
                          - type: image
                            url: >-
                              https://images.letsway.com/staging/tr:w-original/https://storage.googleapis.com/kouto-api-media/2026/6/accbde4c0064e535c67fd874a3b95d235d72465ed862dca1.jpg
                            resolution: '640'
                          - type: image
                            url: >-
                              https://images.letsway.com/staging/tr:w-original/https://storage.googleapis.com/kouto-api-media/2026/6/accbde4c0064e535c67fd874a3b95d235d72465ed862dca1.jpg
                            resolution: '750'
                          - type: image
                            url: >-
                              https://images.letsway.com/staging/tr:w-original/https://storage.googleapis.com/kouto-api-media/2026/6/accbde4c0064e535c67fd874a3b95d235d72465ed862dca1.jpg
                            resolution: '1080'
                          - type: image
                            url: >-
                              https://images.letsway.com/staging/tr:w-original/https://storage.googleapis.com/kouto-api-media/2026/6/accbde4c0064e535c67fd874a3b95d235d72465ed862dca1.jpg
                            resolution: original
                        altText: null
                    pointsEligible: null
                    pricePerType: Participant
                    productLine: reserve
                    promotedListing: null
                    rating: null
                    resourceGroupCollectionId: null
                    resourceGroups: []
                    slug: sunset-sailing-tour-a54f004c
                    startingPrice: 100
                    summary: A two-hour coastal cruise with drinks at golden hour.
                    title: Sunset Sailing Tour
                    vibes:
                      - id: f047e2cb-1fb5-4374-8f3e-4bfcc6d7284e
                        brandId: f2ce0a06-7997-4626-9532-65ac70f3a19c
                        name: Winter
                      - id: da568b2b-24c4-4b4a-9ac5-7010986368d3
                        brandId: f2ce0a06-7997-4626-9532-65ac70f3a19c
                        name: Summer
                  - advertisedPrice: 10
                    bookingAvailabilityMode: group
                    brandId: f2ce0a06-7997-4626-9532-65ac70f3a19c
                    category:
                      id: a3a98c9c-99fb-46ae-8586-d27ee8899c02
                      brandId: f2ce0a06-7997-4626-9532-65ac70f3a19c
                      name: Recreation
                    eventDates: null
                    experienceId: 9d82da98-d831-4797-bdff-e3177e0a810e
                    hidePrice: false
                    hostedBy:
                      id: 1c0340e2-ff93-41b1-b0ad-2c91720319a6
                      firstName: Maya
                      lastName: Kim
                      description: ''
                      profilePicture: null
                    id: be9ae416-6883-4356-9dec-33fab4f7a274
                    isExclusive: false
                    kind: experience
                    maxParticipants: 15
                    medias:
                      - id: 0a3cd734-e662-4568-8a5e-2fd74b3be116
                        kind: cover
                        type: image
                        links:
                          - type: image
                            url: >-
                              https://images.letsway.com/staging/tr:w-original/https://storage.googleapis.com/kouto-api-media/2026/6/accbde4c0064e535c67fd874a3b95d235d72465ed862dca1.jpg
                            resolution: original
                          - type: image
                            url: >-
                              https://images.letsway.com/staging/tr:w-original/https://storage.googleapis.com/kouto-api-media/2026/6/accbde4c0064e535c67fd874a3b95d235d72465ed862dca1.jpg
                            resolution: '384'
                          - type: image
                            url: >-
                              https://images.letsway.com/staging/tr:w-original/https://storage.googleapis.com/kouto-api-media/2026/6/accbde4c0064e535c67fd874a3b95d235d72465ed862dca1.jpg
                            resolution: '480'
                          - type: image
                            url: >-
                              https://images.letsway.com/staging/tr:w-original/https://storage.googleapis.com/kouto-api-media/2026/6/accbde4c0064e535c67fd874a3b95d235d72465ed862dca1.jpg
                            resolution: '640'
                          - type: image
                            url: >-
                              https://images.letsway.com/staging/tr:w-original/https://storage.googleapis.com/kouto-api-media/2026/6/accbde4c0064e535c67fd874a3b95d235d72465ed862dca1.jpg
                            resolution: '750'
                          - type: image
                            url: >-
                              https://images.letsway.com/staging/tr:w-original/https://storage.googleapis.com/kouto-api-media/2026/6/accbde4c0064e535c67fd874a3b95d235d72465ed862dca1.jpg
                            resolution: '1080'
                          - type: image
                            url: >-
                              https://images.letsway.com/staging/tr:w-original/https://storage.googleapis.com/kouto-api-media/2026/6/accbde4c0064e535c67fd874a3b95d235d72465ed862dca1.jpg
                            resolution: original
                        altText: null
                    pointsEligible: null
                    pricePerType: tier1
                    productLine: host
                    promotedListing: null
                    rating: null
                    resourceGroupCollectionId: null
                    resourceGroups: []
                    slug: wine-tasting-evening-adf159b0
                    startingPrice: 10
                    summary: A relaxed evening of regional wines with our sommelier.
                    title: Wine Tasting Evening
                    vibes:
                      - id: f047e2cb-1fb5-4374-8f3e-4bfcc6d7284e
                        brandId: f2ce0a06-7997-4626-9532-65ac70f3a19c
                        name: Winter
                meta:
                  totalItems: 108
                  itemCount: 10
                  itemsPerPage: 10
                  totalPages: 11
                  currentPage: 1
      security:
        - Brand-API-Key: []
components:
  parameters:
    categoryIdsQuery:
      name: categoryIds
      in: query
      schema:
        type: array
        items:
          type: string
      description: >-
        Only listings in these categories. IDs come from the Get categories
        endpoint.
      required: false
    filtersQuery:
      name: filters
      in: query
      schema:
        type: array
        items: {}
      description: >-
        Structured filters, e.g.
        `filters[0][name]=experienceDateRange&filters[0][operator]=range&filters[0][value][from]=2026-08-15&filters[0][value][to]=2026-08-16`.
      required: false
    isUnlistedQuery:
      name: isUnlisted
      in: query
      schema:
        default: false
        oneOf:
          - type: boolean
          - type: string
            enum:
              - 'true'
          - type: string
            enum:
              - 'false'
      description: >-
        Set to `true` to return unlisted listings instead of publicly listed
        ones.
      required: false
    languageQuery:
      name: language
      in: query
      schema:
        type: string
      description: Locale for translated content; defaults to the brand's language.
      required: false
    limitQuery:
      name: limit
      in: query
      schema:
        minimum: 0
        default: 10
        type: number
      example: 10
      description: Number of items per page.
      required: false
    pageQuery:
      name: page
      in: query
      schema:
        minimum: 1
        default: 1
        type: number
      example: 1
      description: Page number to return, starting at 1.
      required: false
    productLinesQuery:
      name: productLines
      in: query
      schema:
        type: array
        items:
          type: string
          enum:
            - activate
            - host
            - reserve
      description: Only listings from these product lines.
      required: false
    qQuery:
      name: q
      in: query
      schema:
        type: string
      description: Free-text search over the listings' titles and descriptions.
      example: sailing
      required: false
    sortByQuery:
      name: sortBy
      in: query
      schema:
        type: string
        enum:
          - category
          - createdAt
          - status
          - title
          - listingOrder
      description: Field to sort the results by.
      required: false
    sortDirQuery:
      name: sortDir
      in: query
      schema:
        type: string
        enum:
          - ASC
          - DESC
      description: Sort direction.
      required: false
    vibeIdsQuery:
      name: vibeIds
      in: query
      schema:
        type: array
        items:
          type: string
      description: Only listings with these vibes. IDs come from the Get vibes endpoint.
      required: false
  schemas:
    GetListingsV3PublicResponse:
      type: object
      properties:
        items:
          type: array
          items:
            type: object
            properties:
              advertisedPrice:
                type: number
                nullable: true
                description: >-
                  Price shown on listing cards, in the brand's currency, per the
                  unit given in pricePerType.
                example: 100
              bookingAvailabilityMode:
                type: string
                enum:
                  - private
                  - group
                  - non-restricted
                nullable: true
                description: >-
                  How the listing's sessions can be booked: private (a booking
                  reserves the session for one party), group (parties share
                  group sessions), or non-restricted (both). Null for resource
                  collections, where the mode is set per resource.
                example: group
              brandId:
                type: string
                format: uuid
                nullable: true
                description: >-
                  Unique identifier of the brand whose storefront serves this
                  listing.
                example: f2ce0a06-7997-4626-9532-65ac70f3a19c
              category:
                type: object
                properties:
                  id:
                    type: string
                    format: uuid
                    description: Unique identifier of the category.
                    example: c80c38ad-7379-42b0-ae92-bc26de382a0b
                  brandId:
                    type: string
                    format: uuid
                    description: ID of the brand that defines the category.
                    example: f2ce0a06-7997-4626-9532-65ac70f3a19c
                  name:
                    type: string
                    description: Display name of the category.
                    example: Family
                required:
                  - id
                  - brandId
                  - name
                nullable: true
                description: >-
                  The brand-defined category the listing belongs to. Null when
                  the listing is uncategorized.
              eventDates:
                type: array
                items:
                  type: string
                  format: date-time
                nullable: true
                description: >-
                  Calendar dates on which the event takes place. Populated for
                  event listings; null otherwise.
              experienceId:
                type: string
                format: uuid
                nullable: true
                description: >-
                  ID of the experience backing this listing. Present for
                  experience-based listings; null for resource collections.
                example: c99f70ee-1c0e-4534-a31a-96d5d966cc4b
              hidePrice:
                type: boolean
                nullable: true
                description: >-
                  Whether the storefront should hide the listing's price from
                  guests.
                example: false
              hostedBy:
                type: object
                properties:
                  id:
                    type: string
                    format: uuid
                    description: Unique identifier of the host's user account.
                    example: 1c0340e2-ff93-41b1-b0ad-2c91720319a6
                  firstName:
                    type: string
                    description: The host's first name.
                    example: Maria
                  lastName:
                    type: string
                    description: The host's last name.
                    example: Alvarez
                  description:
                    type: string
                    nullable: true
                    description: The host's bio shown on the listing page. May be empty.
                    example: >-
                      Award-winning chef with 15 years of farm-to-table
                      experience.
                  profilePicture:
                    type: object
                    properties:
                      id:
                        type: string
                        format: uuid
                        description: Unique identifier of the profile photo media asset.
                        example: 9d5f6c2b-7e18-4a3d-b0c4-52e9a1f7d386
                      uri:
                        type: object
                        properties:
                          360w:
                            type: string
                            description: URL of the 360px-wide rendition.
                            example: >-
                              https://images.letsway.com/staging/tr:w-360/https://storage.googleapis.com/kouto-api-media/2025/7/bd087bea3caf5bd5f28f9449b77738abfee1f19c69bf7cad.jpg
                          720w:
                            type: string
                            description: URL of the 720px-wide rendition.
                            example: >-
                              https://images.letsway.com/staging/tr:w-720/https://storage.googleapis.com/kouto-api-media/2025/7/bd087bea3caf5bd5f28f9449b77738abfee1f19c69bf7cad.jpg
                          1080w:
                            type: string
                            description: URL of the 1080px-wide rendition.
                            example: >-
                              https://images.letsway.com/staging/tr:w-1080/https://storage.googleapis.com/kouto-api-media/2025/7/bd087bea3caf5bd5f28f9449b77738abfee1f19c69bf7cad.jpg
                          original:
                            type: string
                            description: URL of the original, unresized photo.
                            example: >-
                              https://storage.googleapis.com/kouto-api-media/2025/7/bd087bea3caf5bd5f28f9449b77738abfee1f19c69bf7cad.jpg
                        required:
                          - 360w
                          - 720w
                          - 1080w
                          - original
                        description: Profile photo URLs keyed by rendition width.
                    required:
                      - id
                      - uri
                    nullable: true
                    description: >-
                      The host's profile photo, provided in several pre-sized
                      renditions. Null when the host has no photo.
                required:
                  - id
                  - firstName
                  - lastName
                nullable: true
                description: >-
                  The host who leads the experience. Present only for host
                  product-line listings; null otherwise.
              id:
                type: string
                format: uuid
                description: >-
                  Unique identifier of the listing. Use it with GET
                  /v3/listings/{listingId} to fetch full details.
                example: d9fa9229-9132-415d-bc04-513062ee3bcd
              isExclusive:
                type: boolean
                description: Whether booking the listing requires an access code.
                example: false
              kind:
                type: string
                enum:
                  - experience
                  - resource
                  - event
                  - auction
                description: >-
                  The type of listing: experience (time-based sessions with
                  guests), resource (a bookable resource collection such as
                  cabanas), event, or auction.
                example: experience
              maxParticipants:
                type: number
                nullable: true
                description: >-
                  Maximum total number of participants a session can hold. Null
                  for resource collections.
                example: 10
              medias:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: string
                      format: uuid
                      description: Unique identifier of the media asset.
                      example: 0a4cd3a1-d099-4916-90ea-7e5012c06598
                    kind:
                      type: string
                      enum:
                        - gallery
                        - cover
                        - map
                        - description
                      description: >-
                        Where the media is used on the listing page: cover (hero
                        image), gallery, map (venue map image), or description
                        (embedded in the description).
                      example: cover
                    type:
                      type: string
                      enum:
                        - image
                        - video
                      description: Whether the media asset is an image or a video.
                      example: image
                    links:
                      type: array
                      items:
                        type: object
                        properties:
                          type:
                            type: string
                            enum:
                              - image
                              - video
                            description: Whether this rendition is an image or a video.
                            example: image
                          url:
                            type: string
                            format: uri
                            description: URL of this rendition.
                            example: >-
                              https://images.letsway.com/staging/tr:w-original/https://storage.googleapis.com/kouto-api-media/2026/6/accbde4c0064e535c67fd874a3b95d235d72465ed862dca1.jpg
                          resolution:
                            type: string
                            enum:
                              - original
                              - adaptative
                              - '240'
                              - '360'
                              - '480'
                              - '540'
                              - '640'
                              - '720'
                              - '1080'
                              - '384'
                              - '480'
                              - '640'
                              - '750'
                              - '1080'
                            description: >-
                              Resolution of this rendition: a pixel width for
                              sized image renditions, original for the
                              unprocessed source file, or adaptative for an
                              adaptive-bitrate video stream.
                            example: original
                        required:
                          - type
                          - url
                          - resolution
                      description: >-
                        Available renditions of the asset at different
                        resolutions.
                    altText:
                      type: string
                      nullable: true
                      description: >-
                        Alternative text for the media, for accessibility. Null
                        when not set.
                      example: Guests sailing across the bay at sunset
                  required:
                    - id
                    - kind
                    - type
                    - links
                description: Images and videos attached to the listing.
              pointsEligible:
                type: object
                properties:
                  org:
                    type: string
                    description: >-
                      Identifier of the loyalty program the eligibility applies
                      to.
                    example: find
                  payEligible:
                    type: boolean
                    description: >-
                      Whether guests can pay for this listing with loyalty
                      points.
                    example: true
                  earnEligible:
                    type: boolean
                    description: >-
                      Whether guests earn loyalty points when booking this
                      listing.
                    example: true
                required:
                  - org
                  - payEligible
                  - earnEligible
                nullable: true
                description: >-
                  Loyalty points eligibility for the listing. Null when the
                  listing is not part of an eligible loyalty program.
              pricePerType:
                type: string
                nullable: true
                description: >-
                  The unit the advertised price applies to, such as Participant,
                  Group, or Ticket.
                example: Participant
              productLine:
                type: string
                enum:
                  - activate
                  - host
                  - reserve
                description: >-
                  The Way product line the listing is sold under: activate,
                  host, or reserve. Host listings are led by a host and include
                  hostedBy details.
                example: reserve
              promotedListing:
                type: object
                properties:
                  id:
                    type: string
                    format: uuid
                    description: Unique identifier of the promoted listing record.
                    example: a1e6c3d9-40b2-47f5-9c81-6d02e7b4f358
                  listingId:
                    type: string
                    format: uuid
                    description: ID of the listing being promoted.
                    example: d9fa9229-9132-415d-bc04-513062ee3bcd
                  promoterAgreementId:
                    type: string
                    format: uuid
                    description: >-
                      ID of the promoter agreement between the promoter and
                      provider brands.
                    example: c47f2e85-6b10-4d93-a2c6-01e8d5b7a942
                  promoterBrandId:
                    type: string
                    format: uuid
                    description: ID of the brand promoting the listing on its storefront.
                    example: f2ce0a06-7997-4626-9532-65ac70f3a19c
                  promoterBrandName:
                    type: string
                    description: Display name of the promoter brand.
                    example: The Wayfarer Hotel
                  providerBrandId:
                    type: string
                    format: uuid
                    description: ID of the brand that owns and fulfills the listing.
                    example: 8b31c9de-4a67-4a0f-9c25-6f1e0b72d4c3
                  providerBrandName:
                    type: string
                    description: Display name of the provider brand.
                    example: Austin Sailing Co.
                  status:
                    type: string
                    enum:
                      - needs-approval
                      - needs-provider-approval
                      - needs-promoter-approval
                      - promoter-requested
                      - approved
                      - declined
                      - ended
                    description: >-
                      Approval status of the promotion agreement for this
                      listing.
                    example: approved
                  createdAt:
                    type: string
                    description: When the promotion was created, as an ISO 8601 timestamp.
                    example: '2026-05-02T18:24:31.000Z'
                  updatedAt:
                    type: string
                    description: >-
                      When the promotion was last updated, as an ISO 8601
                      timestamp.
                    example: '2026-06-15T09:10:47.000Z'
                required:
                  - id
                  - listingId
                  - promoterAgreementId
                  - promoterBrandId
                  - promoterBrandName
                  - providerBrandId
                  - providerBrandName
                  - status
                  - createdAt
                  - updatedAt
                nullable: true
                description: >-
                  Cross-brand promotion details when the listing is provided by
                  another brand and promoted on this storefront. Null for the
                  brand's own listings.
              rating:
                type: number
                nullable: true
                description: >-
                  Average guest review rating for the listing, on a 1-5 scale
                  truncated to one decimal place. Null when the listing has no
                  reviews.
                example: 4.8
              resourceGroupCollectionId:
                type: string
                format: uuid
                nullable: true
                description: >-
                  ID of the resource group collection backing this listing.
                  Present only for resource collections; null for
                  experience-based listings.
                example: 2f7d81c4-a9b3-4e06-b8d1-53c60e9a742f
              resourceGroups:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: string
                      format: uuid
                      description: Unique identifier of the resource group.
                      example: 6a1d34f8-2c9b-4e57-a0d3-81f5b26c497e
                    resourceGroupCollectionId:
                      type: string
                      format: uuid
                      description: >-
                        ID of the resource group collection this group belongs
                        to.
                      example: 2f7d81c4-a9b3-4e06-b8d1-53c60e9a742f
                    title:
                      type: string
                      nullable: true
                      description: Display name of the resource group.
                      example: Poolside Cabanas
                    description:
                      type: string
                      nullable: true
                      description: Description of the resource group shown to guests.
                      example: >-
                        Shaded cabanas steps from the main pool, each with
                        seating for up to six.
                    integrationMeta:
                      type: array
                      items:
                        type: object
                        properties:
                          type:
                            type: string
                            enum:
                              - adobeAnalytics
                              - alice
                              - gtmAnalytics
                              - ga4Analytics
                              - infor
                              - kicc
                              - mews
                              - opera
                              - revinate
                              - simphony
                              - stayntouch
                              - tealiumAnalytics
                            description: The integration this metadata entry applies to.
                            example: opera
                          key:
                            type: string
                            enum:
                              - transactionCode
                              - integrationAddOn
                              - tenderId
                              - locRef
                              - rvcRef
                              - menuId
                              - menuItemId
                              - mewsTaxCodes
                            description: >-
                              The integration-specific setting this entry
                              configures, such as a PMS transaction code or POS
                              menu item reference.
                            example: transactionCode
                          value:
                            oneOf:
                              - type: object
                                additionalProperties: {}
                              - type: array
                                items:
                                  type: string
                            description: >-
                              Value for the key. Its shape depends on the key:
                              transactionCode uses an object with code and
                              description, while mewsTaxCodes uses an array of
                              strings.
                        required:
                          - type
                          - key
                          - value
                      nullable: true
                      description: >-
                        Integration-specific metadata entries that map the
                        resource group to external systems such as a PMS, POS,
                        or analytics provider.
                  required:
                    - id
                    - resourceGroupCollectionId
                description: >-
                  Summaries of the resource groups in the listing's collection.
                  Empty for experience-based listings; fetch the single-listing
                  endpoint for full resource details.
              slug:
                type: string
                nullable: true
                description: >-
                  URL-friendly identifier derived from the listing's title, used
                  to build storefront listing URLs.
                example: sunset-sailing-tour-a54f004c
              startingPrice:
                type: number
                nullable: true
                description: >-
                  Lowest price the listing can be booked for, in the brand's
                  currency. Typically shown as the "from" price.
                example: 100
              summary:
                type: string
                nullable: true
                description: >-
                  Short plain-text summary of the listing, used on cards and
                  previews.
                example: A two-hour coastal cruise with drinks at golden hour.
              title:
                type: string
                nullable: true
                description: The listing's display title.
                example: Sunset Sailing Tour
              vibes:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: string
                      format: uuid
                      description: Unique identifier of the vibe.
                      example: f047e2cb-1fb5-4374-8f3e-4bfcc6d7284e
                    brandId:
                      type: string
                      format: uuid
                      description: ID of the brand that defines the vibe.
                      example: f2ce0a06-7997-4626-9532-65ac70f3a19c
                    name:
                      type: string
                      description: Display name of the vibe.
                      example: Winter
                  required:
                    - id
                    - brandId
                    - name
                description: >-
                  Brand-defined vibe tags used to filter and merchandise
                  listings on the storefront.
            required:
              - id
              - isExclusive
              - kind
              - medias
              - productLine
              - resourceGroups
              - vibes
          description: The listings on this page of results.
        meta:
          type: object
          properties:
            totalItems:
              type: number
              description: Total number of listings matching the query across all pages.
              example: 108
            itemCount:
              type: number
              description: Number of listings returned on this page.
              example: 10
            itemsPerPage:
              type: number
              description: Requested page size.
              example: 10
            totalPages:
              type: number
              nullable: true
              description: Total number of pages available.
              example: 11
            currentPage:
              type: number
              description: The current page number, starting at 1.
              example: 1
          required:
            - itemCount
            - itemsPerPage
            - currentPage
          description: Pagination metadata for the result set.
        links:
          type: object
          properties:
            first:
              type: string
              description: URL of the first page of results.
              example: /v3/listings?limit=10
            previous:
              type: string
              description: URL of the previous page of results. Empty on the first page.
              example: ''
            next:
              type: string
              description: URL of the next page of results. Empty on the last page.
              example: /v3/listings?page=2&limit=10
            last:
              type: string
              description: URL of the last page of results.
              example: /v3/listings?page=11&limit=10
          description: Links for navigating between pages of results.
      required:
        - items
        - meta
  securitySchemes:
    Brand-API-Key:
      type: http
      scheme: bearer
      description: >-
        Your brand's secret API key, e.g. `Bearer
        way_sk_live_bhEqcn0i1fRoUEHBPjJkQA`. Older `Way-Brand-Id` +
        `Way-Secret-Key` credentials still work: see [Legacy
        authentication](/legacy-authentication).

````