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 </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 </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 </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
Partner has to share with Direct, the URL to which the webhook events need to be triggered.
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
In the event of failed webhook, the webhook message will be triggered again until it is successful.
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:
Reservation Create
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:
Promotion Creation
Promotion Update and
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:
Property Create
Property Update and
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:
- 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:
- 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:
- 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:
- 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. |