NAV
shell

Introduction

Welcome to the Direct API! You can use our API to access Direct API endpoints, including information on properties, vehicles, units, rates, availability, and quotes in our database. You can view code examples in the dark area to the right.

Staging: https://staging.getdirect.io/api/public/<ORG_ID>

Production: https://app.getdirect.io/api/public/<ORG_ID>

where <ORG_ID> is the ID of the connected organization.

Authentication

To authorize, use this code:

# With shell, you can just pass the correct header with each request
curl "api_endpoint_here"
  -H "Authorization: Token your_api_key"
  -H "Accept: application/vnd.direct.v1"

Make sure to replace your_api_key with your API key.

Direct uses API keys to allow access to the API. You can register a new Direct API key by emailing us at [email protected].

Direct expects for the API key to be included in all API requests to the server in a header that looks like the following:

Authorization: Token your_api_key

Accept: application/vnd.direct.v1

Rate Limits

In an effort to ensure that our users experience constant data flow, maintain maximum up-time and ensure API stability, Direct requires partner applications to operate within the following rate limits (per API key):

Time period Limit
1 second 2 requests
10 seconds 20 requests

The above rate limits are currently applied to all API endpoints

If you receive a 429 Too Many Requests error, you have reached the rate limit. Slow the requests down, spread them more evenly over time and retry.

Promotions

Get All Promotions

curl "https://staging.getdirect.io/api/public/<ORG_ID>/promotions"
  -H "Authorization: Token your_api_key"
  -H "Accept: application/vnd.direct.v1"

The above command returns JSON structured like this:

   [
      {
         "id": 100030000042,
         "special_type": "percent",
         "amount": 30,
         "req_nights": 3,
         "travel_date_start": "2020-05-01",
         "travel_end_date": "2020-07-31",
         "promo_start_date": "2020-03-23",
         "promo_end_date": "2020-04-30",
         "days_of_week": null,
         "code_req": true,
         "coupon_code": "STAYAGAIN3N",
         "name": "30% Off 3+ Nights",
         "internal_name": "30PCT",
         "distro_list": null,
         "portfolio_id": 100030000018,
         "subportfolio_id": 100030000013,
         "created_at": "2020-03-23T19:33:11.462Z",
         "updated_at": "2020-04-21T19:34:00.294Z",
         "active": false,
         "organization_id": 3
      },
      { ... }
   ]

This endpoint retrieves all promotions connected to your organization.

HTTP Request

GET /promotions

URL Parameters

Parameter Description
_limit (optional) Maximum number of promotions to return, up to 100. Default is 20.
_offset (optional) Number of promotions to skip over, where the ordering is consistent but unspecified.

Example with all optional parameters /api/public/990/promotions?_limit=50&_offset=50

Get a Specific Promotion

curl "https://staging.getdirect.io/api/public/<ORG_ID>/promotions/<ID>"
  -H "Authorization: Token your_api_key"
  -H "Accept: application/vnd.direct.v1"

The above command returns JSON structured like this:

   {
      "id": 100030000042,
      "special_type": "percent",
      "amount": 30,
      "req_nights": 3,
      "travel_date_start": "2020-05-01",
      "travel_end_date": "2020-07-31",
      "promo_start_date": "2020-03-23",
      "promo_end_date": "2020-04-30",
      "days_of_week": null,
      "code_req": true,
      "coupon_code": "STAYAGAIN3N",
      "name": "30% Off 3+ Nights",
      "internal_name": "30PCT",
      "distro_list": null,
      "portfolio_id": 100030000018,
      "subportfolio_id": 100030000013,
      "created_at": "2020-03-23T19:33:11.462Z",
      "updated_at": "2020-04-21T19:34:00.294Z",
      "active": false,
      "organization_id": 3
   }

This endpoint retrieves a specific promotion.

HTTP Request

GET /promotions/<ID>

URL Parameters

Parameter Description
ID The ID of the promotion to retrieve

Properties

Get All Properties

curl "https://staging.getdirect.io/api/public/<ORG_ID>/properties"
  -H "Authorization: Token your_api_key"
  -H "Accept: application/vnd.direct.v1"

The above command returns JSON structured like this:

{
   "properties":[
      {
         "id":92,
         "name":"Westgate Resort Bella Suite",
         "updated_at":"2018-12-11T23:56:42.904Z"
      },
      {
         "id":39,
         "name":"La Palme- Sanctuary",
         "updated_at":"2018-12-11T22:39:54.001Z"
      }
   ],
   "total_count": 2
}

This endpoint retrieves all properties connected to your organization.

HTTP Request

GET /properties

URL Parameters

Parameter Description
_limit (optional) Maximum number of properties to return, up to 100. Default is 20.
_offset (optional) Number of properties to skip over, where the ordering is consistent but unspecified.
role (optional) Will only return properties with an active user of that role. Role options are: brand_owner, property_manager, property_contact, housekeeping, maintenance, and reservationist

Example with all optional parameters /api/public/990/properties?_limit=50&_offset=50&role=housekeeping

Get a Specific Property

curl "https://staging.getdirect.io/api/public/<ORG_ID>/properties/<ID>"
  -H "Authorization: Token your_api_key"
  -H "Accept: application/vnd.direct.v1"

The above command returns JSON structured like this:

{
   "id":92,
   "name":"Westgate Resort Bella Suite",
   "unit_code":"ABC123",
   "updated_at":"2018-12-11T23:56:42.904Z",
   "active":true,
   "summary_description":"<description>",
   "summary_headline":"<headline>",
   "summary_rules":"<rules>",
   "multi_unit":false,
   "summary_accommodations": "<accommodations>",
   "property_type": "townhome",
   "slug": "westgate-resort-bella-suite",
   "default_unit_id": 92,
   "address":{
      "addressLine1":"3000 Canyons Resort Drive",
      "addressLine2":"3704",
      "city":"Park City",
      "state":"UT",
      "country":"US",
      "postalCode":"84098",
      "lat":40.6845975,
      "lng":-111.5548417
   },
   "features":[
      "Cycling",
      "Fishing",
      ...
   ],
   "featured_image": {
      "id": 100030000739,
      "image": {
         "url": "https://versailles.s3.amazonaws.com/production/tenant/blackrock-beach-properties/property/171/property_image/image/739/The-Pointe-August-afternoon-_28-1-1024x683.jpg?X-Amz-Expires=86400&X-Amz-Date=20210420T164224Z&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAI7VTIL5G2JOQOLMA%2F20210420%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-SignedHeaders=host&X-Amz-Signature=c8c8061fae336b1e4efbd5f2f59ced44303380e6442148524889fef6e639061e",
      "tiny": {
         "url": "https://versailles.s3.amazonaws.com/production/tenant/blackrock-beach-properties/property/171/property_image/image/739/tiny_The-Pointe-August-afternoon-_28-1-1024x683.jpg?X-Amz-Expires=86400&X-Amz-Date=20210420T164224Z&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAI7VTIL5G2JOQOLMA%2F20210420%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-SignedHeaders=host&X-Amz-Signature=82321b1a8f742353f8fedd9f8a77c5ca8cc3d068dfbca100c70e80d1f32a0e3b"
      },
      "small": {
         "url": "https://versailles.s3.amazonaws.com/production/tenant/blackrock-beach-properties/property/171/property_image/image/739/small_The-Pointe-August-afternoon-_28-1-1024x683.jpg?X-Amz-Expires=86400&X-Amz-Date=20210420T164224Z&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAI7VTIL5G2JOQOLMA%2F20210420%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-SignedHeaders=host&X-Amz-Signature=c399b0f0a7c60da1f94ec4c1f0c41444d1912f9335cac14183bb2c4c72cdc83a"
      },
      "medium": {
         "url": "https://versailles.s3.amazonaws.com/production/tenant/blackrock-beach-properties/property/171/property_image/image/739/medium_The-Pointe-August-afternoon-_28-1-1024x683.jpg?X-Amz-Expires=86400&X-Amz-Date=20210420T164224Z&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAI7VTIL5G2JOQOLMA%2F20210420%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-SignedHeaders=host&X-Amz-Signature=9c3c7a5a086a9f0b71230f087954b1445a64399e961d94b8810e0f138390bfb5"
      },
      "large": {
         "url": "https://versailles.s3.amazonaws.com/production/tenant/blackrock-beach-properties/property/171/property_image/image/739/large_The-Pointe-August-afternoon-_28-1-1024x683.jpg?X-Amz-Expires=86400&X-Amz-Date=20210420T164224Z&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAI7VTIL5G2JOQOLMA%2F20210420%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-SignedHeaders=host&X-Amz-Signature=9158641e75c8492ee6589f00b11e53cf93e44711884c0aadf774c35b370e2140"
      },
      "xlarge": {
         "url": "https://versailles.s3.amazonaws.com/production/tenant/blackrock-beach-properties/property/171/property_image/image/739/xlarge_The-Pointe-August-afternoon-_28-1-1024x683.jpg?X-Amz-Expires=86400&X-Amz-Date=20210420T164224Z&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAI7VTIL5G2JOQOLMA%2F20210420%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-SignedHeaders=host&X-Amz-Signature=b18f957dc2825bf537d668d10ef7fca8d8827cfa8e38d6019f7a69ec4ce577c1"
      }
   },
   "images":[
      {
         "label":"",
         "uri":"<image url>"
      }
   ],
   "units":[
      {
         "id":92,
         "unit_code":"ABC-1",
         "active":true,
         "active_users": [
                {
                    "id": 108900000004,
                    "email": "[email protected]",
                    "name": "John Doe",
                    "avatar": {
                        "url": "/assets/fallback/avatar_default.svg",
                        "avatar_tiny": {
                            "url": "/assets/fallback/avatar_default.svg"
                        }
                    },
                    "telephone": 800-555-1234,
                    "role": "housekeeping",
                    "created_at": "2020-02-25T17:25:37.851Z",
                    "updated_at": "2022-09-19T21:42:25.990Z",
                    "org_id": 1,
                    "user_active_status": true
                }
            ],
         "description":"<description>",
         "propertyType":"PROPERTY_TYPE_CONDO",
         "currency":"USD",
         "name":"PCWG3704",
         "refund_policy":"Full refund if cancelled 30 days before stay",
         "occupancy": 7,
         "bookable_nightly_price": 100,
         "num_bathrooms": 1,
         "num_bedrooms": 1,
         "bathrooms":[
            {
               "id":185,
               "roomSubType":"SHOWER_INDOOR_OR_OUTDOOR",
               "amenities":[]
            }
         ],
         "bedrooms":[
            {
               "id":187,
               "roomSubType":"OTHER_SLEEPING_AREA",
               "amenities":[]
            }
         ],
         "unitFeatures":[
            "Air conditioning",
            "Elevator",
            ...
         ]
      }
   ]
}

This endpoint retrieves a specific property.

HTTP Request

GET /properties/<ID>

URL Parameters

Parameter Description
ID The ID of the property to retrieve

Reservations

List Reservations

curl "https://staging.getdirect.io/api/public/<ORG_ID>/reservations"
  -H "Authorization: Token your_api_key"
  -H "Accept: application/vnd.direct.v1"

The above command returns JSON structured like this:

   {
      "reservations": [
        {
            "id": 951,
            "booking_code": "2VXUAWPE5-ZVCRY7",
            "updated_at": "2019-01-25T01:04:39.744Z",
            "check_in_time": "2019-04-27T15:00:00.000-05:00",
            "check_out_time": "2019-05-02T23:00:00.000-05:00",
            "unit_id": 1,
            "property_id": 1
        },
        {
            "id": 1811,
            "booking_code": "EQRMH4-L6QR1EALF",
            "updated_at": "2019-01-25T01:03:14.583Z",
            "check_in_time": "2019-03-13T15:00:00.000-05:00",
            "check_out_time": "2019-03-16T23:00:00.000-05:00",
            "unit_id": 2,
            "property_id": 1
        }
      ],
      "total_count": 2
   }

This endpoint retrieves all reservations connected to your organization.

HTTP Request

GET /reservations

URL Parameters

Parameter Description
_limit (optional) Maximum number of reservations to return, up to 100. Default is 20.
_offset (optional) Number of reservations to skip over, where the ordering is consistent but unspecified.
start_date (optional) The start of a date range to query for reservations that check in after this date
end_date (required if start_date present) The end of a date range to query for reservations that check out before this date

Example with all optional parameters /api/public/990/reservations?_limit=50&_offset=50&start_date=2023-01-01&end_date=2023-05-30

List Reservations By Id

curl --location --request GET 'https://staging.getdirect.io/api/public/990/list_reservations_by_id' \
--header 'Authorization: Token test_api_key' \
--header 'Accept: application/vnd.direct.v1' \
--header 'Content-Type: application/json' \
--data-raw '{
  "ids": "200000001593, 200000001594, 200000001602, 200000001603, 200000001604"
}'

The above command returns JSON structured like this:

{
  "total_count": 5,
  "reservations": [
      {
         "id": 200000001593,
         "booking_code": "2VXUAWPE5-ZVCRY7",
         "updated_at": "2019-01-25T01:04:39.744Z",
         "status": {
            "cancelled": false,
            "confirmed": true,
            "archived": true
         },
         "num_guests": 0,
         "days_booked": 3,
         "check_in": "2011-10-21",
         "check_out": "2011-10-23",
         "channel": "booking.com",
         "customer": {
            "name": "christopher zepf",
            "email": "[email protected]",
            "telephone": null,
            "location": {
               "city": "Chicago",
               "state": "IL",
               "postal_code": null,
               "country": "USA"
            }
         }
      },
   ...
  ]
}

This endpoint retrieves the reservations in your organization that match the ids in the ids parameter and returns the same response as viewing a single reservation using the GET Reservation endpoint

HTTP Request

GET /list_reservations_by_id

Request Parameters

Parameter Description
ids Comma separated list of reservation ids. Max 100

Create Reservation

curl "https://staging.getdirect.io/api/public/990/reservations"
-d '{
    "property_id": 1,
    "unit_id": 1,
    "customer": {
      "first_name": "John",
      "last_name": "Doe",
      "email": "[email protected]",
      "phone": "1234567890",
      "address": {
        "addressLine1": "123 Main Street"
        "addressLine2": "",
        "city": "Chicago",
        "state": "IL",
        "country": "US",
        "postal_code": "60654"
      }
    },
    "reservation": {
      "check_in": "2019-04-03",
      "check_out": "2019-04-07",
      "adults": 2,
      "children": 0,
      "pets": 0
    },
    "payment": {
      "number": "9999999999999999",
      "cvv": "123",
      "expiration_month": "01",
      "expiration_year": "2050",
      "name_on_card": "John Doe",
      "billing_address": {
        "addressLine1": "123 Main Street",
        "addressLine2": "",
        "city": "Chicago",
        "state": "IL",
        "country": "US",
        "postal_code": "60654"
      }
    },
    "stripe_customer_id": "cus_000example111",
    "addon_fee_ids": [1, 2, 3]
  }'
-H "Authorization: Token test_api_key"
-H "Accept: application/vnd.direct.v1"
-H "Content-Type: application/json"
-X POST

The above command returns JSON structured like this:

{
    "id": 951,
    "booking_code": "2VXUAWPE5-ZVCRY7",
    "updated_at": "2019-01-25T01:04:39.744Z",
    "cancelled": false,
    "confirmed": false,
    "archived": false,
    "num_guests": 1,
    "days_booked": 3,
    "check_in": "2019-04-03",
    "check_out": "2019-04-07",
    ...
}

This endpoint creates a new reservation for the requested unit.

There are two options for submitting customer payment information, depending on the organization's configured payment processor.

Submitting Payment Information Directly (Lynnbrook or Stripe users)

To submit payment method details directly, include a payment request param containing the customer's credit card details. See shell example for specific structure.

Omit the stripe_customer_id request param when making your request this way.

Submitting Tokenized Payment Information (Stripe users only)

To submit tokenized payment information, you must first generate a Stripe Customer and establish a Setup Intent using your Stripe API keys. Once a Customer has been created, a Setup Intent established, and a payment method attached to the Customer, you can include the generated stripe_customer_id with your request params.

Omit the payment request param when making your request this way.

Stripe provides a thorough walk-through of how to set up your site with the following guide: Accept a Payment

If you have any questions about working with Stripe components, please reach out to [email protected].

HTTP Request

POST /reservations

Request Parameters

Parameter Description
property_id The unique identifier of the property being booked
unit_id The unique identifier of the unit being booked
customer Information about the customer making the inquiry
reservation Information about the reservation, including stay dates and guest counts
payment (optional) Customer payment method details
stripe_customer_id (optional) The client side generated ID of the Stripe Customer

Get Reservation

curl "https://staging.getdirect.io/api/public/<ORG_ID>/reservations/<ID>"
  -H "Authorization: Token your_api_key"
  -H "Accept: application/vnd.direct.v1"

The above command returns JSON structured like this:

{
    "id": 951,
    "booking_code": "2VXUAWPE5-ZVCRY7",
    "updated_at": "2019-01-25T01:04:39.744Z",
    "status": {
        "cancelled": false,
        "confirmed": true,
        "archived": true
    },
    "num_guests": 0,
    "days_booked": 3,
    "check_in": "2011-10-21",
    "check_out": "2011-10-23",
    "channel": "booking.com",
    "customer": {
        "name": "christopher zepf",
        "email": "[email protected]",
        "telephone": null,
        "location": {
          "city": "Chicago",
          "state": "IL",
          "postal_code": null,
          "country": "USA"
        }
    }
}

This endpoint retrieves a specific reservation.

HTTP Request

GET /reservations/<ID>

URL Parameters

Parameter Description
ID The ID of the reservation to retrieve

Update Reservation

curl "https://staging.getdirect.io/api/public/3/reservations/100030030467"
-d '{"door_code": "1AT9B3"}'
-H "Authorization: Token test_api_key"
-H "Accept: application/vnd.direct.v1"
-H "Content-Type: application/json"
-X PUT

The above command returns JSON structured like this:

   {
      "id": 100030030467,
      "booking_code": "SHBNSIAFTSZE9XVJ",
      "door_code": "1AT9B3",
      "updated_at": "2020-12-28T16:35:51.725Z",
      "property_id": 100030000002,
      "unit_id": 100030000002,
      "status": {
         "cancelled": true,
         "confirmed": true,
         "archived": true
      },
      "num_guests": 11,
      "days_booked": 26,
      "date_booked": "2019-10-04T00:00:00.000Z",
      "check_in_time": "2020-03-28T17:00:00.000+00:00",
      "check_out_time": "2020-04-22T11:00:00.000+00:00",
      "price_status": "partial",
      "stay_type": "guest",
      "rent_total": 7400,
      "extras_total": 628,
      "booking_total": 8123,
      "channel": "direct",
      "quote_line_items": [
         {
            "id": 100030475410,
            "name": "Room Rate",
            "total_cents": 740000,
            "rate": 296.0,
            "taxable": true,
            "item_type": "room_rate",
            "itemizable_type": "Quote",
            "itemizable_id": 100030030459,
            "created_at": "2020-02-24T17:47:26.715Z",
            "updated_at": "2020-02-24T17:47:26.715Z",
            "refundable": false,
            "optional": false,
            "additional_data": {},
            "organization_id": 3,
            "split": "no",
            "cancellation": false,
            "occurrence_date": null,
            "debit_account_id": null,
            "credit_account_id": null
         },
         {
            "id": 100030475411,
            "name": "Weekly Discount",
            "total_cents": 35520,
            "rate": 4.8,
            "taxable": true,
            "item_type": "discount",
            "itemizable_type": "Quote",
            "itemizable_id": 100030030459,
            "created_at": "2020-02-24T17:47:26.726Z",
            "updated_at": "2020-02-24T17:47:26.726Z",
            "refundable": false,
            "optional": false,
            "additional_data": {},
            "organization_id": 3,
            "split": "no",
            "cancellation": false,
            "occurrence_date": null,
            "debit_account_id": null,
            "credit_account_id": null
         },
         {
            "id": 100030475412,
            "name": "Management Fee",
            "total_cents": 8450,
            "rate": 1.2,
            "taxable": false,
            "item_type": "fees",
            "itemizable_type": "Quote",
            "itemizable_id": 100030030459,
            "created_at": "2020-02-24T17:47:26.735Z",
            "updated_at": "2020-02-24T17:47:26.735Z",
            "refundable": true,
            "optional": false,
            "additional_data": {
               "frequency_at_creation": "per_stay",
               "included_in_base_rent": false,
               "los_ranges_at_creation": [],
               "default_calculation_amount": 1.2
            },
            "organization_id": 3,
            "split": "no",
            "cancellation": false,
            "occurrence_date": null,
            "debit_account_id": null,
            "credit_account_id": null
         },
         {
            "id": 100030475413,
            "name": "Processing Fee",
            "total_cents": 27475,
            "rate": 3.9,
            "taxable": false,
            "item_type": "fees",
            "itemizable_type": "Quote",
            "itemizable_id": 100030030459,
            "created_at": "2020-02-24T17:47:26.744Z",
            "updated_at": "2020-02-24T17:47:26.744Z",
            "refundable": true,
            "optional": false,
            "additional_data": {
               "frequency_at_creation": "per_stay",
               "included_in_base_rent": false,
               "los_ranges_at_creation": [],
               "default_calculation_amount": 3.9
            },
            "organization_id": 3,
            "split": "no",
            "cancellation": false,
            "occurrence_date": null,
            "debit_account_id": null,
            "credit_account_id": null
         },
         {
            "id": 100030475414,
            "name": "Linen Fee",
            "total_cents": 2000,
            "rate": null,
            "taxable": false,
            "item_type": "fees",
            "itemizable_type": "Quote",
            "itemizable_id": 100030030459,
            "created_at": "2020-02-24T17:47:26.758Z",
            "updated_at": "2020-02-24T17:47:26.758Z",
            "refundable": true,
            "optional": false,
            "additional_data": {
               "frequency_at_creation": "per_stay",
               "included_in_base_rent": false,
               "los_ranges_at_creation": [],
               "default_calculation_amount": 20.0
            },
            "organization_id": 3,
            "split": "no",
            "cancellation": false,
            "occurrence_date": null,
            "debit_account_id": null,
            "credit_account_id": null
         },
         {
            "id": 100030475415,
            "name": "Damage Waiver",
            "total_cents": 9900,
            "rate": null,
            "taxable": false,
            "item_type": "fees",
            "itemizable_type": "Quote",
            "itemizable_id": 100030030459,
            "created_at": "2020-02-24T17:47:26.770Z",
            "updated_at": "2020-02-24T17:47:26.770Z",
            "refundable": true,
            "optional": false,
            "additional_data": {
               "frequency_at_creation": "per_stay",
               "included_in_base_rent": false,
               "los_ranges_at_creation": [],
               "default_calculation_amount": 99.0
            },
            "organization_id": 3,
            "split": "no",
            "cancellation": false,
            "occurrence_date": null,
            "debit_account_id": null,
            "credit_account_id": null
         },
         {
            "id": 100030475416,
            "name": "Cleaning Fee",
            "total_cents": 15000,
            "rate": null,
            "taxable": false,
            "item_type": "fees",
            "itemizable_type": "Quote",
            "itemizable_id": 100030030459,
            "created_at": "2020-02-24T17:47:26.786Z",
            "updated_at": "2020-02-24T17:47:26.786Z",
            "refundable": false,
            "optional": false,
            "additional_data": {
               "frequency_at_creation": "per_stay",
               "included_in_base_rent": false,
               "los_ranges_at_creation": [],
               "default_calculation_amount": 150.0
            },
            "organization_id": 3,
            "split": "no",
            "cancellation": false,
            "occurrence_date": null,
            "debit_account_id": null,
            "credit_account_id": null
         },
         {
            "id": 100030475417,
            "name": "Additional Guest Fee",
            "total_cents": 0,
            "rate": null,
            "taxable": true,
            "item_type": "fees",
            "itemizable_type": "Quote",
            "itemizable_id": 100030030459,
            "created_at": "2020-02-24T17:47:26.803Z",
            "updated_at": "2020-02-24T17:47:26.803Z",
            "refundable": true,
            "optional": false,
            "additional_data": {
               "frequency_at_creation": "per_stay",
               "included_in_base_rent": false,
               "additional_guest_start": 1,
               "los_ranges_at_creation": [],
               "default_calculation_amount": 0.0
            },
            "organization_id": 3,
            "split": "no",
            "cancellation": false,
            "occurrence_date": null,
            "debit_account_id": null,
            "credit_account_id": null
         },
         {
            "id": 100030475418,
            "name": "Sales Tax",
            "total_cents": 25009,
            "rate": 3.55,
            "taxable": false,
            "item_type": "taxes",
            "itemizable_type": "Quote",
            "itemizable_id": 100030030459,
            "created_at": "2020-02-24T17:47:26.814Z",
            "updated_at": "2020-02-24T17:47:26.814Z",
            "refundable": true,
            "optional": false,
            "additional_data": {
               "tax_type": "Sales tax"
            },
            "organization_id": 3,
            "split": "no",
            "cancellation": false,
            "occurrence_date": null,
            "debit_account_id": null,
            "credit_account_id": null
         },
         {
            "id": 100030475419,
            "name": "City Tax",
            "total_cents": 20078,
            "rate": 2.85,
            "taxable": false,
            "item_type": "taxes",
            "itemizable_type": "Quote",
            "itemizable_id": 100030030459,
            "created_at": "2020-02-24T17:47:26.826Z",
            "updated_at": "2020-02-24T17:47:26.826Z",
            "refundable": true,
            "optional": false,
            "additional_data": {
               "tax_type": "City tax"
            },
            "organization_id": 3,
            "split": "no",
            "cancellation": false,
            "occurrence_date": null,
            "debit_account_id": null,
            "credit_account_id": null
         },
         {
            "id": 100030475420,
            "name": "Booking Total",
            "total_cents": 812392,
            "rate": null,
            "taxable": true,
            "item_type": "total",
            "itemizable_type": "Quote",
            "itemizable_id": 100030030459,
            "created_at": "2020-02-24T17:47:26.837Z",
            "updated_at": "2020-02-24T17:47:26.837Z",
            "refundable": false,
            "optional": false,
            "additional_data": {},
            "organization_id": 3,
            "split": "no",
            "cancellation": false,
            "occurrence_date": null,
            "debit_account_id": null,
            "credit_account_id": null
         }
      ],
      "price_paid": "4061.96",
      "price_remaining": "4061.96",
      "date_cancelled": "2020-12-28T16:35:51.725Z",
      "customer": {
         "name": "Maryanne Nitzsche",
         "email": "[email protected]",
         "telephone": "210.820.9588",
         "location": {
            "city": null,
            "state": null,
            "postal_code": null,
            "country": null
         }
      }
   }

This endpoint updates the door code for the specified reservation given.

HTTP Request

PUT /reservations/<R_ID>

URL Parameters

Parameter Description
R_ID The ID of the reservation to retrieve

Request Parameters

Parameter Description
door_code The code to unlock the property's door

Reviews

Create A Review

curl --location --request POST 'https://staging.getdirect.io/api/public/<ORG_ID>/reviews' \
--header 'Authorization: Token your_api_key' \
--header "Accept: application/vnd.direct.v1"
--data-raw '{
  "booking_code": "ABC123",
  "title": "review title",
  "body": "review body",
  "rating": 5
}'

The above command returns JSON structured like this:

{
   "id": 1,
   "unit_id": 1,
   "booking_id": 1,
   "title": "review title",
   "body": "review body",
   "name": "Customer Name",
   "check_in_date": "2020-05-24T00:00:00.000Z",
   "status": "pending",
   "rating": 5,
   "created_at": "2020-05-22T19:10:21.967Z",
   "updated_at": "2020-05-22T19:18:02.117Z",
   "reviewed_date": "2020-05-22T19:10:21.965Z",
   "check_out_date": "2020-05-31T00:00:00.000Z",
   "where_from": null,
   "organization_id": 1,
   "customer_id": null
}

Request Parameters

Parameter Description
booking_code(required) The booking code of the stay the customer is reviewing
rating(required) The rating the customer gave. Must be between 0 and 5
title The title the customer gave their review, if any
body The body of the review

HTTP Request

POST /reviews

Get All Reviews

curl "https://staging.getdirect.io/api/public/<ORG_ID>/reviews"
  -H "Authorization: Token your_api_key"
  -H "Accept: application/vnd.direct.v1"

The above command returns JSON structured like this:

   [
      {
         "id": 100030000012,
         "unit_id": 100030000053,
         "booking_id": 100030031551,
         "title": "Great luxury property for families ",
         "body": "<p>Testing the review. Great location! Super clean&nbsp;</p>\n",
         "name": "Lauren A Flaugher",
         "check_in_date": "2020-05-24T00:00:00.000Z",
         "status": "published",
         "rating": 5,
         "created_at": "2020-05-22T19:10:21.967Z",
         "updated_at": "2020-05-22T19:18:02.117Z",
         "reviewed_date": "2020-05-22T19:10:21.965Z",
         "check_out_date": "2020-05-31T00:00:00.000Z",
         "where_from": null,
         "organization_id": 3,
         "customer_id": null
      },
      { ... }
   ]

This endpoint retrieves all reviews connected to your organization.

HTTP Request

GET /reviews

URL Parameters

Parameter Description
_limit (optional) Maximum number of reviews to return, up to 100. Default is 20.
_offset (optional) Number of reviews to skip over, where the ordering is consistent but unspecified.

Example with all optional parameters /api/public/990/reviews?_limit=50&_offset=50

Get a Specific Review

curl "https://staging.getdirect.io/api/public/<ORG_ID>/reviews/<ID>"
  -H "Authorization: Token your_api_key"
  -H "Accept: application/vnd.direct.v1"

The above command returns JSON structured like this:

   {
      "id": 100030000012,
      "unit_id": 100030000053,
      "booking_id": 100030031551,
      "title": "Great luxury property for families ",
      "body": "<p>Testing the review. Great location! Super clean&nbsp;</p>\n",
      "name": "Lauren A Flaugher",
      "check_in_date": "2020-05-24T00:00:00.000Z",
      "status": "published",
      "rating": 5,
      "created_at": "2020-05-22T19:10:21.967Z",
      "updated_at": "2020-05-22T19:18:02.117Z",
      "reviewed_date": "2020-05-22T19:10:21.965Z",
      "check_out_date": "2020-05-31T00:00:00.000Z",
      "where_from": null,
      "organization_id": 3,
      "customer_id": null
   }

This endpoint retrieves a specific review.

HTTP Request

GET /reviews/<ID>

URL Parameters

Parameter Description
ID The ID of the review to retrieve

Search

Get Listings

curl "https://staging.getdirect.io/api/public/<ORG_ID>/search"
  -H "Authorization: Token your_api_key"
  -H "Accept: application/vnd.direct.v1"

The above command returns JSON structured like this:

   {
      "results": [
         {
            "average_default_nightly_price": 296,
            "bookable_nightly_price": 296,
            "currency": "usd",
            "property": {
               "id": 100030000171,
               "name": "The Pointe Resort",
               "active": true,
               "multi_unit": true,
               "summary_accommodations": null,
               "summary_description": "<p style=\"text-align:left;\"><span style=\"color: rgb(42,42,42);background-color: rgb(255,255,255);font-size: 15px;font-family: webfontregular, Arial, Helvetica, sans-serif;\">A spacious luxury condominium spanning 2000+ square feet, The Pointe 3-bedroom allows you to come together with friends and family in an expansive open floor plan with kitchen, dining, and living room, while still providing tranquil personal space with each of the three bedrooms. </span></p>\n<p style=\"text-align:left;\"><span style=\"color: rgb(42,42,42);background-color: rgb(255,255,255);font-size: 15px;font-family: webfontregular, Arial, Helvetica, sans-serif;\">Between poolside relaxing and beach dreaming, use the stainless steel kitchen to prepare small bites, full meals, or cocktails and enjoy around the kitchen island, curl up on the modern plush couch to indulge in the upcoming sporting event, or just kick back on one of the three balconies with wood trellis accents.</span></p>\n<p style=\"text-align:left;\"><span style=\"color: rgb(42,42,42);background-color: rgb(255,255,255);font-size: 15px;font-family: webfontregular, Arial, Helvetica, sans-serif;\">The master bedroom comes with an office nook if you are inclined to do some work while visiting The Pointe, and if you’d rather relax, this bedroom is equipped with a flat screen television, bathroom with bathtub and separate shower, and entrance onto its private balcony or patio.</span></p>\n<p style=\"text-align:left;\"><span style=\"color: rgb(42,42,42);background-color: rgb(255,255,255);font-size: 15px;font-family: webfontregular, Arial, Helvetica, sans-serif;\">The bedroom off of the living room is discretely tucked away by closing off the sleek farm doors, and features a bathroom with separate bathtub and shower, dual sinks, and water closet.</span></p>\n<p><span style=\"color: rgb(42,42,42);background-color: rgb(255,255,255);font-size: 15px;font-family: webfontregular, Arial, Helvetica, sans-serif;\">The final bedroom includes two double beds, flat screen tv, office space, bathroom, and entry to its own private balcony or patio.</span></p>\n<p style=\"text-align:left;\"><span style=\"color: rgb(42,42,42);background-color: rgb(255,255,255);font-size: 15px;font-family: webfontregular, Arial, Helvetica, sans-serif;\">Each 3-bedroom comes with washer and dryer, so you can feel productive while doing some poolside lounging.</span></p>\n",
               "summary_headline": "The Pointe - Three Bedroom with Plunge Pool",
               "summary_rules": null,
               "features_adventure": {
                  "SPORTS_BASKETBALL_COURT": {
                     "label": "Basketball court",
                     "value": true
                  },
                  { ... }
               },
               "features_attractions": {
                  "ATTRACTIONS_ARBORETUM": {
                     "label": "Arboretum",
                     "value": true
                  },
                  { ... }
               },
               "features_car": {
                  "CAR_NECESSARY": {
                     "label": "Necessary",
                     "value": false
                  },
                  { ... }
               },
               "features_leisure": {
                  "LEISURE_ANTIQUING": {
                     "label": "Antiquing",
                     "value": true
                  },
                  { ... }
               },
               "features_local": {
                  "LOCAL_ATM_BANK": {
                     "label": "ATM",
                     "value": false
                  },
                  { ... }
               },
               "features_location": {
                  "LOCATION_TYPE_BEACH": {
                     "label": "Beach",
                     "value": true
                  },
                  { ... }
               },
               "property_type": "condo_hotel",
               "organization_id": 3,
               "created_at": "2019-03-26T17:31:39.052Z",
               "updated_at": "2021-01-19T21:48:31.103Z",
               "manager_info_visible": false,
               "registration_id": "",
               "external_id": null,
               "extra": {},
               "unit_code": "",
               "features_cleaning": {}
            },
            "location": {
               "id": 100030000258,
               "adr_street": "10711 E COUNTY HWY 30A ",
               "adr_unit": "",
               "adr_city": "Rosemary Beach",
               "adr_state": "FL",
               "adr_country": "United States",
               "adr_postal_code": "32461",
               "geo_latitude": 30.27991669999999,
               "geo_longitude": -86.0110212,
               "locationable_type": "Property",
               "locationable_id": 100030000171,
               "created_at": "2019-03-26T17:31:39.065Z",
               "updated_at": "2020-03-05T16:58:14.327Z",
               "organization_id": 3,
               "exact": false
            },
            "distance": 1298.3491129728013,
            "listings": [
               {
                  "listing": {
                     "id": 100030000206,
                     "currency": "usd",
                     "unit_id": 100030000182,
                     "tax_rate": 5.0,
                     "brand_id": 100030000048,
                     "instant_booking": true,
                     "refund_policy": null,
                     "refund_policy_custom": null,
                     "featured": false,
                     "created_at": "2019-03-26T17:34:19.547Z",
                     "updated_at": "2021-01-19T21:48:30.803Z",
                     "enabled_distribution_homeaway": false,
                     "enabled_distribution_booking": false,
                     "enabled_distribution_airbnb": false,
                     "airbnb_refund_policy": null,
                     "booking_dot_com_refund_policy": null,
                     "homeaway_refund_policy": null,
                     "adj_tax": 0.0,
                     "max_night_with_tax_rate": 0,
                     "exclude_tax": false,
                     "tax_adjustable": false,
                     "organization_id": 3,
                     "slug": "the-pointe-resort",
                     "is_multi_unit": true,
                     "is_room_type": true,
                     "rate_inflator": null
                  },
                  "unit": {
                     "id": 100030000182,
                     "name": "Three Bedroom with Plunge Pool",
                     "active": true,
                     "summary_description": null,
                     "features_accommodations": {
                        "ACCOMMODATIONS_TYPE_BED_AND_BREAKFAST": {
                           "label": "Bed and breakfast",
                           "value": false
                        },
                        { ... }
                     },
                     "features_amenities": {
                        "AMENITIES_AIR_CONDITIONING": {
                           "label": "Air conditioning",
                           "value": true
                        },
                        { ... }
                     },
                     "features_dining": {
                        "KITCHEN_DINING_AREA": {
                           "label": "Dining area",
                           "value": false
                        },
                        { ... }
                     },
                     "features_entertainment": {
                        "ENTERTAINMENT_BOOKS": {
                           "label": "Books",
                           "value": false
                        },
                        { ... }
                     },
                     "features_outdoor": {
                        "OUTDOOR_BALCONY": {
                           "label": "Balcony",
                           "value": false
                        },
                        { ... }
                     },
                     "features_spa": {
                        "POOL_SPA_COMMUNAL_POOL": {
                           "label": "Communal pool",
                           "value": false
                        },
                        { ... }
                     },
                     "features_suitability": {
                        "SUITABILITY_CHILDREN_WELCOME": {
                           "label": "Children welcome",
                           "value": false
                        },
                        { ... }
                     },
                     "features_themes": {
                        "THEMES_ADVENTURE": {
                           "label": "Adventure",
                           "value": false
                        },
                        { ... }
                     },
                     "num_bathrooms": 3.0,
                     "num_bedrooms": 4,
                     "num_lounge": null,
                     "num_sleep": 6,
                     "num_sleep_in_beds": 6,
                     "unit_type": "condo",
                     "property_id": 100030000171,
                     "created_at": "2019-03-26T17:34:16.398Z",
                     "updated_at": "2021-01-19T21:48:30.805Z",
                     "check_in_instructions": {},
                     "emergency_contact_phone": null,
                     "emergency_contact_first_name": null,
                     "emergency_contact_last_name": null,
                     "portfolio_id": 100030000018,
                     "external_id": null,
                     "external_contract_id": 100030000015,
                     "airbnb_headline": "Three Bedroom with Plunge Pool",
                     "pointcentral_customer_id": null,
                     "organization_id": 3,
                     "extra": {},
                     "subportfolio_id": 100030000013,
                     "unit_group_id": 100030000021,
                     "rate_group_id": 100030000060,
                     "size": null,
                     "measurement_type": "sq_feet",
                     "minimum_age": null,
                     "features_safety": {
                        "SMOKE_DETECTOR": {
                           "label": "Smoke Detector",
                           "value": false
                        },
                        { ... }
                     },
                     "guest_controls_description": null,
                     "unit_code": "RRCDD",
                     "enabled_on_kaba": false,
                     "room_type_id": 100030000001
                  },
                  "pricing": {
                     "id": 100030000298,
                     "default_nightly_weekday": "425.0",
                     "default_nightly_weekend": "630.0",
                     "discount_full_week": "5.0",
                     "discount_full_month": "15.0",
                     "pricing_calendar": {
                        "17-05-2021": {
                           "note": "unit range 100030000303 has updated this pricing",
                           "weekly": "1.0",
                           "monthly": "5.0",
                           "range_type": "high",
                           "nightlyWeekday": "600.0",
                           "nightlyWeekend": "600.0"
                        },
                        { ... }
                     },
                     "unit_listing_id": 100030000206,
                     "created_at": "2020-02-04T19:05:31.120Z",
                     "updated_at": "2020-11-11T20:56:23.782Z",
                     "organization_id": 3,
                     "unit_id": 100030000182,
                     "additional_guest_amount_cents": null,
                     "additional_guest_start": 1
                  },
                  "average_default_nightly_price": 483.57,
                  "bookable_nightly_price": 660.0,
                  "can_fit_guests": true,
                  "num_bathrooms": 3.0,
                  "num_bedrooms": 4,
                  "bookable": true,
                  "can_stay": true,
                  "bookable_nightly_price_before_promotion": 660.0,
                  "available": true,
                  "booked": false,
                  "changeover": [
                     "any",
                     "any"
                  ],
                  "instant_booking": true
               },
               {
                  "listing": {
                     "id": 100030000249,
                     "currency": "usd",
                     "unit_id": 100030000183,
                     "tax_rate": 5.0,
                     "brand_id": 100030000048,
                     "instant_booking": true,
                     "refund_policy": "day30",
                     "refund_policy_custom": "",
                     "featured": false,
                     "created_at": "2020-02-04T19:13:04.952Z",
                     "updated_at": "2021-01-19T21:48:31.098Z",
                     "enabled_distribution_homeaway": true,
                     "enabled_distribution_booking": true,
                     "enabled_distribution_airbnb": true,
                     "airbnb_refund_policy": "moderate",
                     "booking_dot_com_refund_policy": "day30",
                     "homeaway_refund_policy": "strict",
                     "adj_tax": 0.0,
                     "max_night_with_tax_rate": 0,
                     "exclude_tax": false,
                     "tax_adjustable": false,
                     "organization_id": 3,
                     "slug": "the-pointe-resort",
                     "is_multi_unit": true,
                     "is_room_type": true,
                     "rate_inflator": null
                  },
                  "unit": {
                     "id": 100030000183,
                     "name": "Three Bedroom with Plunge Pool",
                     "active": true,
                     "summary_description": "<p style=\"text-align:start;\"><span style=\"color: rgb(26,25,25);background-color: rgb(255,255,255);font-size: 14px;font-family: inherit;\">Condo | 2,000+ Square Feet</span></p>\n<p style=\"text-align:start;\"><span style=\"color: rgb(26,25,25);background-color: rgb(255,255,255);font-size: 14px;font-family: inherit;\">Sleeps:</span> <span style=\"color: rgb(26,25,25);background-color: rgb(255,255,255);font-size: 14px;font-family: inherit;\">6</span></p>\n<p style=\"text-align:start;\"><span style=\"color: rgb(26,25,25);background-color: rgb(255,255,255);font-size: 14px;font-family: inherit;\">Bathrooms:</span> <span style=\"color: rgb(26,25,25);background-color: rgb(255,255,255);font-size: 14px;font-family: inherit;\">3 | Bedrooms:</span> <span style=\"color: rgb(26,25,25);background-color: rgb(255,255,255);font-size: 14px;font-family: inherit;\">3</span></p>\n<p style=\"text-align:start;\"><span style=\"color: rgb(26,25,25);background-color: rgb(255,255,255);font-size: 14px;font-family: inherit;\">Pool View</span></p>\n",
                     "features_accommodations": {
                        "ACCOMMODATIONS_TYPE_BED_AND_BREAKFAST": {
                           "label": "Bed and breakfast",
                           "value": false
                        },
                        { ... }
                     },
                     "features_amenities": {
                        "AMENITIES_AIR_CONDITIONING": {
                           "label": "Air conditioning",
                           "value": true
                        },
                        { ... }
                     },
                     "features_dining": {
                        "KITCHEN_DINING_AREA": {
                           "label": "Dining area",
                           "value": false
                        },
                        { ... }
                     },
                     "features_entertainment": {
                        "ENTERTAINMENT_BOOKS": {
                           "label": "Books",
                           "value": false
                        },
                        { ... }
                     },
                     "features_outdoor": {
                        "OUTDOOR_BALCONY": {
                           "label": "Balcony",
                           "value": false
                        },
                        { ... }
                     },
                     "features_spa": {
                        "POOL_SPA_COMMUNAL_POOL": {
                           "label": "Communal pool",
                           "value": false
                        },
                        { ... }
                     },
                     "features_suitability": {
                        "SUITABILITY_CHILDREN_WELCOME": {
                           "label": "Children welcome",
                           "value": false
                        },
                        { ... }
                     },
                     "features_themes": {
                        "THEMES_ADVENTURE": {
                           "label": "Adventure",
                           "value": false
                        },
                        { ... }
                     },
                     "num_bathrooms": 3.0,
                     "num_bedrooms": 4,
                     "num_lounge": null,
                     "num_sleep": 6,
                     "num_sleep_in_beds": 6,
                     "unit_type": "condo",
                     "property_id": 100030000171,
                     "created_at": "2019-03-26T17:36:25.261Z",
                     "updated_at": "2021-01-19T21:48:31.099Z",
                     "check_in_instructions": {},
                     "emergency_contact_phone": null,
                     "emergency_contact_first_name": null,
                     "emergency_contact_last_name": null,
                     "portfolio_id": 100030000018,
                     "external_id": null,
                     "external_contract_id": 100030000015,
                     "airbnb_headline": "Three Bedroom with Plunge Pool",
                     "pointcentral_customer_id": null,
                     "organization_id": 3,
                     "extra": {},
                     "subportfolio_id": 100030000013,
                     "unit_group_id": 100030000021,
                     "rate_group_id": 100030000060,
                     "size": null,
                     "measurement_type": "sq_feet",
                     "minimum_age": null,
                     "features_safety": {
                        "SMOKE_DETECTOR": {
                           "label": "Smoke Detector",
                           "value": false
                        },
                        { ... }
                     },
                     "guest_controls_description": null,
                     "unit_code": null,
                     "enabled_on_kaba": false,
                     "room_type_id": 100030000001
                  },
                  "pricing": {
                     "id": 100030000299,
                     "default_nightly_weekday": "275.0",
                     "default_nightly_weekend": "350.0",
                     "discount_full_week": "3.0",
                     "discount_full_month": "5.0",
                     "pricing_calendar": {
                        "09-01-2021": {
                           "note": "unit range 100030000302 has updated this pricing",
                           "weekly": "1.0",
                           "monthly": "5.0",
                           "range_type": "high",
                           "nightlyWeekday": "600.0",
                           "nightlyWeekend": "600.0"
                        },
                        { ... }
                     },
                     "unit_listing_id": null,
                     "created_at": "2020-02-04T19:05:31.160Z",
                     "updated_at": "2020-11-11T20:56:24.874Z",
                     "organization_id": 3,
                     "unit_id": 100030000183,
                     "additional_guest_amount_cents": null,
                     "additional_guest_start": 1
                  },
                  "average_default_nightly_price": 296.43,
                  "bookable_nightly_price": 660.0,
                  "can_fit_guests": true,
                  "num_bathrooms": 3.0,
                  "num_bedrooms": 4,
                  "bookable": true,
                  "can_stay": true,
                  "bookable_nightly_price_before_promotion": 660.0,
                  "available": true,
                  "booked": false,
                  "changeover": [
                     "any",
                     "any"
                  ],
                  "instant_booking": true
               }
            ],
            "bookable": true,
            "featured": false,
            "num_bathrooms": 3,
            "num_bedrooms": 4,
            "name": "The Pointe Resort",
            "multi_unit": true,
            "room_type_property": true,
            "default_unit_id": 100030000182,
            "featured_image": {
               "id": 100030000739,
               "image": {
                  "url": "https://versailles.s3.amazonaws.com/production/tenant/blackrock-beach-properties/property/171/property_image/image/739/The-Pointe-August-afternoon-_28-1-1024x683.jpg?X-Amz-Expires=86400&X-Amz-Date=20210420T164224Z&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAI7VTIL5G2JOQOLMA%2F20210420%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-SignedHeaders=host&X-Amz-Signature=c8c8061fae336b1e4efbd5f2f59ced44303380e6442148524889fef6e639061e",
                  "tiny": {
                     "url": "https://versailles.s3.amazonaws.com/production/tenant/blackrock-beach-properties/property/171/property_image/image/739/tiny_The-Pointe-August-afternoon-_28-1-1024x683.jpg?X-Amz-Expires=86400&X-Amz-Date=20210420T164224Z&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAI7VTIL5G2JOQOLMA%2F20210420%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-SignedHeaders=host&X-Amz-Signature=82321b1a8f742353f8fedd9f8a77c5ca8cc3d068dfbca100c70e80d1f32a0e3b"
                  },
                  "small": {
                     "url": "https://versailles.s3.amazonaws.com/production/tenant/blackrock-beach-properties/property/171/property_image/image/739/small_The-Pointe-August-afternoon-_28-1-1024x683.jpg?X-Amz-Expires=86400&X-Amz-Date=20210420T164224Z&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAI7VTIL5G2JOQOLMA%2F20210420%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-SignedHeaders=host&X-Amz-Signature=c399b0f0a7c60da1f94ec4c1f0c41444d1912f9335cac14183bb2c4c72cdc83a"
                  },
                  "medium": {
                     "url": "https://versailles.s3.amazonaws.com/production/tenant/blackrock-beach-properties/property/171/property_image/image/739/medium_The-Pointe-August-afternoon-_28-1-1024x683.jpg?X-Amz-Expires=86400&X-Amz-Date=20210420T164224Z&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAI7VTIL5G2JOQOLMA%2F20210420%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-SignedHeaders=host&X-Amz-Signature=9c3c7a5a086a9f0b71230f087954b1445a64399e961d94b8810e0f138390bfb5"
                  },
                  "large": {
                     "url": "https://versailles.s3.amazonaws.com/production/tenant/blackrock-beach-properties/property/171/property_image/image/739/large_The-Pointe-August-afternoon-_28-1-1024x683.jpg?X-Amz-Expires=86400&X-Amz-Date=20210420T164224Z&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAI7VTIL5G2JOQOLMA%2F20210420%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-SignedHeaders=host&X-Amz-Signature=9158641e75c8492ee6589f00b11e53cf93e44711884c0aadf774c35b370e2140"
                  },
                  "xlarge": {
                     "url": "https://versailles.s3.amazonaws.com/production/tenant/blackrock-beach-properties/property/171/property_image/image/739/xlarge_The-Pointe-August-afternoon-_28-1-1024x683.jpg?X-Amz-Expires=86400&X-Amz-Date=20210420T164224Z&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAI7VTIL5G2JOQOLMA%2F20210420%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-SignedHeaders=host&X-Amz-Signature=b18f957dc2825bf537d668d10ef7fca8d8827cfa8e38d6019f7a69ec4ce577c1"
                  }
               },
               "image_processing": false,
               "label": "",
               "order": 0,
               "property_id": 100030000171,
               "created_at": "2020-03-05T16:55:26.899Z",
               "updated_at": "2020-03-05T16:55:33.172Z",
               "height": 683,
               "width": 1024,
               "organization_id": 3
            },
            "search_type": "dated",
            "slug": "the-pointe-resort",
            "can_fit_guests": true,
            "instant_booking": true,
            "review_count": 0,
            "review_average": null,
            "bookable_nightly_price_before_promotion": 0
         }
      ],
      "min_price": 10,
      "max_price": 999,
      "total_pages": 1,
      "total_properties": 1,
      "max_bedrooms": 4,
      "max_baths": 3.0,
      "max_guests": 6
   }

This endpoint retrieves all listings connected to your organization.

HTTP Request

GET /search

URL Parameters

Parameter Description
_limit (required) Maximum number of reviews to return, up to 100. Default is 20.
booking_range (required) A stringified json object of the booking range days.
brand_id (required) The unique ID of the Direct brand.
amenities (optional) A stringified json object of amenities to filter by.
num_bathrooms (optional) Filter by listings with a minimum number of bathrooms.
num_bedrooms (optional) Filter by listings with a minimum number of bedrooms.
num_guests (optional) Filter by listings with a minimum number of guests.
page (optional) Set the page of results returned.

Example with all optional parameters /api/public/990/search?_limit=50&booking_range=%5B%7B%22key%22%3A%2223-04-2021%22%2C%22day%22%3A5%7D%2C%7B%22key%22%3A%2224-04-2021%22%2C%22day%22%3A6%7D%2C%7B%22key%22%3A%2225-04-2021%22%2C%22day%22%3A0%7D%2C%7B%22key%22%3A%2226-04-2021%22%2C%22day%22%3A1%7D%5D&num_bathrooms=1&num_bedrooms=2&num_guests=3&page=1&brand_id=100030000048&amenities=%7B%22Property%22%3A%5B%7B%22model%22%3A%22Property%22%2C%22column%22%3A%22features_location%22%2C%22property%22%3A%22LOCATION_TYPE_BEACH_FRONT%22%2C%22label%22%3A%22Beachfront%22%7D%2C%7B%22model%22%3A%22Property%22%2C%22column%22%3A%22features_location%22%2C%22property%22%3A%22LOCATION_TYPE_BEACH_VIEW%22%2C%22label%22%3A%22Beach%20view%22%7D%5D%2C%22Unit%22%3A%5B%5D%7D

Statements

Get All Statements

curl "https://staging.getdirect.io/api/public/<ORG_ID>/statements"
  -H "Authorization: Token your_api_key"
  -H "Accept: application/vnd.direct.v1"

The above command returns JSON structured like this:

   {
      "statements": [
        {
            "id": 100030003979,
            "document_id": null,
            "name": "Statement for Dia Osinski: 02/01/20 - 02/29/20",
            "end_balance_cents": 597850,
            "start_balance_cents": 0,
            "start_date": "2020-02-01",
            "end_date": "2020-02-29",
            "processed_at": "2020-03-06T22:54:33.757Z",
            "payee_type": "Employee",
            "payee_id": 100030002763,
            "optional_id": "123",
            "optional_note": "123",
            "current_balance_cents": -1432288,
            "visibility_status": "visible",
            "payee_role": "property_contact",
            "deferred_balance": 0
        },
        {
            "id": 100030003980,
            "document_id": null,
            "name": "Statement for Prince Moore: 02/01/20 - 02/29/20",
            "end_balance_cents": -16563,
            "start_balance_cents": 0,
            "start_date": "2020-02-01",
            "end_date": "2020-02-29",
            "processed_at": null,
            "payee_type": "Employee",
            "payee_id": 100030002764,
            "optional_id": null,
            "optional_note": null,
            "current_balance_cents": -16563,
            "visibility_status": "visible",
            "payee_role": "property_contact",
            "deferred_balance": 0
        }
      ],
      "total_count": 2
   }

This endpoint retrieves all statements connected to your organization.

HTTP Request

GET /statements

URL Parameters

Parameter Description
_limit (optional) Maximum number of statements to return, up to 100. Default is 20.
_offset (optional) Number of statements to skip over, where the ordering is consistent but unspecified.

Example with all optional parameters /api/public/990/statements?_limit=50&_offset=50

Get a Specific Statement

curl "https://staging.getdirect.io/api/public/<ORG_ID>/statements/<ID>"
  -H "Authorization: Token your_api_key"
  -H "Accept: application/vnd.direct.v1"

The above command returns JSON structured like this:

   {
      "id": 100030003979,
      "document_id": null,
      "name": "Statement for Dia Osinski: 02/01/20 - 02/29/20",
      "end_balance_cents": 597850,
      "start_balance_cents": 0,
      "start_date": "2020-02-01",
      "end_date": "2020-02-29",
      "processed_at": "2020-03-06T22:54:33.757Z",
      "payee_type": "Employee",
      "payee_id": 100030002763,
      "optional_id": "123",
      "optional_note": "123",
      "current_balance_cents": -1432288,
      "visibility_status": "visible",
      "payee_role": "property_contact",
      "deferred_balance": 0,
      "payouts": [
         {
            "unit_name": "Full Property: Francisco Villa - ",
            "payout_id": 100030032337,
            "booking_code": "5ZJUGQFLIEEPDJ0R",
            "guest_name": "Benton Schmitt",
            "nights": 10,
            "gross_revenue": 2807.66,
            "mgmt_fee": 561.53,
            "deductions": 0.0,
            "adjustments": 0.0,
            "net_to_owner": 2246.13
         },
         {
            "unit_name": "Full Property: Casa Barbara - ",
            "payout_id": 100030032329,
            "booking_code": "VSHWQ88X1HEGT1SS",
            "guest_name": "Wiley Frami I",
            "nights": 5,
            "gross_revenue": 5097.5,
            "mgmt_fee": 1019.5,
            "deductions": 0.0,
            "adjustments": 0.0,
            "net_to_owner": 4078.0
         }
      ],
      "payouts_subtotal": 632413,
      "unit_expenses": [
         {
            "id": 100030000052,
            "unit_name": "Casa Barbara",
            "dashboard_url": "/dashboard/blackrock-beach-properties/properties/100030000047",
            "gross_report_totals": 12037,
            "work_reports": [
               {
                  "id": 100030002342,
                  "service_date": "2020-02-07T00:00:00.000Z",
                  "invoice": null,
                  "total_cents": 6616,
                  "description": "Yardwork",
                  "vendor_name": "Armando Connelly III",
                  "deductions": [
                     {
                        "id": 100030002484,
                        "amount_cents": 6616,
                        "note": "Yardwork",
                        "reason": "exceeded_scope",
                        "deduction_type": null,
                        "deductable_type": "WorkReport",
                        "deductable_id": 100030002342,
                        "employee_id": 100030002763,
                        "created_at": "2020-02-24T18:10:14.239Z",
                        "updated_at": "2020-02-24T18:10:14.239Z",
                        "organization_id": 3
                     }
                  ]
               },
               {
                  "id": 100030002399,
                  "service_date": "2020-02-24T00:00:00.000Z",
                  "invoice": null,
                  "total_cents": 5421,
                  "description": "Bought new door knobs",
                  "vendor_name": "Gerard Maggio IV",
                  "deductions": [
                     {
                        "id": 100030002538,
                        "amount_cents": 5421,
                        "note": "Bought new door knobs",
                        "reason": "purchase_required",
                        "deduction_type": null,
                        "deductable_type": "WorkReport",
                        "deductable_id": 100030002399,
                        "employee_id": 100030002763,
                        "created_at": "2020-02-24T18:10:17.080Z",
                        "updated_at": "2020-02-24T18:10:17.080Z",
                        "organization_id": 3
                     }
                  ]
               }
            ]
         },
         {
            "id": 100030000164,
            "unit_name": "Francisco Villa",
            "dashboard_url": "/dashboard/blackrock-beach-properties/properties/100030000157",
            "gross_report_totals": 22526,
            "work_reports": [
               {
                  "id": 100030002413,
                  "service_date": "2020-02-24T00:00:00.000Z",
                  "invoice": null,
                  "total_cents": 12237,
                  "description": "Fixed pool heater",
                  "vendor_name": "Gerard Maggio IV",
                  "deductions": [
                     {
                        "id": 100030002552,
                        "amount_cents": 12237,
                        "note": "Fixed pool heater",
                        "reason": "purchase_required",
                        "deduction_type": null,
                        "deductable_type": "WorkReport",
                        "deductable_id": 100030002413,
                        "employee_id": 100030002763,
                        "created_at": "2020-02-24T18:10:17.826Z",
                        "updated_at": "2020-02-24T18:10:17.826Z",
                        "organization_id": 3
                     },
                     {
                        "id": 100030002653,
                        "amount_cents": 0,
                        "note": "<p>This is the adjustment notes</p>\n",
                        "reason": null,
                        "deduction_type": null,
                        "deductable_type": "WorkReport",
                        "deductable_id": 100030002413,
                        "employee_id": 100030002763,
                        "created_at": "2020-03-06T22:53:58.032Z",
                        "updated_at": "2020-03-06T22:53:58.032Z",
                        "organization_id": 3
                     }
                  ]
               },
               {
                  "id": 100030002315,
                  "service_date": "2020-02-01T11:00:00.000Z",
                  "invoice": null,
                  "total_cents": 10289,
                  "description": "Replaced door knobs",
                  "vendor_name": "Fixit Team",
                  "deductions": [
                     {
                        "id": 100030002463,
                        "amount_cents": 10289,
                        "note": "Replaced door knobs",
                        "reason": "purchase_required",
                        "deduction_type": null,
                        "deductable_type": "WorkReport",
                        "deductable_id": 100030002315,
                        "employee_id": 100030002763,
                        "created_at": "2020-02-24T18:10:13.068Z",
                        "updated_at": "2020-02-24T18:10:13.068Z",
                        "organization_id": 3
                     }
                  ]
               }
            ]
         }
      ],
      "expenses_subtotal": 345.63
   }

This endpoint retrieves a specific statement.

HTTP Request

GET /statements/<ID>

URL Parameters

Parameter Description
ID The ID of the statement to retrieve

Transactions

Get All Transactions

curl "https://staging.getdirect.io/api/public/<ORG_ID>/transactions"
  -H "Authorization: Token your_api_key"
  -H "Accept: application/vnd.direct.v1"

The above command returns JSON structured like this:

   {
    "transactions": [
        {
            "post_date": "2020-07-31",
            "je_id": "JE-3AE425",
            "id": 100030031640,
            "general_ledger_account_number": 2002,
            "account_name": "Advance Reservations Deposits",
            "unit_id": 100030000004,
            "portfolio": null,
            "subportfolio": "Hammock Beach",
            "unit_group": "Lodge: Three Bedroom Oceanview",
            "type": "Trust",
            "description": "Cleaning Fee - City Tax",
            "amount": 19.999,
            "created_at": "2020-07-11"
        },
        {
            "post_date": "2020-07-31",
            "je_id": "JE-3AE425",
            "id": 100030031640,
            "general_ledger_account_number": 2308,
            "account_name": "City Tax",
            "unit_id": 100030000004,
            "portfolio": null,
            "subportfolio": "Hammock Beach",
            "unit_group": "Lodge: Three Bedroom Oceanview",
            "type": "Trust",
            "description": "Cleaning Fee - City Tax",
            "amount": 19.999,
            "created_at": "2020-07-11"
        },
        {
            "post_date": "2020-07-01",
            "je_id": "JE-0E90AD",
            "id": 100030031640,
            "general_ledger_account_number": 2002,
            "account_name": "Advance Reservations Deposits",
            "unit_id": 100030000004,
            "portfolio": null,
            "subportfolio": "Hammock Beach",
            "unit_group": "Lodge: Three Bedroom Oceanview",
            "type": "Trust",
            "description": "Damage Waiver - City Tax",
            "amount": 9.9,
            "created_at": "2020-07-11"
        },
        {
            "post_date": "2020-07-01",
            "je_id": "JE-0E90AD",
            "id": 100030031640,
            "general_ledger_account_number": 2308,
            "account_name": "City Tax",
            "unit_id": 100030000004,
            "portfolio": null,
            "subportfolio": "Hammock Beach",
            "unit_group": "Lodge: Three Bedroom Oceanview",
            "type": "Trust",
            "description": "Damage Waiver - City Tax",
            "amount": 9.9,
            "created_at": "2020-07-11"
        },
        {
            "post_date": "2020-07-29",
            "je_id": "JE-08B396",
            "id": 100030031640,
            "general_ledger_account_number": 2002,
            "account_name": "Advance Reservations Deposits",
            "unit_id": 100030000004,
            "portfolio": null,
            "subportfolio": "Hammock Beach",
            "unit_group": "Lodge: Three Bedroom Oceanview",
            "type": "Trust",
            "description": "Room Rate - City Tax",
            "amount": 187.615,
            "created_at": "2020-07-11"
        },
        {
            "post_date": "2020-07-29",
            "je_id": "JE-08B396",
            "id": 100030031640,
            "general_ledger_account_number": 2308,
            "account_name": "City Tax",
            "unit_id": 100030000004,
            "portfolio": null,
            "subportfolio": "Hammock Beach",
            "unit_group": "Lodge: Three Bedroom Oceanview",
            "type": "Trust",
            "description": "Room Rate - City Tax",
            "amount": 187.615,
            "created_at": "2020-07-11"
        },
        {
            "post_date": "2020-07-31",
            "je_id": "JE-7B0435",
            "id": 100030031640,
            "general_ledger_account_number": 2002,
            "account_name": "Advance Reservations Deposits",
            "unit_id": 100030000004,
            "portfolio": null,
            "subportfolio": "Hammock Beach",
            "unit_group": "Lodge: Three Bedroom Oceanview",
            "type": "Trust",
            "description": "Cleaning Fee - Sales Tax",
            "amount": 9.9995,
            "created_at": "2020-07-11"
        },
        {
            "post_date": "2020-07-31",
            "je_id": "JE-7B0435",
            "id": 100030031640,
            "general_ledger_account_number": 2306,
            "account_name": "Sales Tax",
            "unit_id": 100030000004,
            "portfolio": null,
            "subportfolio": "Hammock Beach",
            "unit_group": "Lodge: Three Bedroom Oceanview",
            "type": "Trust",
            "description": "Cleaning Fee - Sales Tax",
            "amount": 9.9995,
            "created_at": "2020-07-11"
        },
        {
            "post_date": "2020-07-01",
            "je_id": "JE-E81844",
            "id": 100030031640,
            "general_ledger_account_number": 2002,
            "account_name": "Advance Reservations Deposits",
            "unit_id": 100030000004,
            "portfolio": null,
            "subportfolio": "Hammock Beach",
            "unit_group": "Lodge: Three Bedroom Oceanview",
            "type": "Trust",
            "description": "Damage Waiver - Sales Tax",
            "amount": 4.95,
            "created_at": "2020-07-11"
        },
        {
            "post_date": "2020-07-01",
            "je_id": "JE-E81844",
            "id": 100030031640,
            "general_ledger_account_number": 2306,
            "account_name": "Sales Tax",
            "unit_id": 100030000004,
            "portfolio": null,
            "subportfolio": "Hammock Beach",
            "unit_group": "Lodge: Three Bedroom Oceanview",
            "type": "Trust",
            "description": "Damage Waiver - Sales Tax",
            "amount": 4.95,
            "created_at": "2020-07-11"
        },
        {
            "post_date": "2020-07-29",
            "je_id": "JE-4D1B2D",
            "id": 100030031640,
            "general_ledger_account_number": 2002,
            "account_name": "Advance Reservations Deposits",
            "unit_id": 100030000004,
            "portfolio": null,
            "subportfolio": "Hammock Beach",
            "unit_group": "Lodge: Three Bedroom Oceanview",
            "type": "Trust",
            "description": "Room Rate - Sales Tax",
            "amount": 93.8075,
            "created_at": "2020-07-11"
        },
        {
            "post_date": "2020-07-29",
            "je_id": "JE-4D1B2D",
            "id": 100030031640,
            "general_ledger_account_number": 2306,
            "account_name": "Sales Tax",
            "unit_id": 100030000004,
            "portfolio": null,
            "subportfolio": "Hammock Beach",
            "unit_group": "Lodge: Three Bedroom Oceanview",
            "type": "Trust",
            "description": "Room Rate - Sales Tax",
            "amount": 93.8075,
            "created_at": "2020-07-11"
        },
        {
            "post_date": "2020-07-01",
            "je_id": "JE-554848",
            "id": 100030031640,
            "general_ledger_account_number": 2002,
            "account_name": "Advance Reservations Deposits",
            "unit_id": 100030000004,
            "portfolio": null,
            "subportfolio": "Hammock Beach",
            "unit_group": "Lodge: Three Bedroom Oceanview",
            "type": "Trust",
            "description": "Management Fee",
            "amount": 23.88,
            "created_at": "2020-07-11"
        },
        {
            "post_date": "2020-07-01",
            "je_id": "JE-554848",
            "id": 100030031640,
            "general_ledger_account_number": 2115,
            "account_name": "Miscellaneous Fees/Charges - Guests",
            "unit_id": 100030000004,
            "portfolio": null,
            "subportfolio": "Hammock Beach",
            "unit_group": "Lodge: Three Bedroom Oceanview",
            "type": "Trust",
            "description": "Management Fee",
            "amount": 23.88,
            "created_at": "2020-07-11"
        },
        {
            "post_date": "2020-07-01",
            "je_id": "JE-554847",
            "id": 100030031640,
            "general_ledger_account_number": 2002,
            "account_name": "Advance Reservations Deposits",
            "unit_id": 100030000004,
            "portfolio": null,
            "subportfolio": "Hammock Beach",
            "unit_group": "Lodge: Three Bedroom Oceanview",
            "type": "Trust",
            "description": "Processing Fee",
            "amount": 77.61,
            "created_at": "2020-07-11"
        },
        {
            "post_date": "2020-07-01",
            "je_id": "JE-554847",
            "id": 100030031640,
            "general_ledger_account_number": 2117,
            "account_name": "Payment Processing Fees Paid",
            "unit_id": 100030000004,
            "portfolio": null,
            "subportfolio": "Hammock Beach",
            "unit_group": "Lodge: Three Bedroom Oceanview",
            "type": "Trust",
            "description": "Processing Fee",
            "amount": 77.61,
            "created_at": "2020-07-11"
        },
        {
            "post_date": "2020-07-01",
            "je_id": "JE-554846",
            "id": 100030031640,
            "general_ledger_account_number": 2002,
            "account_name": "Advance Reservations Deposits",
            "unit_id": 100030000004,
            "portfolio": null,
            "subportfolio": "Hammock Beach",
            "unit_group": "Lodge: Three Bedroom Oceanview",
            "type": "Trust",
            "description": "Damage Waiver",
            "amount": 99.0,
            "created_at": "2020-07-11"
        },
        {
            "post_date": "2020-07-01",
            "je_id": "JE-554846",
            "id": 100030031640,
            "general_ledger_account_number": 2108,
            "account_name": "Damage Waiver Fees - Guests",
            "unit_id": 100030000004,
            "portfolio": null,
            "subportfolio": "Hammock Beach",
            "unit_group": "Lodge: Three Bedroom Oceanview",
            "type": "Trust",
            "description": "Damage Waiver",
            "amount": 99.0,
            "created_at": "2020-07-11"
        },
        {
            "post_date": "2020-07-31",
            "je_id": "JE-554845",
            "id": 100030031640,
            "general_ledger_account_number": 2002,
            "account_name": "Advance Reservations Deposits",
            "unit_id": 100030000004,
            "portfolio": null,
            "subportfolio": "Hammock Beach",
            "unit_group": "Lodge: Three Bedroom Oceanview",
            "type": "Trust",
            "description": "Cleaning Fee",
            "amount": 199.99,
            "created_at": "2020-07-11"
        },
        {
            "post_date": "2020-07-31",
            "je_id": "JE-554845",
            "id": 100030031640,
            "general_ledger_account_number": 2102,
            "account_name": "Amenity Fees - Guests",
            "unit_id": 100030000004,
            "portfolio": null,
            "subportfolio": "Hammock Beach",
            "unit_group": "Lodge: Three Bedroom Oceanview",
            "type": "Trust",
            "description": "Cleaning Fee",
            "amount": 199.99,
            "created_at": "2020-07-11"
        }
    ],
    "total_count": 75690
}

This endpoint retrieves all transactions connected to your organization.

HTTP Request

GET /transactions

URL Parameters

Parameter Description
_limit (optional) Maximum number of transactions to return, up to 100. Default is 20.
_offset (optional) Number of transactions to skip over, where the ordering is consistent but unspecified.

Example with all optional parameters /api/public/990/transactions?_limit=50&offset=50

Units

Get Promotions

curl "https://staging.getdirect.io/api/public/<ORG_ID>/properties/<P_ID>/units/<U_ID>/promotions"
  -H "Authorization: Token your_api_key"
  -H "Accept: application/vnd.direct.v1"

The above command returns JSON structured like this:

   [
      {
         "id": 100030000045,
         "special_type": "percent",
         "amount": 10,
         "req_nights": 2,
         "travel_date_start": "2020-05-01",
         "travel_end_date": "2020-05-31",
         "promo_start_date": "2020-03-26",
         "promo_end_date": "2020-04-30",
         "days_of_week": null,
         "code_req": null,
         "coupon_code": null,
         "name": "winter special",
         "internal_name": "winter",
         "distro_list": null,
         "portfolio_id": 100030000018,
         "subportfolio_id": null,
         "created_at": "2020-03-26T15:09:32.313Z",
         "updated_at": "2020-03-26T15:09:32.313Z",
         "active": true,
         "organization_id": 3
      },
      { ... }
   ]

This endpoint retrieves a particular unit's promotions.

HTTP Request

GET /properties/<P_ID>/units/<U_ID>/promotions

URL Parameters

Parameter Description
P_ID The ID of the property to retrieve
U_ID The ID of the unit to retrieve

Get Rates

curl "https://staging.getdirect.io/api/public/<ORG_ID>/properties/<P_ID>/units/<U_ID>/rates"
  -H "Authorization: Token your_api_key"
  -H "Accept: application/vnd.direct.v1"

The above command returns JSON structured like this:

{
   "currency":"USD",
   "updated_at":"2018-12-11T23:56:43.268Z",
   "default_nightly_weekend":99.0,
   "default_nightly_weekday":99.0,
   "tax_rate":10.42,
   "discounts":[],
   "fees":[
      {
         "id":322,
         "name": "Linen Fee",
         "description": "For the beds and pillows",
         "refundable": true,
         "included_in_base_rent": false,
         "calculation_type": "flat",
         "calculation_amount": "50.0",
         "taxable": true,
         "is_addon": "false",
         "frequency": "per_night",
         "quantity_fee": true,
         "fee_quantity_max": 6,
         "active": true
      },
      {
         "id":49,
         "name":"Cleaning Fee",
         "refundable": true,
         "included_in_base_rent": false,
         "calculation_type":"flat",
         "calculation_amount":100.0,
         "taxable":true,
         "is_addon":"false",
         "frequency": "per_stay",
         "quantity_fee": false,
         "fee_quantity_max": 1,
         "active": true
      },
      {
            "id": 100030003137,
            "name": "Car Rental Fee",
            "description": "We have one 4 passenger car for rent",
            "refundable": false,
            "included_in_base_rent": false,
            "calculation_type": "flat",
            "calculation_amount": "0.0",
            "taxable": true,
            "is_addon": "false",
            "frequency": "per_stay",
            "quantity_fee": false,
            "fee_quantity_max": null,
            "active": true,
            "los_ranges": [
                {
                    "id": 200000000012,
                    "min_nights": 1,
                    "max_nights": 3,
                    "calculation_amount": "100.0"
                },
                {
                    "id": 200000000013,
                    "min_nights": 4,
                    "max_nights": 7,
                    "calculation_amount": "200.0"
                },
                {
                    "id": 200000000014,
                    "min_nights": 8,
                    "max_nights": 10,
                    "calculation_amount": "300.0"
                }
            ]
        }
   ],
   "security_deposit":[],
   "nightlyOverrides":[
      {
         "amount":219.0,
         "nights":[
            {
               "min":"2019-01-02",
               "max":"2019-01-03"
            }
         ]
      }
   ],
   "paymentSchedule":[
      {
         "days":null,
         "dueType":"AT_BOOKING",
         "amount":50,
         "type":"percent"
      },
      {
         "days": 7
         "dueType":"BEFORE_CHECKIN",
         "amount":null,
         "type":"remainder"
      }
   ]
}

This endpoint retrieves a particular unit's rates.

HTTP Request

GET /properties/<P_ID>/units/<U_ID>/rates

URL Parameters

Parameter Description
P_ID The ID of the property to retrieve
U_ID The ID of the unit to retrieve

Get Reviews

curl "https://staging.getdirect.io/api/public/<ORG_ID>/properties/<P_ID>/units/<U_ID>/reviews"
  -H "Authorization: Token your_api_key"
  -H "Accept: application/vnd.direct.v1"

The above command returns JSON structured like this:

   [
      {
         "id": 100030000012,
         "unit_id": 100030000053,
         "booking_id": 100030031551,
         "title": "Great luxury property for families ",
         "body": "<p>Testing the review. Great location! Super clean&nbsp;</p>\n",
         "name": "Lauren A Flaugher",
         "check_in_date": "2020-05-24T00:00:00.000Z",
         "status": "published",
         "rating": 5,
         "created_at": "2020-05-22T19:10:21.967Z",
         "updated_at": "2020-05-22T19:18:02.117Z",
         "reviewed_date": "2020-05-22T19:10:21.965Z",
         "check_out_date": "2020-05-31T00:00:00.000Z",
         "where_from": null,
         "organization_id": 3,
         "customer_id": null
      },
      { ... }
   ]

This endpoint retrieves a particular unit's reviews.

HTTP Request

GET /properties/<P_ID>/units/<U_ID>/reviews

URL Parameters

Parameter Description
P_ID The ID of the property to retrieve
U_ID The ID of the unit to retrieve

Get Availability

curl "https://staging.getdirect.io/api/public/<ORG_ID>/properties/<P_ID>/units/<U_ID>/availability"
  -H "Authorization: Token your_api_key"
  -H "Accept: application/vnd.direct.v1"

The above command returns JSON structured like this:

{
   "availabilityOpen":"Y",
   "availabilityRequest": "R",
   "availabilityClosed":"N",
   "stayIncrementDefault":"D",
   "changeOverDefault":"C",
   "availableUnitCountDefault":1,
   "updated_at":"2018-12-11T23:56:42.917Z",
   "default_stay_min":2,
   "default_stay_max":30,
   "default_prior_notify_min":1,
   "dateRange":{
      "beginDate":"2019-01-02",
      "endDate":"2022-01-01"
   },
   "availability":"YN...",
   "defaultAvailability":"YNR...",
   "changeOver":"CC...",
   "maxStay":"30,30,...",
   "minPriorNotify":"1,1,...",
   "minStay":"5,5,...",
   "stayIncrement":"DD..."
}

This endpoint retrieves a particular unit's availability.

HTTP Request

GET /properties/<P_ID>/units/<U_ID>/availability

URL Parameters

Parameter Description
P_ID The ID of the property to retrieve
U_ID The ID of the unit to retrieve

Availability Response Values

Key Values
defaultAvailability Y (available), R (request) or N (not available)
changeOver C (any), I (check in), O (check out), or X (none)
stayIncrement D (day) or W (week)

Create a Quote

curl "http://staging.getdirect.io/api/public/990/properties/92/units/92/quotes"
-d '{"check_in": "2019-02-01", "check_out": "2019-02-05", "adults": 1, "children": 0, "pets": 0, "addon_fee_ids": [1, 2, 3]}'
-H "Authorization: Token test_api_key"
-H "Accept: application/vnd.direct.v1"
-H "Content-Type: application/json"
-X POST

The above command returns JSON structured like this:

{
   "orderItems":[
      {
         "feeType":"RENTAL",
         "name":"Rent",
         "preTaxAmount":892.0,
         "totalAmount":1001.51,
         "isAddOn":null
      },
      {
         "feeType":"MISC",
         "name":"Non-Refundable Damage Waiver Fee",
         "preTaxAmount":59.0,
         "totalAmount":59.0,
         "isAddOn":"false"
      },
      {
         "feeType":"MISC",
         "name":"Processing Fee",
         "preTaxAmount":17.84,
         "totalAmount":17.84,
         "isAddOn":"false"
      },
      {
         "feeType":"MISC",
         "name":"Cleaning Fee",
         "preTaxAmount":100.0,
         "totalAmount":100.0,
         "isAddOn":"false"
      },
      {
         "feeType":"MISC",
         "name":"Resort Fee",
         "preTaxAmount":20.0,
         "totalAmount":20.0,
         "isAddOn":"false"
      }
   ],
   "paymentSchedule":[
      {
         "amount":1198.35,
         "dueDate":"2019-01-02"
      }
   ],
   "rentalAgreement":"<url to PDF>"
}

This endpoint retrieves a quote for the specified unit given check in date, check out date, number of adults, number of children (optional), number of pets (optional) and addon fee ids (optional, can be found on the units rates when addon = true).

HTTP Request

POST /properties/<P_ID>/units/<U_ID>/quotes

URL Parameters

Parameter Description
P_ID The ID of the property to retrieve
U_ID The ID of the unit to retrieve

Request Parameters

Parameter Description
check_in The check in date ("YYYY-MM-DD")
check_out The check out date ("YYYY-MM-DD")
adults The number of adult guests
children The number of child guests (optional, default to 0)
pets The number of pets (optional, default to 0)

Example with all parameters /api/public/990/properties/45units/87/quotes?check_in=2023-05-01&check_out=2023-05-30&adults=2&children=1&pets=1

Update Pricing

curl "https://staging.getdirect.io/api/public/990/properties/92/units/92/pricing"
-d '{"pricing_array":
      [
         {"date":"2019-04-03", "recommended_price":"440", "reason":"High demand"},
         {"date":"2019-04-04", "recommended_price":"244", "reason":"Low demand"}
      ]
   }'
-H "Authorization: Token test_api_key"
-H "Accept: application/vnd.direct.v1"
-H "Content-Type: application/json"
-X POST

The above command returns JSON structured like this:

{
   "status": "Success"
}

This endpoint updates the nightly price for the specified unit given and dates found in the json.

HTTP Request

POST /properties/<P_ID>/units/<U_ID>/pricing

URL Parameters

Parameter Description
P_ID The ID of the property to retrieve
U_ID The ID of the unit to retrieve

Request Parameters

Parameter Description
pricing_array An array of pricing objects to process
date The date you wish to update ("YYYY-MM-DD")
recommended_price The price to set on the specified date
reason The reason for the updated price

Update Minimum Night Stay

curl "https://staging.getdirect.io/api/public/990/properties/92/units/92/stay-length"
-d '{"availability_array":
      [
         {"date":"2019-04-03", "min_nights":"5", "reason":"High demand"},
         {"date":"2019-04-04", "min_nights":"3", "reason":"Low demand"}
      ]
   }'
-H "Authorization: Token test_api_key"
-H "Accept: application/vnd.direct.v1"
-H "Content-Type: application/json"
-X POST

The above command returns JSON structured like this:

{
   "status": "Success"
}

This endpoint updates the minimum night stay for the speceified unit given and dates found in the json.

HTTP Request

POST /properties/<P_ID>/units/<U_ID>/stay-length

URL Parameters

Parameter Description
P_ID The ID of the property to retrieve
U_ID The ID of the unit to retrieve

Request Parameters

Parameter Description
availability_array An array of availability objects to process
date The date you wish to update ("YYYY-MM-DD")
min_nights The minimum nights to set on the specified date
reason The reason for the updated

Vehicles

Getting Started

Please refer to the introduction to get started with interacting with your Vehicles API through Direct.

Get All Vehicles

curl "https://staging.getdirect.io/api/public/<ORG_ID>/vehicles?_limit=5&_offset=10"
  -H "Authorization: Token your_api_key"
  -H "Accept: application/vnd.direct.v1"

The above command returns JSON structured like this:

{
    "vehicles": [
        {
            "id": 2057,
            "name": "2020 Airstream RV Bambi 22FB",
            "unit_code": null,
            "updated_at": "2023-11-01T16:50:13.447-05:00",
            "featured_image": {
                "id": 6269,
                "image": {
                    "url": "https://versailles.s3.amazonaws.com/production/tenant/blackrock-beach-properties/vehicle/2057/vehicle_image/image/6269/06b37001b39b39f81421405cae431f7a.jfif?X-Amz-Expires=86400&X-Amz-Date=20231127T185234Z&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAXTKU7IFB2NA7M2HR%2F20231127%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-SignedHeaders=host&X-Amz-Signature=209688bca8a3124c549deaf603192856af1bb81d91cdd6341f929172b10958bf",
                    "tiny": {
                        "url": "https://versailles.s3.amazonaws.com/production/tenant/blackrock-beach-properties/vehicle/2057/vehicle_image/image/6269/tiny_06b37001b39b39f81421405cae431f7a.jfif?X-Amz-Expires=86400&X-Amz-Date=20231127T185234Z&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAXTKU7IFB2NA7M2HR%2F20231127%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-SignedHeaders=host&X-Amz-Signature=2d714286814b06cc4f27f6a2279aa0633cf0c98b2f49d4bec21ab4cb7117a597"
                    },
                    "small": {
                        "url": "https://versailles.s3.amazonaws.com/production/tenant/blackrock-beach-properties/vehicle/2057/vehicle_image/image/6269/small_06b37001b39b39f81421405cae431f7a.jfif?X-Amz-Expires=86400&X-Amz-Date=20231127T185234Z&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAXTKU7IFB2NA7M2HR%2F20231127%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-SignedHeaders=host&X-Amz-Signature=a4c921e66d5547ad6c7ce13e8426c38af82109da0801c93b69c33b411ca0ae76"
                    },
                    "medium": {
                        "url": "https://versailles.s3.amazonaws.com/production/tenant/blackrock-beach-properties/vehicle/2057/vehicle_image/image/6269/medium_06b37001b39b39f81421405cae431f7a.jfif?X-Amz-Expires=86400&X-Amz-Date=20231127T185234Z&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAXTKU7IFB2NA7M2HR%2F20231127%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-SignedHeaders=host&X-Amz-Signature=b81a8c750f7fa4b2990a448cefcda97dad8f3dc3c9d82e941959979f331f3ffd"
                    },
                    "large": {
                        "url": "https://versailles.s3.amazonaws.com/production/tenant/blackrock-beach-properties/vehicle/2057/vehicle_image/image/6269/large_06b37001b39b39f81421405cae431f7a.jfif?X-Amz-Expires=86400&X-Amz-Date=20231127T185234Z&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAXTKU7IFB2NA7M2HR%2F20231127%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-SignedHeaders=host&X-Amz-Signature=4a865fc6ab36302709d5e16408f4c86576d9e34aa3db63a3851b29420cdaad45"
                    },
                    "xlarge": {
                        "url": "https://versailles.s3.amazonaws.com/production/tenant/blackrock-beach-properties/vehicle/2057/vehicle_image/image/6269/xlarge_06b37001b39b39f81421405cae431f7a.jfif?X-Amz-Expires=86400&X-Amz-Date=20231127T185234Z&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAXTKU7IFB2NA7M2HR%2F20231127%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-SignedHeaders=host&X-Amz-Signature=ed47579cc567b02e0bcbf4dc647bb8848490014f2e461d3eeeedfeec3fadd541"
                    }
                },
                "image_processing": false,
                "label": null,
                "order": 0,
                "height": 417,
                "width": 626,
                "vehicle_id": 2057,
                "organization_id": 3,
                "created_at": "2023-11-01T16:50:14.155-05:00",
                "updated_at": "2023-11-01T16:50:42.243-05:00",
                "external_id": 1839945
            }
        },
        {
            "id": 2058,
            "name": "2020 Airstream RV Bambi 22FB",
            "unit_code": null,
            "updated_at": "2023-11-01T16:50:19.048-05:00",
            "featured_image": null
        },
        {
            "id": 2059,
            "name": "2019 Airstream RV Flying Cloud 23CB Bunk",
            "unit_code": null,
            "updated_at": "2023-11-01T16:50:53.016-05:00",
            "featured_image": {
                "id": 6275,
                "image": {
                    "url": "https://versailles.s3.amazonaws.com/production/tenant/blackrock-beach-properties/vehicle/2059/vehicle_image/image/6275/8d7b21811448b08b9e69f541c0d75c0d.jpg?X-Amz-Expires=86400&X-Amz-Date=20231127T185234Z&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAXTKU7IFB2NA7M2HR%2F20231127%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-SignedHeaders=host&X-Amz-Signature=9829d8bb6fa3371c4af8cec8363bf77e7608a3e369b137c6b429a0d858d75e35",
                    "tiny": {
                        "url": "https://versailles.s3.amazonaws.com/production/tenant/blackrock-beach-properties/vehicle/2059/vehicle_image/image/6275/tiny_8d7b21811448b08b9e69f541c0d75c0d.jpg?X-Amz-Expires=86400&X-Amz-Date=20231127T185234Z&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAXTKU7IFB2NA7M2HR%2F20231127%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-SignedHeaders=host&X-Amz-Signature=a0ecfe8c33f2d0e50543949f106d44c44829bee335faa959977e67820844b630"
                    },
                    "small": {
                        "url": "https://versailles.s3.amazonaws.com/production/tenant/blackrock-beach-properties/vehicle/2059/vehicle_image/image/6275/small_8d7b21811448b08b9e69f541c0d75c0d.jpg?X-Amz-Expires=86400&X-Amz-Date=20231127T185234Z&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAXTKU7IFB2NA7M2HR%2F20231127%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-SignedHeaders=host&X-Amz-Signature=189a7fbc3e121aed6c4b410121fae1ba98e6373fe1d87e7c677ffc40418fa1cf"
                    },
                    "medium": {
                        "url": "https://versailles.s3.amazonaws.com/production/tenant/blackrock-beach-properties/vehicle/2059/vehicle_image/image/6275/medium_8d7b21811448b08b9e69f541c0d75c0d.jpg?X-Amz-Expires=86400&X-Amz-Date=20231127T185234Z&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAXTKU7IFB2NA7M2HR%2F20231127%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-SignedHeaders=host&X-Amz-Signature=a0943c208b33fcc83b4c8340bba2f6cc398e91be3db67187446f33c585abc231"
                    },
                    "large": {
                        "url": "https://versailles.s3.amazonaws.com/production/tenant/blackrock-beach-properties/vehicle/2059/vehicle_image/image/6275/large_8d7b21811448b08b9e69f541c0d75c0d.jpg?X-Amz-Expires=86400&X-Amz-Date=20231127T185234Z&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAXTKU7IFB2NA7M2HR%2F20231127%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-SignedHeaders=host&X-Amz-Signature=4682198de1b22ff9bc08c60e7e33b3e03cafef52d44b1ecfc3b96041854e172f"
                    },
                    "xlarge": {
                        "url": "https://versailles.s3.amazonaws.com/production/tenant/blackrock-beach-properties/vehicle/2059/vehicle_image/image/6275/xlarge_8d7b21811448b08b9e69f541c0d75c0d.jpg?X-Amz-Expires=86400&X-Amz-Date=20231127T185235Z&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAXTKU7IFB2NA7M2HR%2F20231127%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-SignedHeaders=host&X-Amz-Signature=f090ddde7e3823ed6b2fc779ec7f90fecaf97322baff21cfac97a06c44af74f6"
                    }
                },
                "image_processing": false,
                "label": null,
                "order": 0,
                "height": 2500,
                "width": 3335,
                "vehicle_id": 2059,
                "organization_id": 3,
                "created_at": "2023-11-01T16:50:54.866-05:00",
                "updated_at": "2023-11-01T16:51:24.738-05:00",
                "external_id": 1839903
            }
        },
        {
            "id": 2060,
            "name": "2020 Airstream RV Bambi 22FB",
            "unit_code": null,
            "updated_at": "2023-11-01T16:50:52.955-05:00",
            "featured_image": {
                "id": 6274,
                "image": {
                    "url": "https://versailles.s3.amazonaws.com/production/tenant/blackrock-beach-properties/vehicle/2060/vehicle_image/image/6274/7ae43f41d01ae10bc472b9179e1a8e4d.jpeg?X-Amz-Expires=86400&X-Amz-Date=20231127T185235Z&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAXTKU7IFB2NA7M2HR%2F20231127%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-SignedHeaders=host&X-Amz-Signature=794ed54562065d99e214aaa37652432a199d1e48fb5b6e711a9cf32fc7fa9b8c",
                    "tiny": {
                        "url": "https://versailles.s3.amazonaws.com/production/tenant/blackrock-beach-properties/vehicle/2060/vehicle_image/image/6274/tiny_7ae43f41d01ae10bc472b9179e1a8e4d.jpeg?X-Amz-Expires=86400&X-Amz-Date=20231127T185235Z&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAXTKU7IFB2NA7M2HR%2F20231127%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-SignedHeaders=host&X-Amz-Signature=deed07d4e79dd08c59eab68112ed5295daf836d2f40479e315624e47ef31dd8f"
                    },
                    "small": {
                        "url": "https://versailles.s3.amazonaws.com/production/tenant/blackrock-beach-properties/vehicle/2060/vehicle_image/image/6274/small_7ae43f41d01ae10bc472b9179e1a8e4d.jpeg?X-Amz-Expires=86400&X-Amz-Date=20231127T185235Z&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAXTKU7IFB2NA7M2HR%2F20231127%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-SignedHeaders=host&X-Amz-Signature=21b6cfc2d656b4ca4965b720f475dc9fd1b14661bf110d3e7bffab94574addaa"
                    },
                    "medium": {
                        "url": "https://versailles.s3.amazonaws.com/production/tenant/blackrock-beach-properties/vehicle/2060/vehicle_image/image/6274/medium_7ae43f41d01ae10bc472b9179e1a8e4d.jpeg?X-Amz-Expires=86400&X-Amz-Date=20231127T185235Z&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAXTKU7IFB2NA7M2HR%2F20231127%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-SignedHeaders=host&X-Amz-Signature=4c35c8c46d427de3b74f9a50ab91bc147d23f40e1757042c7b5c80039ff3ebdf"
                    },
                    "large": {
                        "url": "https://versailles.s3.amazonaws.com/production/tenant/blackrock-beach-properties/vehicle/2060/vehicle_image/image/6274/large_7ae43f41d01ae10bc472b9179e1a8e4d.jpeg?X-Amz-Expires=86400&X-Amz-Date=20231127T185235Z&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAXTKU7IFB2NA7M2HR%2F20231127%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-SignedHeaders=host&X-Amz-Signature=72b70b369684311d4a6b76358e0bfde3a2e946b18a74d838f250e82a9f5e9409"
                    },
                    "xlarge": {
                        "url": "https://versailles.s3.amazonaws.com/production/tenant/blackrock-beach-properties/vehicle/2060/vehicle_image/image/6274/xlarge_7ae43f41d01ae10bc472b9179e1a8e4d.jpeg?X-Amz-Expires=86400&X-Amz-Date=20231127T185235Z&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAXTKU7IFB2NA7M2HR%2F20231127%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-SignedHeaders=host&X-Amz-Signature=27999f2c85e04a0c493e6924959aa364d4485cfc9dc16fa3bea288b2799beaf9"
                    }
                },
                "image_processing": false,
                "label": null,
                "order": 0,
                "height": 791,
                "width": 1024,
                "vehicle_id": 2060,
                "organization_id": 3,
                "created_at": "2023-11-01T16:50:54.487-05:00",
                "updated_at": "2023-11-01T16:51:07.785-05:00",
                "external_id": 1839859
            }
        },
        {
            "id": 2061,
            "name": "2020 Airstream RV Bambi 22FB",
            "unit_code": null,
            "updated_at": "2023-11-01T16:51:03.570-05:00",
            "featured_image": null
        }
    ],
    "total_count": 32
}

This endpoint retrieves all vehicles connected to your organization.

HTTP Request

GET /vehicles

URL Parameters

Parameter Description
_limit (optional) Maximum number of vehicles to return, up to 100. Default is 20.
_offset (optional) Number of vehicles to skip over, where the ordering is consistent but unspecified.

Example with all optional parameters /api/public/990/vehicles?_limit=50&_offset=5

Get a Specific Vehicle

curl "https://staging.getdirect.io/api/public/<ORG_ID>/vehicles/<ID>"
  -H "Authorization: Token your_api_key"
  -H "Accept: application/vnd.direct.v1"

The above command returns JSON structured like this:

{
    "vehicle": {
        "id": 2072,
        "organization_id": 3,
        "created_at": "2023-11-01T16:51:49.674-05:00",
        "updated_at": "2023-11-01T16:51:50.046-05:00",
        "name": "2021 Thor Motor Coach ACE 30.3",
        "active": true,
        "vin_number": "19UUA8F25DA606447",
        "show_manager_info": false,
        "vehicle_type": "class_a_motorhome",
        "headline": "This is a Thor RV motorhome",
        "description": "Lorem ipsum florum bop flergalbergland durgle glob Lorem ipsum florum bop flergalbergland durgle glob nLorem ipsum florum bop flergalbergland durgle glob Lorem ipsum florum bop flergalbergland durgle glob Lorem ipsum florum bop flergalbergland durgle glob Lorem ipsum florum bop flergalbergland durgle glob",
        "transmission_type": "automatic",
        "cruise_control": true,
        "number_of_seatbelts": 4,
        "fuel_type": "gas",
        "dual_battery": true,
        "electric_service": 240,
        "fuel_consumption": 10.0,
        "fuel_capacity": 44,
        "gross_weight": 2000.0,
        "dry_weight": 1200.0,
        "cargo_weight": 800.0,
        "num_sleep_in_beds": 5,
        "stationary": false,
        "pets_allowed": false,
        "smoking_allowed": false,
        "wheelchair_accessible": false,
        "minimum_age_to_rent": 25,
        "electric_generator": true,
        "navigation": false,
        "kitchen_sink": false,
        "rear_vision_camera": false,
        "seat_belts": false,
        "hot_and_cold_water_supply": false,
        "slide_out": false,
        "cd_player": false,
        "dvd_player": false,
        "games": false,
        "satellite_cable_television": false,
        "television": true,
        "in_dash_air_conditioning": false,
        "dryer": false,
        "hair_dryer": false,
        "heating": false,
        "linens": false,
        "towels": false,
        "washer": false,
        "essentials": false,
        "dining_area": false,
        "coffee_maker": false,
        "utensils": false,
        "dishwasher": false,
        "microwave": true,
        "oven": false,
        "refrigerator": false,
        "stove": false,
        "toaster": false,
        "first_aid_kit": false,
        "fire_extinguisher": true,
        "kayak_canoe": false,
        "trailer_connector_type": null,
        "trailer_connector_adapter_provided": null,
        "hitch_provided": null,
        "anti_sway_device_provided": null,
        "trailer_ball_size": null,
        "engine": null,
        "power_steering": true,
        "manufacturer": "Thor Motor Coach",
        "make": "ACE",
        "model": "30.3",
        "external_id": "1569034",
        "shower": false,
        "toilet": false,
        "bathroom_sink": false,
        "fresh_water_tank": 15.0,
        "hitch_weight": null,
        "length": 30.3,
        "height": 15.0,
        "year": 2021,
        "slides": 0,
        "stated_value": "75000",
        "stated_value_locked": true,
        "portfolio_id": null,
        "subportfolio_id": null,
        "unit_group_id": null,
        "roof_air_conditioning": false,
        "ipod_docking_station": true,
        "am_fm_radio": true,
        "weight_distributing": null,
        "stationary_description": "",
        "delivery_base_fee": null,
        "delivery_base_miles": null,
        "delivery_overage_rate": null,
        "delivery_overage_mile_limit": null,
        "delivery": false,
        "delivery_base_id": null,
        "delivery_overage_id": null,
        "unit_code": null,
        "allow_sd_waiver": false,
        "num_bedrooms": 0,
        "num_living_rooms": 0,
        "amenities_by_category": {
            "Entertainment": [
                {
                    "key": "dvd_player",
                    "value": false,
                    "category": "Entertainment",
                    "label": "Dvd Player"
                },
                {
                    "key": "games",
                    "value": false,
                    "category": "Entertainment",
                    "label": "Games"
                },
                {
                    "key": "satellite_cable_television",
                    "value": false,
                    "category": "Entertainment",
                    "label": "Satellite Cable Television"
                },
                {
                    "key": "television",
                    "value": true,
                    "category": "Entertainment",
                    "label": "Television"
                },
                {
                    "key": "cd_player",
                    "value": false,
                    "category": "Entertainment",
                    "label": "Cd Player"
                },
                {
                    "key": "ipod_docking_station",
                    "value": true,
                    "category": "Entertainment",
                    "label": "Ipod Docking Station"
                },
                {
                    "key": "am_fm_radio",
                    "value": true,
                    "category": "Entertainment",
                    "label": "Am Fm Radio"
                }
            ],
            "Features": [
                {
                    "key": "in_dash_air_conditioning",
                    "value": false,
                    "category": "Features",
                    "label": "In Dash Air Conditioning"
                },
                {
                    "key": "dryer",
                    "value": false,
                    "category": "Features",
                    "label": "Dryer"
                },
                {
                    "key": "hair_dryer",
                    "value": false,
                    "category": "Features",
                    "label": "Hair Dryer"
                },
                {
                    "key": "heating",
                    "value": false,
                    "category": "Features",
                    "label": "Heating"
                },
                {
                    "key": "linens",
                    "value": false,
                    "category": "Features",
                    "label": "Linens"
                },
                {
                    "key": "towels",
                    "value": false,
                    "category": "Features",
                    "label": "Towels"
                },
                {
                    "key": "washer",
                    "value": false,
                    "category": "Features",
                    "label": "Washer"
                },
                {
                    "key": "essentials",
                    "value": false,
                    "category": "Features",
                    "label": "Essentials"
                },
                {
                    "key": "roof_air_conditioning",
                    "value": false,
                    "category": "Features",
                    "label": "Roof Air Conditioning"
                }
            ],
            "Dining": [
                {
                    "key": "dining_area",
                    "value": false,
                    "category": "Dining",
                    "label": "Dining Area"
                },
                {
                    "key": "coffee_maker",
                    "value": false,
                    "category": "Dining",
                    "label": "Coffee Maker"
                },
                {
                    "key": "utensils",
                    "value": false,
                    "category": "Dining",
                    "label": "Utensils"
                },
                {
                    "key": "dishwasher",
                    "value": false,
                    "category": "Dining",
                    "label": "Dishwasher"
                },
                {
                    "key": "microwave",
                    "value": true,
                    "category": "Dining",
                    "label": "Microwave"
                },
                {
                    "key": "oven",
                    "value": false,
                    "category": "Dining",
                    "label": "Oven"
                },
                {
                    "key": "refrigerator",
                    "value": false,
                    "category": "Dining",
                    "label": "Refrigerator"
                },
                {
                    "key": "stove",
                    "value": false,
                    "category": "Dining",
                    "label": "Stove"
                },
                {
                    "key": "toaster",
                    "value": false,
                    "category": "Dining",
                    "label": "Toaster"
                },
                {
                    "key": "kitchen_sink",
                    "value": false,
                    "category": "Dining",
                    "label": "Kitchen Sink"
                }
            ],
            "Bathroom": [
                {
                    "key": "shower",
                    "value": false,
                    "category": "Bathroom",
                    "label": "Shower"
                },
                {
                    "key": "toilet",
                    "value": false,
                    "category": "Bathroom",
                    "label": "Toilet"
                },
                {
                    "key": "bathroom_sink",
                    "value": false,
                    "category": "Bathroom",
                    "label": "Bathroom Sink"
                }
            ],
            "Safety": [
                {
                    "key": "first_aid_kit",
                    "value": false,
                    "category": "Safety",
                    "label": "First Aid Kit"
                },
                {
                    "key": "fire_extinguisher",
                    "value": true,
                    "category": "Safety",
                    "label": "Fire Extinguisher"
                }
            ],
            "Outdoors": [
                {
                    "key": "kayak_canoe",
                    "value": false,
                    "category": "Outdoors",
                    "label": "Kayak Canoe"
                }
            ],
            "Other": [
                {
                    "key": "electric_generator",
                    "value": true,
                    "category": "Other",
                    "label": "Electric Generator"
                },
                {
                    "key": "navigation",
                    "value": false,
                    "category": "Other",
                    "label": "Navigation"
                },
                {
                    "key": "rear_vision_camera",
                    "value": false,
                    "category": "Other",
                    "label": "Rear Vision Camera"
                },
                {
                    "key": "seat_belts",
                    "value": false,
                    "category": "Other",
                    "label": "Seat Belts"
                },
                {
                    "key": "slide_out",
                    "value": false,
                    "category": "Other",
                    "label": "Slide Out"
                }
            ],
            "Temperature Control": [
                {
                    "key": "hot_and_cold_water_supply",
                    "value": false,
                    "category": "Temperature Control",
                    "label": "Hot And Cold Water Supply"
                }
            ]
        },
        "form_amenities": {
            "electric_generator": true,
            "navigation": false,
            "kitchen_sink": false,
            "rear_vision_camera": false,
            "seat_belts": false,
            "hot_and_cold_water_supply": false,
            "slide_out": false,
            "cd_player": false,
            "dvd_player": false,
            "games": false,
            "satellite_cable_television": false,
            "television": true,
            "in_dash_air_conditioning": false,
            "dryer": false,
            "hair_dryer": false,
            "heating": false,
            "linens": false,
            "towels": false,
            "washer": false,
            "essentials": false,
            "dining_area": false,
            "coffee_maker": false,
            "utensils": false,
            "dishwasher": false,
            "microwave": true,
            "oven": false,
            "refrigerator": false,
            "stove": false,
            "toaster": false,
            "first_aid_kit": false,
            "fire_extinguisher": true,
            "kayak_canoe": false,
            "shower": false,
            "toilet": false,
            "bathroom_sink": false,
            "roof_air_conditioning": false,
            "ipod_docking_station": true,
            "am_fm_radio": true
        },
        "is_towable": false,
        "total_num_beds": 0,
        "num_bunks": 0,
        "num_beds": 0,
        "display_name": "2021 Thor Motor Coach ACE 30.3",
        "rules": [],
        "location": {
            "id": 200000003166,
            "adr_street": "1234 W 5678 S",
            "adr_unit": null,
            "adr_city": "Salt Lake City",
            "adr_state": "UT",
            "adr_country": null,
            "adr_postal_code": "84100",
            "geo_latitude": 40.7516666,
            "geo_longitude": -111.91111,
            "locationable_type": "Vehicle",
            "locationable_id": 2072,
            "created_at": "2023-11-01T16:51:49.965-05:00",
            "updated_at": "2023-11-01T16:51:49.965-05:00",
            "organization_id": 3,
            "exact": false
        },
        "pricing": {
            "id": 200000002759,
            "default_nightly_weekday": "120.0",
            "default_nightly_weekend": "150.0",
            "discount_full_week": "0.0",
            "discount_full_month": "0.0",
            "pricing_calendar": {},
            "unit_listing_id": null,
            "created_at": "2023-11-01T16:51:49.777-05:00",
            "updated_at": "2023-11-14T19:04:52.251-06:00",
            "organization_id": 3,
            "unit_id": null,
            "additional_guest_amount_cents": 0,
            "additional_guest_start": 1,
            "vehicle_id": 2072
        }
    }
}

This endpoint retrieves a specific vehicle.

HTTP Request

GET /vehicles/<ID>

URL Parameters

Parameter Description
ID The ID of the vehicle to retrieve

Get Availability

curl "https://staging.getdirect.io/api/public/<ORG_ID>/vehicles/<ID>/availability"
  -H "Authorization: Token your_api_key"
  -H "Accept: application/vnd.direct.v1"

The above command returns JSON structured like this:

{
   "availabilityOpen":"Y",
   "availabilityRequest": "R",
   "availabilityClosed":"N",
   "stayIncrementDefault":"D",
   "changeOverDefault":"C",
   "availableUnitCountDefault":1,
   "updated_at":"2018-12-11T23:56:42.917Z",
   "default_stay_min":2,
   "default_stay_max":30,
   "default_prior_notify_min":1,
   "dateRange":{
      "beginDate":"2019-01-02",
      "endDate":"2022-01-01"
   },
   "availabilityType":"YN...",
   "changeOver":"CC...",
   "maxStay":"30,30,...",
   "minPriorNotify":"1,1,...",
   "minStay":"5,5,...",
   "stayIncrement":"DD..."
}

This endpoint retrieves a particular vehicle's availability.

HTTP Request

GET /vehicles/<V_ID>/availability

URL Parameters

Parameter Description
ID The ID of the vehicle to retrieve

Availability Response Values

Key Values
defaultAvailability Y (available), R (request) or N (not available)
changeOver C (any), I (check in), O (check out), or X (none)
stayIncrement D (day) or W (week)

Get Rates

curl "https://staging.getdirect.io/api/public/<ORG_ID>/vehicles/<ID>/rates"
  -H "Authorization: Token your_api_key"
  -H "Accept: application/vnd.direct.v1"

The above command returns JSON structured like this:

{
    "vehicle_id": 2081,
    "currency": "USD",
    "updated_at": "2023-11-15T01:04:52.251Z",
    "default_nightly_weekend": "250.0",
    "default_nightly_weekday": "199.0",
    "tax_rate": 0.0,
    "adj_tax": 0.0,
    "max_night_with_tax_rate": 0,
    "exclude_tax": false,
    "tax_adjustable": false,
    "discounts": [],
    "fees": [
        {
            "id": 200000001313,
            "name": "BURNING MAN FEE",
            "description": null,
            "refundable": true,
            "included_in_base_rent": false,
            "calculation_type": "flat",
            "calculation_amount": "2500.0",
            "taxable": true,
            "is_addon": "true",
            "frequency": "per_stay",
            "quantity_fee": false,
            "fee_quantity_max": null,
            "active": true,
            "los_ranges": []
        }
    ],
    "usages": [
        {
            "id": 2831,
            "name": "Mileage",
            "usage_type": "Mileage",
            "amount_free": 75,
            "calculation_amount": 0.12
        },
        {
            "id": 2834,
            "name": "Generator",
            "usage_type": "Generator",
            "amount_free": 4,
            "calculation_amount": 0.75
        }
    ],
    "security_deposit": [
        {
            "id": 200000001496,
            "calculation_type": "flat",
            "calculation_amount": "250.0"
        }
    ],
    "nightlyOverrides": [
        {
            "amount": 259.0,
            "nights": [
                {
                    "min": "2023-12-12",
                    "max": "2023-12-14"
                },
                {
                    "min": "2023-12-17",
                    "max": "2023-12-20"
                }
            ]
        },
        {
            "amount": 390.0,
            "nights": [
                {
                    "min": "2023-12-15",
                    "max": "2023-12-16"
                }
            ]
        }
    ],
    "paymentSchedule": [
        {
            "days": null,
            "dueType": "AT_BOOKING",
            "type": "percent",
            "amount": 100
        }
    ]
}

This endpoint retrieves a particular vehicle's rates.

HTTP Request

GET /vehicles/<ID>/rates

URL Parameters

Parameter Description
ID The ID of the vehicle to retrieve

Get Reviews

curl "https://staging.getdirect.io/api/public/<ORG_ID>/vehicles/<ID>/reviews"
  -H "Authorization: Token your_api_key"
  -H "Accept: application/vnd.direct.v1"

The above command returns JSON structured like this:

   [
    {
        "id": 147,
        "vehicle_id": 2072,
        "booking_id": 200000004745,
        "organization_id": 3,
        "customer_id": 200000004671,
        "title": "Review on 2021 Jayco Redhawk 31F from JESHRYU",
        "body": "RV was super easy to drive and had a great weekend with our daughter at college.",
        "name": "Robin",
        "check_in_date": "2023-11-15T00:00:00.000Z",
        "check_out_date": "2023-11-18T00:00:00.000Z",
        "status": "recieved",
        "accuracy_rating": 5,
        "amenities_rating": 5,
        "cleanliness_rating": 5,
        "overall_rating": 5,
        "pick_up_rating": 5,
        "value_rating": 5,
        "external_id": 158600,
        "comment_external_id": null,
        "comment": null,
        "communication_rating": null,
        "private_feedback": null,
        "reviewed_date": null
    },
      { ... }
   ]

This endpoint retrieves a particular vehicle's reviews.

HTTP Request

GET /vehicles/<ID>/reviews

URL Parameters

Parameter Description
ID The ID of the vehicle to retrieve

Messaging

Get All Conversations

curl "https://staging.getdirect.io/api/public/<ORG_ID>/conversations"
  -H "Authorization: Token your_api_key"
  -H "Accept: application/vnd.direct.v1"

The above command returns JSON structured like this:

{
  "total_count": 333,
  "conversations": [
    {
      "id": 200000013530,
      "subject": "New Inquiry",
      "booking_id": null,
      "unit_id": 108900000002,
      "unit_listing_id": null,
      "channel_id": null,
      "property_id": 108900000002,
      "customer_id": 200000039981,
      "organization_id": 890,
      "created_at": "2021-06-17T17:44:41.158Z",
      "updated_at": "2023-08-03T15:53:27.782Z",
      "removed_users": [],
      "removed_employees": [],
      "removed_customers": [],
      "external_id": null,
      "additional_data": {},
      "is_airbnb_pre_approved": false,
      "check_in": null,
      "check_out": null,
      "archived": false,
      "important": false,
      "status": "declined"
    },
    {
      // ...
    }
  ]
}

This endpoint retrieves all conversations attached to the organization. A conversation is a thread between 2 users, the renter and the Direct user(s) associated with the unit being rented, and will be associated with individual messages by ID.

HTTP Request

GET /conversations

URL Parameters

Parameter Description
_limit (optional) Maximum number of conversations to return, up to 100. Default is 20.
_offset (optional) Number of conversations to skip over, where the ordering is consistent but unspecified. Default is 0.
created_after (optional) Filter by conversations created after a specific date.
active (optional) Filter by active conversations, defined as conversations associated with confirmed bookings that have a checkout date no more than 2 days past.

Example with all optional parameters /api/public/990/conversations?_limit=50&_offset=50&active=true&created_after=2021-06-17

Get a Conversation

curl "https://staging.getdirect.io/api/public/<ORG_ID>/conversations/<ID>"
  -H "Authorization: Token your_api_key"
  -H "Accept: application/vnd.direct.v1"

The above command returns JSON structured like this:

{
    "id": 200000016570,
    "subject": "New Message",
    "booking_id": 200000034678,
    "unit_id": 4275,
    "unit_listing_id": 200000016860,
    "channel_id": 6,
    "property_id": null,
    "customer_id": 200000052191,
    "organization_id": 890,
    "created_at": "2024-08-14T19:43:11.208Z",
    "updated_at": "2024-08-26T21:09:33.353Z",
    "removed_users": [],
    "removed_employees": [],
    "removed_customers": [],
    "external_id": null,
    "additional_data": {},
    "is_airbnb_pre_approved": false,
    "check_in": "2024-10-20",
    "check_out": "2024-10-24",
    "archived": false,
    "important": false,
    "status": "pre_trip"
}

This endpoint retrieves a specific conversation by ID.

HTTP Request

GET /conversations/<ID>

URL Parameters

Parameter Description
ID The ID of the conversation to retrieve

Get all Messages by Conversation Id

curl "https://staging.getdirect.io/api/public/<ORG_ID>/conversations/<CONVERSATION_ID>/messages"
  -H "Authorization: Token your_api_key"
  -H "Accept: application/vnd.direct.v1"

The above command returns JSON structured like this:

{
  "messages": [
    {
      "id": 200000074591,
      "body": "<p>this is a staging qa test</p>",
      "read_at": "2024-08-26T21:09:41.000Z",
      "conversation_id": 200000016570,
      "sender_type": "Employee",
      "sender_id": 200000001158,
      "created_at": "2024-08-26T21:09:33.353Z",
      "updated_at": "2024-08-26T21:09:41.574Z",
      "sender_name": "Ryan Test Admin",
      "original_message": null,
      "channel_data": {},
      "organization_id": 890,
      "external_id": null
    },
    {
      // ...
    }
  ]
}

This endpoint retrieves all messages attached to a particular conversation.

HTTP Request

GET /conversations/<CONVERSATION_ID>/messages

URL Parameters

Parameter Description
ID The ID of the conversation to filter messages by

Create a Message

curl --location 'https://staging.getdirect.io/api/public/<ORG_ID>/conversations/<CONVERSATION_ID>/messages' \
--header 'Accept: application/vnd.direct.v1' \
--header 'Authorization: Token api_token_here' \
--header 'Content-Type: application/json' \
--data '{
    "body": "some message here"
}'

The above command returns JSON structured like this:

{
    "id": 200000074593,
    "body": "<p>some message here</p>",
    "read_at": null,
    "conversation_id": 200000016570,
    "sender_type": "Employee",
    "sender_id": 200000001158,
    "created_at": "2024-08-27T17:14:24.914Z",
    "updated_at": "2024-08-27T17:14:24.914Z",
    "sender_name": "Ryan Test Admin",
    "original_message": null,
    "channel_data": {},
    "organization_id": 890,
    "external_id": null
}

This endpoint creates a message in a particular conversation.

The 'body' param in the request body will have all HTML tags stripped out and then be surrounded by p tags before being saved.

The message will be 'sent as' the Direct user associated with the conversation.

HTTP Request

POST /conversations/<CONVERSATION_ID>/messages

Request Parameters

Parameter Description
body The body of the new message

Webhooks

Steps for partner implementation

  1. Partner has to share with Direct, the URL to which the webhook events need to be triggered.

  2. Partner has to to create a service to accept the incoming webhook, return http status of 200 to 300, and notifying successful capture of messages. Any http status other than 200 to 300 will be considered as failure

  3. In the event of failed webhook, the webhook message will be triggered again until it is successful.

  4. All the webhook events will be sent to the same endpoint( Partner URL). Based on the Event type, the partner has to consume it in their end.

Reservation

Below webhook events can be availed in Reservation:

  1. Reservation Create

  2. Reservation Update( Cancellation will also be captured)

Reservation Create

The above webhook returns JSON structured like this:

   {
  "event": {
    "type": "reservation_create",
    "timestamp": "2022-03-24 18:19:58 +0530",
    "from": "directsoftware",
    "organization_id": 890,
    "entity": "reservation",
    "version": "1.0"
  },
  "data": {
    "reservation": {
      "id": 200000020991,
      "booking_code": "N6LQXLZ",
      "door_code": null,
      "updated_at": "2022-03-24T12:49:57.567Z",
      "property_id": 108900000002,
      "unit_id": 108900000002,
      "status": {
        "cancelled": false,
        "confirmed": true,
        "archived": false
      },
      "num_guests": 1,
      "days_booked": 4,
      "date_booked": "2022-03-24T12:49:57.567Z",
      "check_in_time": "2022-03-25T12:00:00.000+00:00",
      "check_out_time": "2022-03-28T12:00:00.000+00:00",
      "price_status": "not_paid",
      "stay_type": "guest",
      "channel": "Direct",
      "rent_total": 4193,
      "extras_total": 0,
      "booking_total": 4193,
      "quote_line_items": [
        {
          "id": 200001453269,
          "name": "Room Rate",
          "total_cents": 419300,
          "rate": 1397.67,
          "taxable": true,
          "item_type": "room_rate",
          "itemizable_type": "Quote",
          "itemizable_id": 200000078521,
          "created_at": "2022-03-24T12:49:22.260Z",
          "updated_at": "2022-03-24T12:49:22.260Z",
          "refundable": false,
          "optional": false,
          "additional_data": {
          },
          "organization_id": 890,
          "split": "no",
          "cancellation": false,
          "occurrence_date": "arrival",
          "debit_account_id": 108900000012,
          "credit_account_id": 108900000064
        },
        {
          "id": 200001453270,
          "name": "Additional Guest Fee",
          "total_cents": 0,
          "rate": null,
          "taxable": true,
          "item_type": "fees",
          "itemizable_type": "Quote",
          "itemizable_id": 200000078521,
          "created_at": "2022-03-24T12:49:22.280Z",
          "updated_at": "2022-03-24T12:49:22.280Z",
          "refundable": true,
          "optional": false,
          "additional_data": {
            "frequency_at_creation": "per_stay",
            "included_in_base_rent": false,
            "additional_guest_start": 1,
            "los_ranges_at_creation": [

            ],
            "default_calculation_amount": 0.0
          },
          "organization_id": 890,
          "split": "no",
          "cancellation": null,
          "occurrence_date": "check_in",
          "debit_account_id": null,
          "credit_account_id": null
        },
        {
          "id": 200001453271,
          "name": "Security Deposit",
          "total_cents": 1000,
          "rate": null,
          "taxable": false,
          "item_type": "deposit",
          "itemizable_type": "Quote",
          "itemizable_id": 200000078521,
          "created_at": "2022-03-24T12:49:22.285Z",
          "updated_at": "2022-03-24T12:49:22.285Z",
          "refundable": false,
          "optional": false,
          "additional_data": {
          },
          "organization_id": 890,
          "split": "no",
          "cancellation": false,
          "occurrence_date": null,
          "debit_account_id": null,
          "credit_account_id": null
        },
        {
          "id": 200001453272,
          "name": "Booking Total",
          "total_cents": 419300,
          "rate": null,
          "taxable": true,
          "item_type": "total",
          "itemizable_type": "Quote",
          "itemizable_id": 200000078521,
          "created_at": "2022-03-24T12:49:22.290Z",
          "updated_at": "2022-03-24T12:49:22.290Z",
          "refundable": false,
          "optional": false,
          "additional_data": {
          },
          "organization_id": 890,
          "split": "no",
          "cancellation": false,
          "occurrence_date": null,
          "debit_account_id": null,
          "credit_account_id": null
        }
      ],
      "price_paid": "0.0",
      "price_remaining": "4193.0",
      "customer": {
        "name": "WHTest",
        "email": "[email protected]",
        "telephone": "97864785348",
        "location": {
          "city": null,
          "state": null,
          "postal_code": null,
          "country": null
        }
      }
    }
  }
}


This webhook is triggered whenever a new reservation is created.

URL Parameters

Attribute Type Description
event Object Contains the details of the event triggered
data Object Contains the details of reservation created

Reservation Update

The above webhook returns JSON structured like this:

   {
  "event": {
    "type": "reservation_update",
    "timestamp": "2022-03-24 18:21:37 +0530",
    "from": "directsoftware",
    "organization_id": 890,
    "entity": "reservation",
    "version": "1.0"
  },
  "data": {
    "reservation": {
      "id": 200000020991,
      "booking_code": "N6LQXLZ",
      "door_code": null,
      "updated_at": "2022-03-24T12:51:36.951Z",
      "property_id": 108900000002,
      "unit_id": 108900000002,
      "status": {
        "cancelled": false,
        "confirmed": true,
        "archived": false
      },
      "num_guests": 2,
      "days_booked": 4,
      "date_booked": "2022-03-24T12:49:57.567Z",
      "check_in_time": "2022-03-25T12:00:00.000+00:00",
      "check_out_time": "2022-03-28T12:00:00.000+00:00",
      "price_status": "not_paid",
      "stay_type": "guest",
      "channel": "Direct",
      "rent_total": 4193,
      "extras_total": 0,
      "booking_total": 4193,
      "quote_line_items": [
        {
          "id": 200001453297,
          "name": "Room Rate",
          "total_cents": 419300,
          "rate": 1397.67,
          "taxable": true,
          "item_type": "room_rate",
          "itemizable_type": "Quote",
          "itemizable_id": 200000078523,
          "created_at": "2022-03-24T12:49:22.260Z",
          "updated_at": "2022-03-24T12:49:22.260Z",
          "refundable": false,
          "optional": false,
          "additional_data": {
          },
          "organization_id": 890,
          "split": "no",
          "cancellation": false,
          "occurrence_date": "arrival",
          "debit_account_id": 108900000012,
          "credit_account_id": 108900000064
        },
        {
          "id": 200001453298,
          "name": "Additional Guest Fee",
          "total_cents": 0,
          "rate": null,
          "taxable": true,
          "item_type": "fees",
          "itemizable_type": "Quote",
          "itemizable_id": 200000078523,
          "created_at": "2022-03-24T12:49:22.280Z",
          "updated_at": "2022-03-24T12:51:33.824Z",
          "refundable": true,
          "optional": false,
          "additional_data": {
            "custom_edit": true,
            "frequency_at_creation": "per_stay",
            "included_in_base_rent": false,
            "additional_guest_start": 1,
            "los_ranges_at_creation": [

            ],
            "default_calculation_amount": 0.0
          },
          "organization_id": 890,
          "split": "no",
          "cancellation": null,
          "occurrence_date": "check_in",
          "debit_account_id": null,
          "credit_account_id": null
        },
        {
          "id": 200001453299,
          "name": "Security Deposit",
          "total_cents": 1000,
          "rate": null,
          "taxable": false,
          "item_type": "deposit",
          "itemizable_type": "Quote",
          "itemizable_id": 200000078523,
          "created_at": "2022-03-24T12:49:22.285Z",
          "updated_at": "2022-03-24T12:49:22.285Z",
          "refundable": false,
          "optional": false,
          "additional_data": {
          },
          "organization_id": 890,
          "split": "no",
          "cancellation": false,
          "occurrence_date": null,
          "debit_account_id": null,
          "credit_account_id": null
        },
        {
          "id": 200001453300,
          "name": "Booking Total",
          "total_cents": 419300,
          "rate": null,
          "taxable": true,
          "item_type": "total",
          "itemizable_type": "Quote",
          "itemizable_id": 200000078523,
          "created_at": "2022-03-24T12:49:22.290Z",
          "updated_at": "2022-03-24T12:49:22.290Z",
          "refundable": false,
          "optional": false,
          "additional_data": {
          },
          "organization_id": 890,
          "split": "no",
          "cancellation": false,
          "occurrence_date": null,
          "debit_account_id": null,
          "credit_account_id": null
        }
      ],
      "price_paid": "0.0",
      "price_remaining": "4193.0",
      "customer": {
        "name": "WHTest",
        "email": "[email protected]",
        "telephone": "97864785348",
        "location": {
          "city": null,
          "state": null,
          "postal_code": null,
          "country": null
        }
      }
    }
  }
}

This webhook is triggered whenever a reservation is updated .

URL Parameters

Attribute Type Description
event Object Contains the details of the event triggered
data Object Contains the details of updated reservation

Reservation Cancellation

The structure of JSON triggered by Webhook is as below:

   [
      {
  "event": {
    "type": "reservation_update",
    "timestamp": "2022-03-24 18:22:44 +0530",
    "from": "directsoftware",
    "organization_id": 890,
    "entity": "reservation",
    "version": "1.0"
  },
  "data": {
    "reservation": {
      "id": 200000020991,
      "booking_code": "N6LQXLZ",
      "door_code": null,
      "updated_at": "2022-03-24T12:52:44.286Z",
      "property_id": 108900000002,
      "unit_id": 108900000002,
      "status": {
        "cancelled": true,
        "confirmed": true,
        "archived": false
      },
      "num_guests": 2,
      "days_booked": 4,
      "date_booked": "2022-03-24T12:49:57.567Z",
      "check_in_time": "2022-03-25T12:00:00.000+00:00",
      "check_out_time": "2022-03-28T12:00:00.000+00:00",
      "price_status": "not_paid",
      "stay_type": "guest",
      "channel": "Direct",
      "rent_total": 4193,
      "extras_total": 0,
      "booking_total": 4193,
      "quote_line_items": [
        {
          "id": 200001453325,
          "name": "Room Rate",
          "total_cents": 419300,
          "rate": 1397.67,
          "taxable": true,
          "item_type": "room_rate",
          "itemizable_type": "Quote",
          "itemizable_id": 200000078525,
          "created_at": "2022-03-24T12:49:22.260Z",
          "updated_at": "2022-03-24T12:52:37.371Z",
          "refundable": false,
          "optional": false,
          "additional_data": {
            "custom_edit": true
          },
          "organization_id": 890,
          "split": "no",
          "cancellation": false,
          "occurrence_date": "arrival",
          "debit_account_id": 108900000012,
          "credit_account_id": 108900000064
        },
        {
          "id": 200001453326,
          "name": "Additional Guest Fee",
          "total_cents": 0,
          "rate": null,
          "taxable": true,
          "item_type": "fees",
          "itemizable_type": "Quote",
          "itemizable_id": 200000078525,
          "created_at": "2022-03-24T12:49:22.280Z",
          "updated_at": "2022-03-24T12:51:33.824Z",
          "refundable": true,
          "optional": false,
          "additional_data": {
            "custom_edit": true,
            "frequency_at_creation": "per_stay",
            "included_in_base_rent": false,
            "additional_guest_start": 1,
            "los_ranges_at_creation": [

            ],
            "default_calculation_amount": 0.0
          },
          "organization_id": 890,
          "split": "no",
          "cancellation": null,
          "occurrence_date": "check_in",
          "debit_account_id": null,
          "credit_account_id": null
        },
        {
          "id": 200001453327,
          "name": "Security Deposit",
          "total_cents": 1000,
          "rate": null,
          "taxable": false,
          "item_type": "deposit",
          "itemizable_type": "Quote",
          "itemizable_id": 200000078525,
          "created_at": "2022-03-24T12:49:22.285Z",
          "updated_at": "2022-03-24T12:49:22.285Z",
          "refundable": false,
          "optional": false,
          "additional_data": {
          },
          "organization_id": 890,
          "split": "no",
          "cancellation": false,
          "occurrence_date": null,
          "debit_account_id": null,
          "credit_account_id": null
        },
        {
          "id": 200001453328,
          "name": "Booking Total",
          "total_cents": 419300,
          "rate": null,
          "taxable": true,
          "item_type": "total",
          "itemizable_type": "Quote",
          "itemizable_id": 200000078525,
          "created_at": "2022-03-24T12:49:22.290Z",
          "updated_at": "2022-03-24T12:49:22.290Z",
          "refundable": false,
          "optional": false,
          "additional_data": {
          },
          "organization_id": 890,
          "split": "no",
          "cancellation": false,
          "occurrence_date": null,
          "debit_account_id": null,
          "credit_account_id": null
        }
      ],
      "price_paid": "0.0",
      "price_remaining": "4193.0",
      "date_cancelled": "2022-03-24T12:52:44.286Z",
      "customer": {
        "name": "WHTest",
        "email": "[email protected]",
        "telephone": "97864785348",
        "location": {
          "city": null,
          "state": null,
          "postal_code": null,
          "country": null
        }
      }
    }
  }
}
   ]

This webhook is triggered whenever a reservation is cancelled . It is triggered as Reservation Update event with status of cancellation as 'true' but provided seperately for better clarity.

URL Parameters

Attribute Type Description
event Object Contains the details of the event triggered
data Object Contains the details of updated reservation

Promotions

Below webhook events can be availed in Promotions:

  1. Promotion Creation

  2. Promotion Update and

  3. Promotion Delete

Promotion Creation

The above webhook triggers JSON structure like this:

   [
  {
  "event": {
    "type": "promotion_create",
    "timestamp": "2022-03-24 18:24:21 +0530",
    "from": "directsoftware",
    "organization_id": 890,
    "entity": "promotion",
    "version": "1.0"
  },
  "data": {
    "promotion": {
      "id": 200000000099,
      "special_type": "flat",
      "amount": 12,
      "req_nights": null,
      "travel_date_start": "2022-03-24",
      "travel_end_date": "2022-03-24",
      "promo_start_date": "2022-03-24",
      "promo_end_date": "2022-03-24",
      "days_of_week": null,
      "code_req": false,
      "coupon_code": null,
      "name": "New_Promo",
      "internal_name": "Test_Promo",
      "distro_list": null,
      "portfolio_id": 108900000004,
      "subportfolio_id": null,
      "created_at": "2022-03-24T12:54:21.693Z",
      "updated_at": "2022-03-24T12:54:21.693Z",
      "active": true,
      "organization_id": 890
    }
  }
}


   ]

This Webhook is triggered whenever a Promotion is created.

URL Parameters

Attribute Type Description
event Object Contains the details of the event triggered
data Object Contains the details of updated reservation

Promotion Update

The above webhook triggers JSON structure like this

  {
  "event": {
    "type": "promotion_update",
    "timestamp": "2022-03-24 18:25:09 +0530",
    "from": "directsoftware",
    "organization_id": 890,
    "entity": "promotion",
    "version": "1.0"
  },
  "data": {
    "promotion": {
      "id": 200000000099,
      "special_type": "flat",
      "amount": 12,
      "req_nights": 1,
      "travel_date_start": "2022-03-24",
      "travel_end_date": "2022-03-24",
      "promo_start_date": "2022-03-24",
      "promo_end_date": "2022-03-24",
      "days_of_week": null,
      "code_req": false,
      "coupon_code": null,
      "name": "New_Promo",
      "internal_name": "Test_Promo",
      "distro_list": null,
      "portfolio_id": 200000000102,
      "subportfolio_id": null,
      "created_at": "2022-03-24T12:54:21.693Z",
      "updated_at": "2022-03-24T12:55:09.442Z",
      "active": true,
      "organization_id": 890
    }
  }
}

This Webhook is triggered whenever a Promotion is Updated.

URL Parameters

Attribute Type Description
event Object Contains the details of the event triggered
data Object Contains the details of updated reservation

Promotion Delete

The above webhook triggers JSON structure like this

  {
  "event": {
    "type": "promotion_delete",
    "timestamp": "2022-03-24 18:25:41 +0530",
    "from": "directsoftware",
    "organization_id": 890,
    "entity": "promotion",
    "version": "1.0"
  },
  "data": {
    "promotion": {
      "id": 200000000099,
      "special_type": "flat",
      "amount": 12,
      "req_nights": 1,
      "travel_date_start": "2022-03-24",
      "travel_end_date": "2022-03-24",
      "promo_start_date": "2022-03-24",
      "promo_end_date": "2022-03-24",
      "days_of_week": null,
      "code_req": false,
      "coupon_code": null,
      "name": "New_Promo",
      "internal_name": "Test_Promo",
      "distro_list": null,
      "portfolio_id": 200000000102,
      "subportfolio_id": null,
      "created_at": "2022-03-24T12:54:21.693Z",
      "updated_at": "2022-03-24T12:55:09.442Z",
      "active": true,
      "organization_id": 890
    }
  }
}

This Webhook is triggered whenever a Promotion is Deleted.

URL Parameters

Attribute Type Description
event Object Contains the details of the event triggered
data Object Contains the details of updated reservation

Properties

Below webhook events can be availed in Property:

  1. Property Create

  2. Property Update and

  3. Promotion Delete

Property Create

The above webhook triggers JSON structure like this

   {
  "event": {
    "type": "property_create",
    "timestamp": "2022-03-24 18:12:17 +0530",
    "from": "directsoftware",
    "organization_id": 890,
    "entity": "property",
    "version": "1.0"
  },
  "data": {
    "property": {
      "id": 200000002374,
      "name": "Test_Doc_Prop",
      "unit_code": null,
      "updated_at": "2022-03-24T12:42:17.478Z",
      "active": null,
      "summary_description": null,
      "summary_headline": null,
      "summary_rules": null,
      "address": {
        "addressLine1": "105 Valle de San Juan",
        "addressLine2": "",
        "city": "León",
        "state": "GUA",
        "country": "MX",
        "postalCode": "37538",
        "lat": 21.0716851,
        "lng": -101.6344657
      },
      "features": {
      },
      "featured_image": null,
      "images": [

      ],
      "units": [

      ]
    }
  }
}

This Webhook is triggered whenever a property is created.

URL Parameters

Attribute Type Description
event Object Contains the details of the event triggered
data Object Contains the details of updated reservation

Property Update

The above webhook triggers JSON structure like this

  {
  "event": {
    "type": "property_update",
    "timestamp": "2022-03-24 18:13:59 +0530",
    "from": "directsoftware",
    "organization_id": 890,
    "entity": "property",
    "version": "1.0"
  },
  "data": {
    "property": {
      "id": 200000002365,
      "name": "Webhook_Test_Prop",
      "unit_code": null,
      "updated_at": "2022-03-07T13:03:50.697Z",
      "active": false,
      "summary_description": null,
      "summary_headline": "WH_Test_Prop",
      "summary_rules": null,
      "address": {
        "addressLine1": "1048 Avenida Eva Perón",
        "addressLine2": "",
        "city": "CJN",
        "state": "B",
        "country": "AR",
        "postalCode": "C1424",
        "lat": -34.6297065,
        "lng": -58.4402317
      },
      "features": {
      },
      "featured_image": null,
      "images": [

      ],
      "units": [
        {
          "id": 200000002139,
          "unit_code": null,
          "active": false,
          "description": "",
          "propertyType": "PROPERTY_TYPE_APARTMENT",
          "currency"
          : "USD",
          "name": "Full Property: Webhook_Test_Prop",
          "occupancy": 1,
          "bathrooms": [
            {
              "id": 200000004979,
              "roomSubType": "FULL_BATH",
              "amenities": [

              ]
            }
          ],
          "bedrooms": [
            {
              "id": 200000006832,
              "roomSubType": "LIVING_SLEEPING_COMBO",
              "amenities": [
                "Twin/single bed - 1"
              ]
            },
            {
              "id": 200000006833,
              "roomSubType": "BEDROOM",
              "amenities": [
                "Twin/single bed - 1"
              ]
            }
          ],
          "unitFeatures": {
            "ACCOMMODATIONS_TYPE_BED_AND_BREAKFAST": {
              "label": "Bed and breakfast",
              "value": true
            },
            "AMENITIES_AIR_CONDITIONING": {
              "label": "Air conditioning",
              "value": true
            },
            "KITCHEN_DINING_AREA": {
              "label": "Dining area",
              "value": true
            },
            "ENTERTAINMENT_BOOKS": {
              "label": "Books",
              "value": true
            },
            "ENTERTAINMENT_DVD": {
              "label": "DVD Player",
              "value": true
            },
            "OUTDOOR_BALCONY": {
              "label": "Balcony",
              "value": true
            },
            "OUTDOOR_BICYCLE": {
              "label": "Bicycle",
              "value": true
            },
            "POOL_SPA_COMMUNAL_POOL": {
              "label": "Communal pool",
              "value": true
            },
            "THEMES_ADVENTURE": {
              "label": "Adventure",
              "value": true
            }
          }
        }
      ]
    }
  }
}

This Webhook is triggered whenever a property is updated and hence it will be triggered for update across each tab. For a single property, if multiple updates are done simultaneously, multiple webhook push are expected.

URL Parameters

Attribute Type Description
event Object Contains the details of the event triggered
data Object Contains the details of updated reservation

Property Delete

The above webhook triggers JSON structure like this

   {
  "event": {
    "type": "property_delete",
    "timestamp": "2022-03-24 18:13:59 +0530",
    "from": "directsoftware",
    "organization_id": 890,
    "entity": "property",
    "version": "1.0"
  },
  "data": {
    "property": {
      "id": 200000002284,
      "name": "WH_Test_Prop",
      "unit_code": null,
      "updated_at": "2022-02-24T12:23:32.877Z",
      "active": false,
      "summary_description": null,
      "summary_headline": null,
      "summary_rules": null,
      "address": {
        "addressLine1": null,
        "addressLine2": null,
        "city": null,
        "state": null,
        "country": null,
        "postalCode": null,
        "lat": null,
        "lng": null
      },
      "features": {
      },
      "featured_image": null,
      "images": [

      ],
      "units": [

      ]
    }
  }
}

This Webhook is triggered whenever a property is Updated.

URL Parameters

Attribute Type Description
event Object Contains the details of the event triggered
data Object Contains the details of updated reservation

Unit Rates

Below webhook events can be availed in Unit Rates:

  1. Unit Rate Update

Unit Rate Update

The above webhook triggers JSON structure like this

   {
  "event": {
    "type": "unit_rate_update",
    "timestamp": "2022-03-24 18:16:34 +0530",
    "from": "directsoftware",
    "organization_id": 890,
    "entity": "unit_rate",
    "version": "1.0"
  },
  "data": {
    "unit_rate": {
      "unit_id": 200000002137,
      "currency": "USD",
      "updated_at": "2022-03-24T12:46:34.555Z",
      "default_nightly_weekend": 16.0,
      "default_nightly_weekday": 11.0,
      "tax_rate": 0.0,
      "adj_tax": 0.0,
      "max_night_with_tax_rate": 0,
      "exclude_tax": false,
      "tax_adjustable": false,
      "discounts": [
        {
          "name": "Week discount",
          "range": [
            7,
            27
          ],
          "percent": "1.0"
        }
      ],
      "fees": [
        {
          "id": 200000007854,
          "name": "Cleaning Fee",
          "calculation_type": "flat",
          "calculation_amount": "122.0",
          "taxable": true,
          "is_addon": "false"
        }
      ],
      "security_deposit": [

      ],
      "nightlyOverrides": [

      ],
      "paymentSchedule": [
        {
          "days": null,
          "dueType": "AT_BOOKING",
          "type": "percent",
          "amount": 100
        }
      ]
    }
  }
}


This Webhook is triggered whenever a unit rate is updated.

URL Parameters

Attribute Type Description
event Object Contains the details of the event triggered
data Object Contains the details of updated reservation

Unit Availability

Below webhook events can be availed in Unit Availability:

  1. Unit Availability Update

Unit Availability Update

The above webhook triggers JSON structure like this

   {
  "event": {
    "type": "unit_availability_update",
    "timestamp": "2022-03-24 18:15:37 +0530",
    "from": "directsoftware",
    "organization_id": 890,
    "entity": "unit_availability",
    "version": "1.0"
  },
  "data": {
    "unit_availability": {
      "unit_id": 200000002137,
      "availabilityDefault": "Y",
      "stayIncrementDefault": "D",
      "changeOverDefault": "C",
      "availableUnitCountDefault": 1,
      "updated_at": "2022-03-24T12:45:37.318Z",
      "default_stay_min": 1,
      "default_stay_max": 7,
      "default_prior_notify_min": 1,
      "dateRange": {
        "beginDate": "2022-03-24",
        "endDate": "2025-03-23"
      },
      "availability": "YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY",
      "changeOver": "CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC",
      "maxStay": "7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7",
      "minPriorNotify": "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1",
      "minStay": "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1",
      "stayIncrement": "DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD"
    }
  }
}

This Webhook is triggered whenever a unit availability is updated.

URL Parameters

Attribute Type Description
event Object Contains the details of the event triggered
data Object Contains the details of updated reservation

Statements

Below webhook events can be availed in Statement:

  1. Statement delete

Statement Delete

The above webhook triggers JSON structure like this

  {
  "event": {
    "type": "statement_delete",
    "timestamp": "2022-02-24 18:16:25 +0530",
    "from": "directsoftware",
    "organization_id": 890,
    "entity": "statement",
    "version": "1.0"
  },
  "data": {
    "statement": {
    "id": 108900000010,
    "document_id": null,
    "name": "Statement for Naman Patel: 05/01/19 - 05/31/19",
    "end_balance_cents": 0,
    "start_balance_cents": 0,
    "start_date": "2019-05-01",
    "end_date": "2019-05-31",
    "processed_at": null,
    "payee_type": "Employee",
    "payee_id": 108900000003,
    "optional_id": null,
    "optional_note": "faked_value",
    "current_balance_cents": 0,
    "visibility_status": "visible",
    "payee_role": "organization_owner",
    "deferred_balance": 0,
    "invoices": [],
    "invoices_subtotal": 0
  }
}

This Webhook is triggered whenever a statement gets updated.

URL Parameters

Attribute Type Description
event Object Contains the details of the event triggered
data Object Contains the details of updated reservation

Reviews

Below webhook events can be availed in Review:

  1. Review Create

Review Create

The above webhook triggers JSON structure like this

{
  "event": {
    "type": "review_create",
    "timestamp": "2022-02-24 18:16:25 +0530",
    "from": "directsoftware",
    "organization_id": 890,
    "entity": "review",
    "version": "1.0"
  },
  "data": {
    "review": {
    "id": 200000000895,
    "unit_id": 200000000895,
    "booking_id": 200000020636,
    "title": "this stay was awesome",
    "body": "<p>awesome possum</p>\n",
    "name": "Lauren A Flaugher",
    "check_in_date": "2021-08-12T00:00:00.000Z",
    "status": "published",
    "rating": 5,
    "created_at": "2021-08-18T17:10:44.054Z",
    "updated_at": "2021-08-31T16:15:26.952Z",
    "reviewed_date": "2021-08-18T17:10:44.045Z",
    "check_out_date": "2021-08-14T00:00:00.000Z",
    "where_from": null,
    "organization_id": 890,
    "customer_id": 200000039981,
    "response": "Testing a response.",
    "responded_at": null
  }
}

This Webhook is triggered whenever a review gets updated.

URL Parameters

Attribute Type Description
event Object Contains the details of the event triggered
data Object Contains the details of updated reservation

Errors

The Direct API uses the following error codes:

Error Code Meaning
400 Bad Request -- Your request is invalid.
401 Unauthorized -- Your API key is wrong.
403 Forbidden -- The information requested is hidden for administrators only.
404 Not Found -- The specified information could not be found.
429 Too Many Requests -- You're making too many requests. Try again later.
500 Internal Server Error -- We had a problem with our server. Try again later.
503 Service Unavailable -- We're temporarily offline for maintenance. Please try again later.