Creates a new product

Request

POST https://api.rezdy.com/v1/products

Request body

The request body takes a complete ProductCreateRequest resource, containing the following writable properties:

{
    "additionalInformation": "string",
    "advertisedPrice": "float",
    "bookingFields": [
        {
            "fieldType": "string",
            "label": "string",
            "listOptions": "string",
            "requiredPerBooking": "boolean",
            "requiredPerParticipant": "boolean",
            "visiblePerBooking": "boolean",
            "visiblePerParticipant": "boolean"
        }
    ],
    "bookingMode": "string",
    "charter": "boolean",
    "confirmMode": "string",
    "confirmModeMinParticipants": "int32",
    "description": "string",
    "durationMinutes": "int64",
    "extras": [
        {
            "description": "string",
            "extraPriceType": "string",
            "id": "int64",
            "image": {
                "id": "int64",
                "itemUrl": "string",
                "largeSizeUrl": "string",
                "mediumSizeUrl": "string",
                "thumbnailUrl": "string"
            },
            "name": "string",
            "price": "float",
            "quantity": "int32"
        }
    ],
    "internalCode": "string",
    "languages": [
        "string"
    ],
    "locationAddress": {
        "addressLine": "string",
        "addressLine2": "string",
        "city": "string",
        "countryCode": "string",
        "latitude": "double",
        "longitude": "double",
        "postCode": "string",
        "state": "string"
    },
    "minimumNoticeMinutes": "int64",
    "name": "string",
    "pickupId": "int64",
    "priceOptions": [
        {
            "label": "string",
            "maxQuantity": "int32",
            "minQuantity": "int32",
            "price": "float",
            "priceGroupType": "string",
            "productCode": "string",
            "seatsUsed": "int32"
        }
    ],
    "productType": "string",
    "quantityRequired": "boolean",
    "quantityRequiredMax": "int32",
    "quantityRequiredMin": "int32",
    "shortDescription": "string",
    "terms": "string",
    "unitLabel": "string",
    "unitLabelPlural": "string",
    "xeroAccount": "string"
}

Properties

Name Type Description Additional
additionalInformation string

Additional information for the product, that should be sent after a booking is completed (i.e. by email) to the customer. Useful for integration, when manual control of the entire customer booking experience is wanted, and the automatic confirmation e-mail from Rezdy had been suppressed.

Optional
advertisedPrice float

General price indication for this product. It represents a display price only, therefore it does not affect a real booking price, which is calculated based on the price options.

Optional
bookingFields[] array

List of booking fields required for this product.

Required
bookingFields[].fieldType string

Type of a custom booking field. This type does not apply on the Rezdy build-in booking fields. See the section Product booking fields

Possible values are:

  • String
  • List
  • Boolean
Optional
bookingFields[].label string

Field label that can be shown to customers

Optional
bookingFields[].listOptions string

If this field only allows limited values to be selected from a list, they'll be included in this string, separated by \r\n

Optional
bookingFields[].requiredPerBooking boolean

true if this field must be populated once per booking, regardless of the number of items or participants. It should be in Booking.fields

Currently, required fields are not validated when a booking is created though public API, however it's a good practice to support them on in your client code However, soon the required fields will be enforced for public API booking..

Optional
bookingFields[].requiredPerParticipant boolean

true if this field must be populated for each participant. It should be in Booking.BookingItem.Participant.fields.

Currently, required fields are not validated when a booking is created though public API, however it's a good practice to support them on in your client code. However, soon the required fields will be enforced for public API booking.

Optional
bookingFields[].visiblePerBooking boolean

true if this field should be asked once per booking, regardless of the number of items or participants. It should be in Booking.fields

Optional
bookingFields[].visiblePerParticipant boolean

true if this field should be asked for each participant when doing a booking. It should be in Booking.BookingItem.Participant.fields.

Optional
bookingMode string

Booking mode. Determines if this product needs availability or can be booked for any date.

Possible values are:

  • NO_DATE
  • DATE_ENQUIRY
  • INVENTORY
Optional
charter boolean

A charter product means each session can only have a single booking, whatever the number of seats booked.

Optional
confirmMode string

Confirmation mode. Determines if bookings are automatically confirmed or it they are pending.

Possible values are:

  • MANUAL
  • AUTOCONFIRM
  • MANUAL_THEN_AUTO
  • AUTO_THEN_MANUAL
Optional
confirmModeMinParticipants int32

If confirmMode is MANUAL_THEN_AUTO or AUTO_THEN_MANUAL, determines the minimum number of participants per booking to trigger the change.

Optional
description string

Long product description, is between 100 and 15000 characters.

Required
durationMinutes int64

Duration of the product in minutes.

Required
extras[] array

List of extras IDs.

Optional
extras[].description string

Description of the extra

Optional
extras[].extraPriceType string

Price type for this extra. Defines what quantities are allowed and how their price is calculated

Possible values are:

  • ANY
  • FIXED
  • QUANTITY
Optional
extras[].id int64

ID of the extra

Optional
extras[].image object

Image links.

Optional
extras[].image.id int64

Id of the image. Can be used for DELETE /{productCode}/image/{mediaId} service

Optional
extras[].image.itemUrl string

Full size image link

Optional
extras[].image.largeSizeUrl string

Large size image link (1280px)

Optional
extras[].image.mediumSizeUrl string

Medium size image link (480px)

Optional
extras[].image.thumbnailUrl string

Thumbnail image link (240px)

Optional
extras[].name string

Name of the extra

Optional
extras[].price float

Price for a single quantity of this extra

Optional
extras[].quantity int32

Quantity booked

Optional
internalCode string

Supplier-defined product code, used internally by the supplier.

Optional
languages[] array of string

List of product languages. The format of the language is ISO 639 two-letter code with BCP 47 language variants, separated by underscore e.g. en_au.

Optional
locationAddress object

Address of a company, customer or product location.

Optional
locationAddress.addressLine string

Address line

Optional
locationAddress.addressLine2 string

Address line 2

Optional
locationAddress.city string

City name

Optional
locationAddress.countryCode string

Country code

Optional
locationAddress.latitude double

Geolocation - latitude

Optional
locationAddress.longitude double

Geolocation - longitude

Optional
locationAddress.postCode string

Post Code

Optional
locationAddress.state string

State name

Optional
minimumNoticeMinutes int64

Minimum book ahead interval for he product in minutes.

Optional
name string

Product name

Required
pickupId int64

If pickups are configured for this product, the field will contain the id of the pickup location list created by the supplier.

Optional
priceOptions[] array

List of price options belonging to this product.

Required
priceOptions[].label string

Label for this price (I.e. "Adult", "Child")

Optional
priceOptions[].maxQuantity int32

Max booking quantity for the product price option. Can be specified, if the price option is fixed or a grouptype. For a successful booking of the product, the number of participants for this price option have to be lesser or equal than this value.

Optional
priceOptions[].minQuantity int32

Min booking quantity for the product price option. Can be specified, if the price option is fixed or a group type. For a successful booking of the product, the number of participants for this price option have to be greater or equal than this value.

Optional
priceOptions[].price float

Price amount (I.e. "200.00")

Optional
priceOptions[].priceGroupType string

If this price is for a group, is the price for the whole group (TOTAL) or per quantity (EACH)

Possible values are:

  • EACH
  • TOTAL
Optional
priceOptions[].productCode string

Product code to which the price options belongs to. Since Rezdy introduced shared availability option for products, the product sessions can contain price overrides for all of the products, which share the sessions. Therefore it is necessary to filer only the price options matching the chosen product code on the client side, when processing /availability service responses.

Optional
priceOptions[].seatsUsed int32

How many seats one quantity of this price willuse. Used for availability calculations. For example 1 quantity of "Family of 4" will use 4 seats.

Optional
productType string

Type of this product.

Possible values are:

  • ACTIVITY
  • DAYTOUR
  • MULTIDAYTOUR
  • ENQUIRY
  • PRIVATE_TOUR
  • TICKET
  • RENTAL
  • CHARTER
  • EVENT
  • PASS
  • HOPONHOPOFF
  • GIFT_CARD
  • TRANSFER
  • LESSON
  • MERCHANDISE
  • CUSTOM
Required
quantityRequired boolean

Does this product require a quantity to be booked? True for most products. Can be false if the supplier can only provide one quantity at any single time (I.e. private charters) or a price of a booking is fixed regardless of quantity

Optional
quantityRequiredMax int32

Represent the max booking quantity for the product. It can be setup for a supplier product. For a successful booking of the product, the total number of participants (regardless of pricing options), per booking item in the booking request, have to be lesser or equal than this value.

Optional
quantityRequiredMin int32

Represent the min booking quantity for the product. It can be setup for a supplier product. For a successful booking of the product, the total number of participants (regardless of pricing options), per booking item in the booking request, have to be greater or equal than this value.

Optional
shortDescription string

Product description is between 15 and 240 characters.

Required
terms string

Specific terms and conditions for this product.

Optional
unitLabel string

What a quantity for this product is. It can be people (I.e. participant, passenger, diver) or objects (Kayak, Helicopter, etc.)

Optional
unitLabelPlural string

Plural version of unitLabel.

Optional
xeroAccount string

Supplier Xero account for this product.

Optional

Response

The following HTTP status codes may be returned, optionally with a response resource.

Status code Description Resource
200 OK

successful operation

ResponseProduct

Explore this API

apiKey Enter your API Key to try this call
body

new product

Request Content-Type
Response Content-Type
Try it out!