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

# experience.published

> Fires when an experience is published.

## When it fires

Way sends `experience.published` when an experience is published on a brand. A `listing.published` event is sent at the same time for the corresponding listing. Publishing a collection sends only a `listing.published` event, not `experience.published`.

Events arrive at your endpoint as a `POST` request with the body `{ "event": "experience.published", "payload": { ... } }`. When a webhook secret is set, the `X-Way-Signature` header carries an HMAC of the request body - see [Verify signatures](/webhooks/verify-signatures).

## Payload

| Field                           | Type              | Description                                                         |
| ------------------------------- | ----------------- | ------------------------------------------------------------------- |
| `id`                            | string (UUID)     | Unique identifier of the experience.                                |
| `title`                         | string            | Title of the experience.                                            |
| `location.id`                   | string (UUID)     | Unique identifier of the location.                                  |
| `location.name`                 | string            | Display name of the location.                                       |
| `location.additionalInfo`       | string \| null    | Extra directions or meeting instructions.                           |
| `location.city`                 | string \| null    | City of the location.                                               |
| `location.state`                | string \| null    | State of the location.                                              |
| `location.country`              | string \| null    | Country of the location.                                            |
| `location.latitude`             | number            | Latitude of the location.                                           |
| `location.longitude`            | number            | Longitude of the location.                                          |
| `location.timezoneId`           | string            | IANA time zone of the location.                                     |
| `brand.id`                      | string (UUID)     | Unique identifier of the brand.                                     |
| `brand.name`                    | string            | Display name of the brand.                                          |
| `brand.tier`                    | string            | Subscription tier of the brand.                                     |
| `brand.countryCode`             | string            | Country code of the brand.                                          |
| `brand.currency`                | string            | Currency code used by the brand.                                    |
| `brand.externalReferenceId`     | string \| null    | External reference identifier configured for the brand.             |
| `headline`                      | string            | Short headline of the experience.                                   |
| `description`                   | string            | Full description of the experience, as HTML.                        |
| `maxParticipantsCount`          | number            | Maximum number of participants per session.                         |
| `sessionDurationMinutes`        | number \| null    | Duration of a session in minutes.                                   |
| `priceTiers`                    | array             | Price tiers configured on the experience.                           |
| `priceTiers[].id`               | string (UUID)     | Unique identifier of the price tier.                                |
| `priceTiers[].name`             | string            | Name of the price tier.                                             |
| `priceTiers[].price`            | number            | Price of the tier.                                                  |
| `priceTiers[].maxQuantity`      | number            | Maximum quantity bookable on the tier, when set.                    |
| `taxes`                         | array \| null     | Taxes configured on the experience.                                 |
| `taxes[].id`                    | string (UUID)     | Unique identifier of the tax.                                       |
| `taxes[].includedInPrice`       | boolean           | Whether the tax is included in the advertised price.                |
| `taxes[].percentage`            | number            | Tax percentage, for percentage-based taxes.                         |
| `taxes[].amount`                | number            | Tax amount, for fixed-amount taxes.                                 |
| `taxes[].isHostTax`             | boolean           | Whether the tax applies to the host, when set.                      |
| `taxes[].order`                 | number \| null    | Order in which the tax is applied, when set.                        |
| `taxes[].showInAdvertisedPrice` | boolean \| null   | Whether the tax is shown in the advertised price, when set.         |
| `taxes[].appliesTo`             | string\[] \| null | Identifiers of the items the tax applies to, when set.              |
| `bookingAvailabilityMode`       | string            | Booking availability mode: `private`, `group`, or `non-restricted`. |
| `provider`                      | string\[]         | Items provided to participants.                                     |
| `healthAndSafety`               | string \| null    | Health and safety information, as HTML.                             |
| `paymentMethods`                | string\[] \| null | Payment methods accepted for the experience.                        |
| `partySize`                     | number \| null    | Party size for private bookings, when set.                          |
| `isNoHost`                      | boolean           | Whether the experience runs without a host.                         |
| `publishedAt`                   | string (ISO 8601) | Timestamp when the experience was published.                        |

## Sample

```json theme={null}
{
   "event":"experience.published",
   "payload":{
      "id":"53e7c7e3-37c2-4af1-ab9f-958af8d42ccc",
      "title":"Sunrise Surf & Swim",
      "headline":"Catch the first wave of the day!",
      "description":"<p>Join us on a 2 hour surf experience. The best way to start the day and connect with the sea.</p>",
      "location":{
         "longitude":-97.7430608,
         "latitude":30.267153,
         "name":"Austin, TX, USA",
         "additionalInfo":"Please meet us in the lobby!",
         "timezoneId":"America/Chicago"
      },
      "maxParticipantsCount":10,
      "sessionDurationMinutes":60,
      "priceTiers":[
         {
            "name":"Adult",
            "price":100
         },
         {
            "name":"Child",
            "price":50
         }
      ],
      "taxes":[
         {
            "id":"ccf8424c-2da0-41a0-87d3-ef228cf30cf9",
            "percentage":5,
            "includedInPrice":false
         }
      ],
      "bookingAvailabilityMode":"group",
      "provider":[
         "Surfboard",
         "Wetsuit"
      ],
      "healthAndSafety":"<p>Must be 21+ to participate.&nbsp;</p>",
      "paymentMethods":[
         "credit-card"
      ],
      "partySize":null,
      "isNoHost":true,
      "publishedAt":"2022-11-18T19:12:42.889Z"
   }
}
```

## Related endpoints

Retrieve the full experience with [Get Experience](/api-reference/experiences/get-experience).
