Manage Hostaway listings, reservations, calendar, guest messages, reviews and tasks.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Calculate what a stay at a listing would cost — total price plus the component breakdown (base rate, cleaning fee, taxes, discounts). A calculation only: nothing is booked or held. Hostaway: POST /v1/listings/{listingId}/calendar/priceDetails (version 2).
Listing id.
Departure date (YYYY-MM-DD).
Arrival date (YYYY-MM-DD).
Number of guests.
Price markup multiplier (must be more than 1.0).
Reservation coupon id to apply.
Calculate what a stay at a listing would cost — total price plus the component breakdown (base rate, cleaning fee, taxes, discounts). A calculation only: nothing is booked or held. Hostaway: POST /v1/listings/{listingId}/calendar/priceDetails (version 2).
| Argument | Type | Description |
|---|---|---|
| markup | number | Price markup multiplier (must be more than 1.0). |
| listingId* | integer | Listing id. |
| endingDate* | string | Departure date (YYYY-MM-DD). |
| startingDate* | string | Arrival date (YYYY-MM-DD). |
| numberOfGuests* | integer | Number of guests. |
| reservationCouponId | integer | Reservation coupon id to apply. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"listingId",
"startingDate",
"endingDate",
"numberOfGuests"
],
"properties": {
"markup": {
"type": "number",
"minimum": 1,
"description": "Price markup multiplier (must be more than 1.0)."
},
"listingId": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Listing id.",
"exclusiveMinimum": 0
},
"endingDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Departure date (YYYY-MM-DD)."
},
"startingDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Arrival date (YYYY-MM-DD)."
},
"numberOfGuests": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "Number of guests."
},
"reservationCouponId": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Reservation coupon id to apply.",
"exclusiveMinimum": 0
}
}
}Create a new reservation on a listing (it blocks the calendar and syncs to connected channels). Only channelId 2000 (direct, the default), 2002 (homeaway) or 2020 (partner) are accepted. To price it correctly, call hostaway_calculate_price first and pass its total as totalPrice. Overbooking protection is always left on. Hostaway: POST /v1/reservations.
| Argument | Type | Description |
|---|---|---|
| pets | integer | Pets. |
| phone | string | Guest phone, e.g. +15125551212. |
| adults | integer | Adults. |
| comment | string | Free-text comment. |
| infants | integer | Infants. |
| children | integer | Children. |
| currency | string | Currency code, e.g. USD. |
| doorCode | string | Door / lock code for this stay. |
| hostNote | string | Internal host note (not shown to the guest). |
Create an operational task — e.g. a cleaning after a checkout or a maintenance job — optionally tied to a listing and reservation, assigned to a user, with a time window, category and cost. Hostaway: POST /v1/tasks.
| Argument | Type | Description |
|---|---|---|
| cost | number | Task cost. |
| color | string | Colour in hex, e.g. #FF8800. |
| title* | string | Task title. |
| status | string | pending, confirmed, inProgress, completed or cancelled. |
| priority | integer | Priority. |
| description | string | Task description. |
| shouldEndBy | string | Deadline ("YYYY-MM-DD HH:MM:SS", UTC). |
| canStartFrom | string | Earliest start time ("YYYY-MM-DD HH:MM:SS", UTC). |
| costCurrency | string | Cost currency, e.g. USD. |
Day-by-day availability and pricing for one listing over a date range: status (available, blocked, reserved, pending), nightly price, min/max stay, closed-to-arrival/departure and notes. Set includeResources to see the reservations occupying each day. Hostaway: GET /v1/listings/{listingId}/calendar.
| Argument | Type | Description |
|---|---|---|
| endDate* | string | Last day (YYYY-MM-DD). |
| listingId* | integer | Listing id. |
| startDate* | string | First day (YYYY-MM-DD). |
| includeResources | boolean | Include attached sub-resources (sent as includeResources=1). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"listingId",
"startDate",
"endDate"
],
"properties": {
"endDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Last day (YYYY-MM-DD)."
},
"listingId": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Listing id.",
"exclusiveMinimum": 0
},
"startDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "First day (YYYY-MM-DD)."
},
"includeResources": {
"type": "boolean",
"description": "Include attached sub-resources (sent as includeResources=1)."
}
}
}Fetch a single listing by id — full details including description, house rules, amenities, images, fees, taxes, cancellation policy and access info (door code, wifi). Hostaway: GET /v1/listings/{listingId}.
| Argument | Type | Description |
|---|---|---|
| listingId* | integer | Listing id. |
| includeResources | boolean | Include attached sub-resources (sent as includeResources=1). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"listingId"
],
"properties": {
"listingId": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Listing id.",
"exclusiveMinimum": 0
},
"includeResources": {
"type": "boolean",
"description": "Include attached sub-resources (sent as includeResources=1)."
}
}
}Fetch one owner statement — the filter it was generated with (listings, date range), summary and per-reservation financial data, grand totals, expenses, and owner / property-manager details. Hostaway: GET /v1/ownerStatement/{ownerStatementId}.
| Argument | Type | Description |
|---|---|---|
| ownerStatementId* | integer | Owner statement id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"ownerStatementId"
],
"properties": {
"ownerStatementId": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Owner statement id.",
"exclusiveMinimum": 0
}
}
}Fetch a single reservation by its Hostaway id — guest contact details, dates, guest counts, price breakdown, payment state, door code, notes, channel and cancellation policy. Hostaway: GET /v1/reservations/{reservationId}.
| Argument | Type | Description |
|---|---|---|
| reservationId* | integer | Hostaway reservation id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"reservationId"
],
"properties": {
"reservationId": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Hostaway reservation id.",
"exclusiveMinimum": 0
}
}
}The audit trail for one reservation: every field change with previous and new value, when, and by which user (most recent first). Useful for 'who changed these dates / this price?'. Hostaway: GET /v1/reservations/{reservationId}/logs.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Maximum records to return (1-500). |
| offset | integer | Records to skip from the start. |
| reservationId* | integer | Hostaway reservation id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"reservationId"
],
"properties": {
"limit": {
"type": "integer",
"maximum": 500,
"minimum": 1,
"description": "Maximum records to return (1-500)."
},
"offset": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Records to skip from the start."
},
"reservationId": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Hostaway reservation id.",
"exclusiveMinimum": 0
}
}
}The messages in one guest conversation — body, direction (isIncoming), channel/email/SMS type, send status and timestamps. By default only sent messages; set includeScheduledMessages to also see scheduled, paused or failed ones. Hostaway: GET /v1/conversations/{conversationId}/messages.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Maximum records to return (1-500). |
| offset | integer | Records to skip from the start. |
| conversationId* | integer | Conversation id. |
| includeScheduledMessages | boolean | Also return scheduled / failed / paused messages. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"conversationId"
],
"properties": {
"limit": {
"type": "integer",
"maximum": 500,
"minimum": 1,
"description": "Maximum records to return (1-500)."
},
"offset": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Records to skip from the start."
},
"conversationId": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Conversation id.",
"exclusiveMinimum": 0
},
"includeScheduledMessages": {
"type": "boolean",
"description": "Also return scheduled / failed / paused messages."
}
}
}List guest conversations (the unified inbox across channels), each with its latest message and linked reservation. Filter to one reservation. Hostaway: GET /v1/conversations.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Maximum records to return (1-500). |
| offset | integer | Records to skip from the start. |
| reservationId | integer | Only conversations for this reservation. |
| includeResources | boolean | Include attached sub-resources (sent as includeResources=1). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": "integer",
"maximum": 500,
"minimum": 1,
"description": "Maximum records to return (1-500)."
},
"offset": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Records to skip from the start."
},
"reservationId": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Only conversations for this reservation.",
"exclusiveMinimum": 0
},
"includeResources": {
"type": "boolean",
"description": "Include attached sub-resources (sent as includeResources=1)."
}
}
}List expenses (negative amounts) and extras (positive amounts) recorded against listings and reservations, with date, concept, categories and the owner statements they appear on. Hostaway: GET /v1/expenses.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Maximum records to return (1-500). |
| offset | integer | Records to skip from the start. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": "integer",
"maximum": 500,
"minimum": 1,
"description": "Maximum records to return (1-500)."
},
"offset": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Records to skip from the start."
}
}
}List the account's properties (listings) with name, address, capacity, base price, fees and check-in times. Filter by name, city, country, property type, availability for a date range and guest count, or active/archived status. Hostaway: GET /v1/listings.
| Argument | Type | Description |
|---|---|---|
| city | string | City. |
| limit | integer | Maximum records to return (1-500). |
| match | string | Search by listing name. |
| offset | integer | Records to skip from the start. |
| country | string | Country. |
| sortOrder | string | Sort order. |
| specialStatus | array | Filter by status; omit for both active and archived. |
| propertyTypeId | integer | Property type id. |
| includeResources | boolean | Include attached sub-resources (sent as includeResources=1). |
List the account's owner statements (id and name). Hostaway: GET /v1/ownerStatements.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}List reservations across all channels (Airbnb, Vrbo, Booking.com, direct…) with guest, dates, status, price and channel. Filter by listing, channel, arrival/departure window, guest name or email, unread messages, and more. Default order is newest first; for large accounts page with afterId (the id of the last reservation on the previous page). Channel ids: 2000 direct, 2018 airbnbOfficial, 2002 homeaway/Vrbo, 2005 bookingcom, 2007 expedia, 2013 bookingengine, 2019 marriott, 2020 partner, 2022 google. Hostaway: GET /v1/reservations.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Maximum records to return (1-500). |
| match | string | Search by guest name. |
| offset | integer | Records to skip from the start. |
| afterId | integer | Cursor: the id of the last reservation from the previous page (offset is then ignored). |
| endDate | string | Upper bound for dateType (YYYY-MM-DD). |
| dateType | string | Which date startDate/endDate bound (only on accounts with the new reservations query; 'cancellation' also restricts to cancelled). |
| channelId | integer | Only this channel id. |
List guest-to-host and host-to-guest reviews with rating (0-10), public review, private feedback and the host's reply. Filter by listings, reservation, type, status, rating range, dates, guest name, or whether the host has replied. Hostaway: GET /v1/reviews.
| Argument | Type | Description |
|---|---|---|
| type | string | Review direction. |
| limit | integer | Maximum records to return (1-500). |
| offset | integer | Records to skip from the start. |
| sortBy | string | Sort field. |
| statuses | array | Review statuses. |
| guestName | string | Partial, case-insensitive guest-name match. |
| ratingMax | number | Maximum rating (0-10). |
| ratingMin | number | Minimum rating (0-10). |
| sortOrder | string | Sort direction (default desc). |
List operational tasks (cleaning, maintenance, check-in/out) with assignee, status, time window and cost. Filter by reservation, status, text match, channel, or start/deadline windows. Hostaway: GET /v1/tasks.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Maximum records to return (1-500). |
| match | string | Text search. |
| offset | integer | Records to skip from the start. |
| status | string | Task status. |
| channelId | integer | Channel id. |
| reservationId | integer | Only tasks for this reservation. |
| shouldEndByEnd | string | Deadline until (YYYY-MM-DD). |
| canStartFromEnd | string | Start window until (YYYY-MM-DD). |
| shouldEndByStart | string | Deadline from (YYYY-MM-DD). |
Send a message to the guest in a conversation — it is delivered immediately and cannot be recalled. Delivered by email by default, or via the booking channel, SMS or WhatsApp. Attachments are not supported. Rate-limited by Hostaway to 30 messages per minute. Hostaway: POST /v1/conversations/{conversationId}/messages.
| Argument | Type | Description |
|---|---|---|
| body* | string | Message text. |
| conversationId* | integer | Conversation id (see hostaway_list_conversations). |
| communicationType | string | Delivery method (Hostaway default: email). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"conversationId",
"body"
],
"properties": {
"body": {
"type": "string",
"minLength": 1,
"description": "Message text."
},
"conversationId": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Conversation id (see hostaway_list_conversations).",
"exclusiveMinimum": 0
},
"communicationType": {
"enum": [
"email",
"channel",
"sms",
"whatsapp"
],
"type": "string",
"description": "Delivery method (Hostaway default: email)."
}
}
}Change availability and/or pricing for a date range on one listing, pushed to every connected channel: block (isAvailable=false) or open days, set the nightly price, min/max stay, closed-to-arrival/departure, or a note. For multi-unit listings set desiredUnitsToSell instead of isAvailable (0 blocks). Hostaway: PUT /v1/listings/{listingId}/calendar.
| Argument | Type | Description |
|---|---|---|
| note | string | Calendar note. |
| price | number | Nightly price. |
| endDate* | string | Last day to change (YYYY-MM-DD). |
| listingId* | integer | Listing id. |
| startDate* | string | First day to change (YYYY-MM-DD). |
| isAvailable | boolean | false blocks the days, true opens them (single-unit listings). |
| maximumStay | integer | Maximum nights. |
| minimumStay | integer | Minimum nights. |
Change fields on an existing reservation — guest details and counts, dates, check-in/out hours, door code, host note or comment. Send only the fields to change. The listing cannot be changed, and this tool never cancels or reprices a booking. Date changes on channel bookings may be overwritten by the channel. Hostaway: PUT /v1/reservations/{reservationId}.
| Argument | Type | Description |
|---|---|---|
| pets | integer | Pets. |
| phone | string | Guest phone, e.g. +15125551212. |
| adults | integer | Adults. |
| comment | string | Free-text comment. |
| infants | integer | Infants. |
| children | integer | Children. |
| doorCode | string | Door / lock code for this stay. |
| hostNote | string | Internal host note (not shown to the guest). |
| guestCity | string | Guest city. |
Update a task — change its status (e.g. completed), reassign it, move its window, or add a resolution note. Send only the fields to change. Hostaway: PUT /v1/tasks/{taskId}.
| Argument | Type | Description |
|---|---|---|
| cost | number | Task cost. |
| color | string | Colour in hex, e.g. #FF8800. |
| title | string | Task title. |
| status | string | pending, confirmed, inProgress, completed or cancelled. |
| taskId* | integer | Task id. |
| priority | integer | Priority. |
| description | string | Task description. |
| shouldEndBy | string | Deadline ("YYYY-MM-DD HH:MM:SS", UTC). |
| canStartFrom | string | Earliest start time ("YYYY-MM-DD HH:MM:SS", UTC). |
| costCurrency |
| channelId |
| any |
| 2000 direct (default), 2002 homeaway, 2020 partner. |
| guestCity | string | Guest city. |
| guestName | string | Guest full name. |
| guestNote | string | Note from the guest. |
| guestEmail | string | Guest email. |
| totalPrice | number | Total price of the stay. |
| arrivalDate* | string | Arrival date (YYYY-MM-DD). |
| checkInTime | integer | Check-in time (hour of day, 0-23). |
| checkOutTime | integer | Check-out time (hour of day, 0-23). |
| guestAddress | string | Guest street address. |
| guestCountry | string | Guest country (ISO 3166 code, e.g. US). |
| guestZipCode | string | Guest ZIP / postal code. |
| listingMapId* | integer | Listing id to book. |
| departureDate* | string | Departure date (YYYY-MM-DD). |
| guestLastName | string | Guest last name. |
| doorCodeVendor | string | Lock vendor. |
| guestFirstName | string | Guest first name. |
| numberOfGuests | integer | Total number of guests. |
| doorCodeInstruction | string | Door-code instructions. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"listingMapId",
"arrivalDate",
"departureDate"
],
"properties": {
"pets": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Pets."
},
"phone": {
"type": "string",
"description": "Guest phone, e.g. +15125551212."
},
"adults": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Adults."
},
"comment": {
"type": "string",
"description": "Free-text comment."
},
"infants": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Infants."
},
"children": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Children."
},
"currency": {
"type": "string",
"description": "Currency code, e.g. USD."
},
"doorCode": {
"type": "string",
"description": "Door / lock code for this stay."
},
"hostNote": {
"type": "string",
"description": "Internal host note (not shown to the guest)."
},
"channelId": {
"anyOf": [
{
"type": "number",
"const": 2000
},
{
"type": "number",
"const": 2002
},
{
"type": "number",
"const": 2020
}
],
"description": "2000 direct (default), 2002 homeaway, 2020 partner."
},
"guestCity": {
"type": "string",
"description": "Guest city."
},
"guestName": {
"type": "string",
"description": "Guest full name."
},
"guestNote": {
"type": "string",
"description": "Note from the guest."
},
"guestEmail": {
"type": "string",
"description": "Guest email."
},
"totalPrice": {
"type": "number",
"minimum": 0,
"description": "Total price of the stay."
},
"arrivalDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Arrival date (YYYY-MM-DD)."
},
"checkInTime": {
"type": "integer",
"maximum": 23,
"minimum": 0,
"description": "Check-in time (hour of day, 0-23)."
},
"checkOutTime": {
"type": "integer",
"maximum": 23,
"minimum": 0,
"description": "Check-out time (hour of day, 0-23)."
},
"guestAddress": {
"type": "string",
"description": "Guest street address."
},
"guestCountry": {
"type": "string",
"description": "Guest country (ISO 3166 code, e.g. US)."
},
"guestZipCode": {
"type": "string",
"description": "Guest ZIP / postal code."
},
"listingMapId": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Listing id to book.",
"exclusiveMinimum": 0
},
"departureDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Departure date (YYYY-MM-DD)."
},
"guestLastName": {
"type": "string",
"description": "Guest last name."
},
"doorCodeVendor": {
"type": "string",
"description": "Lock vendor."
},
"guestFirstName": {
"type": "string",
"description": "Guest first name."
},
"numberOfGuests": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "Total number of guests."
},
"doorCodeInstruction": {
"type": "string",
"description": "Door-code instructions."
}
}
}| listingMapId |
| integer |
| Listing id the task belongs to. |
| categoriesMap | array | Categories: 1 cleaning, 2 maintenance, 3 check-in, 4 check-out, 5 back office, 6 other. |
| reservationId | integer | Reservation id the task relates to. |
| assigneeUserId | integer | User id to assign the task to. |
| costDescription | string | Cost description. |
| supervisorUserId | integer | Supervisor user id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"title"
],
"properties": {
"cost": {
"type": "number",
"description": "Task cost."
},
"color": {
"type": "string",
"pattern": "^#[0-9a-fA-F]{6}$",
"description": "Colour in hex, e.g. #FF8800."
},
"title": {
"type": "string",
"minLength": 1,
"description": "Task title."
},
"status": {
"enum": [
"pending",
"confirmed",
"inProgress",
"completed",
"cancelled"
],
"type": "string",
"description": "pending, confirmed, inProgress, completed or cancelled."
},
"priority": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Priority."
},
"description": {
"type": "string",
"description": "Task description."
},
"shouldEndBy": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}( \\d{2}:\\d{2}(:\\d{2})?)?$",
"description": "Deadline (\"YYYY-MM-DD HH:MM:SS\", UTC)."
},
"canStartFrom": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}( \\d{2}:\\d{2}(:\\d{2})?)?$",
"description": "Earliest start time (\"YYYY-MM-DD HH:MM:SS\", UTC)."
},
"costCurrency": {
"type": "string",
"description": "Cost currency, e.g. USD."
},
"listingMapId": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Listing id the task belongs to.",
"exclusiveMinimum": 0
},
"categoriesMap": {
"type": "array",
"items": {
"type": "integer",
"maximum": 6,
"minimum": 1
},
"description": "Categories: 1 cleaning, 2 maintenance, 3 check-in, 4 check-out, 5 back office, 6 other."
},
"reservationId": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Reservation id the task relates to.",
"exclusiveMinimum": 0
},
"assigneeUserId": {
"type": "integer",
"maximum": 9007199254740991,
"description": "User id to assign the task to.",
"exclusiveMinimum": 0
},
"costDescription": {
"type": "string",
"description": "Cost description."
},
"supervisorUserId": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Supervisor user id.",
"exclusiveMinimum": 0
}
}
}| availabilityDateEnd |
| string |
| Only listings available until (YYYY-MM-DD). |
| availabilityDateStart | string | Only listings available from (YYYY-MM-DD). |
| availabilityGuestNumber | integer | Only listings that fit this many guests. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"city": {
"type": "string",
"description": "City."
},
"limit": {
"type": "integer",
"maximum": 500,
"minimum": 1,
"description": "Maximum records to return (1-500)."
},
"match": {
"type": "string",
"description": "Search by listing name."
},
"offset": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Records to skip from the start."
},
"country": {
"type": "string",
"description": "Country."
},
"sortOrder": {
"enum": [
"name",
"nameReversed",
"order",
"orderReversed",
"contactName",
"contactNameReversed",
"latestActivity",
"latestActivityDesc"
],
"type": "string",
"description": "Sort order."
},
"specialStatus": {
"type": "array",
"items": {
"enum": [
"active",
"archived"
],
"type": "string"
},
"description": "Filter by status; omit for both active and archived."
},
"propertyTypeId": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Property type id."
},
"includeResources": {
"type": "boolean",
"description": "Include attached sub-resources (sent as includeResources=1)."
},
"availabilityDateEnd": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Only listings available until (YYYY-MM-DD)."
},
"availabilityDateStart": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Only listings available from (YYYY-MM-DD)."
},
"availabilityGuestNumber": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "Only listings that fit this many guests."
}
}
}| isStarred | boolean | Only starred. |
| listingId | integer | Only reservations for this listing. |
| sortOrder | string | Sort order. |
| startDate | string | Lower bound for dateType (YYYY-MM-DD). |
| guestEmail | string | Filter by guest email. |
| isArchived | boolean | Archived or not. |
| arrivalEndDate | string | Arrival on or before (YYYY-MM-DD). |
| assigneeUserId | integer | Only reservations assigned to this user. |
| arrivalStartDate | string | Arrival on or after (YYYY-MM-DD). |
| departureEndDate | string | Departure on or before (YYYY-MM-DD). |
| includeResources | boolean | Include attached sub-resources (sent as includeResources=1). |
| latestActivityEnd | string | Latest activity on or before (YYYY-MM-DD). |
| departureStartDate | string | Departure on or after (YYYY-MM-DD). |
| latestActivityStart | string | Latest activity on or after (YYYY-MM-DD). |
| includeCancellationPolicy | boolean | Attach the cancellation-policy snapshot to each reservation. |
| hasUnreadConversationMessages | boolean | Only reservations with unread guest messages. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": "integer",
"maximum": 500,
"minimum": 1,
"description": "Maximum records to return (1-500)."
},
"match": {
"type": "string",
"description": "Search by guest name."
},
"offset": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Records to skip from the start."
},
"afterId": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Cursor: the id of the last reservation from the previous page (offset is then ignored).",
"exclusiveMinimum": 0
},
"endDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Upper bound for dateType (YYYY-MM-DD)."
},
"dateType": {
"enum": [
"arrival",
"departure",
"creation",
"cancellation"
],
"type": "string",
"description": "Which date startDate/endDate bound (only on accounts with the new reservations query; 'cancellation' also restricts to cancelled)."
},
"channelId": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Only this channel id."
},
"isStarred": {
"type": "boolean",
"description": "Only starred."
},
"listingId": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Only reservations for this listing.",
"exclusiveMinimum": 0
},
"sortOrder": {
"enum": [
"arrivalDate",
"arrivalDateDesc",
"lastConversationMessageSent",
"lastConversationMessageSentDesc",
"lastConversationMessageReceived",
"lastConversationMessageReceivedDesc",
"latestActivity",
"latestActivityDesc",
"updatedOn"
],
"type": "string",
"description": "Sort order."
},
"startDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Lower bound for dateType (YYYY-MM-DD)."
},
"guestEmail": {
"type": "string",
"description": "Filter by guest email."
},
"isArchived": {
"type": "boolean",
"description": "Archived or not."
},
"arrivalEndDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Arrival on or before (YYYY-MM-DD)."
},
"assigneeUserId": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Only reservations assigned to this user.",
"exclusiveMinimum": 0
},
"arrivalStartDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Arrival on or after (YYYY-MM-DD)."
},
"departureEndDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Departure on or before (YYYY-MM-DD)."
},
"includeResources": {
"type": "boolean",
"description": "Include attached sub-resources (sent as includeResources=1)."
},
"latestActivityEnd": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Latest activity on or before (YYYY-MM-DD)."
},
"departureStartDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Departure on or after (YYYY-MM-DD)."
},
"latestActivityStart": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Latest activity on or after (YYYY-MM-DD)."
},
"includeCancellationPolicy": {
"type": "boolean",
"description": "Attach the cancellation-policy snapshot to each reservation."
},
"hasUnreadConversationMessages": {
"type": "boolean",
"description": "Only reservations with unread guest messages."
}
}
}| hasHostReply |
| boolean |
| true = only replied-to reviews; false = only unanswered. |
| listingMapIds | array | Only reviews for these listing ids. |
| reservationId | integer | Hostaway reservation id. |
| submittedAtEnd | string | Submitted on or before (YYYY-MM-DD). |
| departureDateEnd | string | Reservation departure on or before (YYYY-MM-DD). |
| submittedAtStart | string | Submitted on or after (YYYY-MM-DD). |
| departureDateStart | string | Reservation departure on or after (YYYY-MM-DD). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"type": {
"enum": [
"guest-to-host",
"host-to-guest"
],
"type": "string",
"description": "Review direction."
},
"limit": {
"type": "integer",
"maximum": 500,
"minimum": 1,
"description": "Maximum records to return (1-500)."
},
"offset": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Records to skip from the start."
},
"sortBy": {
"enum": [
"id",
"rating",
"submittedAt",
"arrivalDate",
"departureDate",
"guestName",
"listingMapId",
"status"
],
"type": "string",
"description": "Sort field."
},
"statuses": {
"type": "array",
"items": {
"enum": [
"awaiting",
"pending",
"scheduled",
"submitted",
"published",
"expired"
],
"type": "string"
},
"description": "Review statuses."
},
"guestName": {
"type": "string",
"description": "Partial, case-insensitive guest-name match."
},
"ratingMax": {
"type": "number",
"maximum": 10,
"minimum": 0,
"description": "Maximum rating (0-10)."
},
"ratingMin": {
"type": "number",
"maximum": 10,
"minimum": 0,
"description": "Minimum rating (0-10)."
},
"sortOrder": {
"enum": [
"asc",
"desc"
],
"type": "string",
"description": "Sort direction (default desc)."
},
"hasHostReply": {
"type": "boolean",
"description": "true = only replied-to reviews; false = only unanswered."
},
"listingMapIds": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"description": "Only reviews for these listing ids."
},
"reservationId": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Hostaway reservation id.",
"exclusiveMinimum": 0
},
"submittedAtEnd": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Submitted on or before (YYYY-MM-DD)."
},
"departureDateEnd": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Reservation departure on or before (YYYY-MM-DD)."
},
"submittedAtStart": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Submitted on or after (YYYY-MM-DD)."
},
"departureDateStart": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Reservation departure on or after (YYYY-MM-DD)."
}
}
}| canStartFromStart |
| string |
| Start window from (YYYY-MM-DD). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": "integer",
"maximum": 500,
"minimum": 1,
"description": "Maximum records to return (1-500)."
},
"match": {
"type": "string",
"description": "Text search."
},
"offset": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Records to skip from the start."
},
"status": {
"enum": [
"pending",
"confirmed",
"inProgress",
"completed",
"cancelled"
],
"type": "string",
"description": "Task status."
},
"channelId": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Channel id."
},
"reservationId": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Only tasks for this reservation.",
"exclusiveMinimum": 0
},
"shouldEndByEnd": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Deadline until (YYYY-MM-DD)."
},
"canStartFromEnd": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Start window until (YYYY-MM-DD)."
},
"shouldEndByStart": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Deadline from (YYYY-MM-DD)."
},
"canStartFromStart": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Start window from (YYYY-MM-DD)."
}
}
}| closedOnArrival |
| boolean |
| Closed to arrival. |
| closedOnDeparture | boolean | Closed to departure. |
| desiredUnitsToSell | integer | Multi-unit listings: units to sell (0 blocks). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"listingId",
"startDate",
"endDate"
],
"properties": {
"note": {
"type": "string",
"description": "Calendar note."
},
"price": {
"type": "number",
"minimum": 0,
"description": "Nightly price."
},
"endDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Last day to change (YYYY-MM-DD)."
},
"listingId": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Listing id.",
"exclusiveMinimum": 0
},
"startDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "First day to change (YYYY-MM-DD)."
},
"isAvailable": {
"type": "boolean",
"description": "false blocks the days, true opens them (single-unit listings)."
},
"maximumStay": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Maximum nights.",
"exclusiveMinimum": 0
},
"minimumStay": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Minimum nights.",
"exclusiveMinimum": 0
},
"closedOnArrival": {
"type": "boolean",
"description": "Closed to arrival."
},
"closedOnDeparture": {
"type": "boolean",
"description": "Closed to departure."
},
"desiredUnitsToSell": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Multi-unit listings: units to sell (0 blocks)."
}
}
}| guestName |
| string |
| Guest full name. |
| guestNote | string | Note from the guest. |
| guestEmail | string | Guest email. |
| arrivalDate | string | New arrival date (YYYY-MM-DD). |
| checkInTime | integer | Check-in time (hour of day, 0-23). |
| checkOutTime | integer | Check-out time (hour of day, 0-23). |
| guestAddress | string | Guest street address. |
| guestCountry | string | Guest country (ISO 3166 code, e.g. US). |
| guestZipCode | string | Guest ZIP / postal code. |
| departureDate | string | New departure date (YYYY-MM-DD). |
| guestLastName | string | Guest last name. |
| reservationId* | integer | Hostaway reservation id. |
| doorCodeVendor | string | Lock vendor. |
| guestFirstName | string | Guest first name. |
| numberOfGuests | integer | Total number of guests. |
| doorCodeInstruction | string | Door-code instructions. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"reservationId"
],
"properties": {
"pets": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Pets."
},
"phone": {
"type": "string",
"description": "Guest phone, e.g. +15125551212."
},
"adults": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Adults."
},
"comment": {
"type": "string",
"description": "Free-text comment."
},
"infants": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Infants."
},
"children": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Children."
},
"doorCode": {
"type": "string",
"description": "Door / lock code for this stay."
},
"hostNote": {
"type": "string",
"description": "Internal host note (not shown to the guest)."
},
"guestCity": {
"type": "string",
"description": "Guest city."
},
"guestName": {
"type": "string",
"description": "Guest full name."
},
"guestNote": {
"type": "string",
"description": "Note from the guest."
},
"guestEmail": {
"type": "string",
"description": "Guest email."
},
"arrivalDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "New arrival date (YYYY-MM-DD)."
},
"checkInTime": {
"type": "integer",
"maximum": 23,
"minimum": 0,
"description": "Check-in time (hour of day, 0-23)."
},
"checkOutTime": {
"type": "integer",
"maximum": 23,
"minimum": 0,
"description": "Check-out time (hour of day, 0-23)."
},
"guestAddress": {
"type": "string",
"description": "Guest street address."
},
"guestCountry": {
"type": "string",
"description": "Guest country (ISO 3166 code, e.g. US)."
},
"guestZipCode": {
"type": "string",
"description": "Guest ZIP / postal code."
},
"departureDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "New departure date (YYYY-MM-DD)."
},
"guestLastName": {
"type": "string",
"description": "Guest last name."
},
"reservationId": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Hostaway reservation id.",
"exclusiveMinimum": 0
},
"doorCodeVendor": {
"type": "string",
"description": "Lock vendor."
},
"guestFirstName": {
"type": "string",
"description": "Guest first name."
},
"numberOfGuests": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "Total number of guests."
},
"doorCodeInstruction": {
"type": "string",
"description": "Door-code instructions."
}
}
}| string |
| Cost currency, e.g. USD. |
| listingMapId | integer | Listing id the task belongs to. |
| categoriesMap | array | Categories: 1 cleaning, 2 maintenance, 3 check-in, 4 check-out, 5 back office, 6 other. |
| reservationId | integer | Reservation id the task relates to. |
| assigneeUserId | integer | User id to assign the task to. |
| resolutionNote | string | Resolution note. |
| costDescription | string | Cost description. |
| supervisorUserId | integer | Supervisor user id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"taskId"
],
"properties": {
"cost": {
"type": "number",
"description": "Task cost."
},
"color": {
"type": "string",
"pattern": "^#[0-9a-fA-F]{6}$",
"description": "Colour in hex, e.g. #FF8800."
},
"title": {
"type": "string",
"minLength": 1,
"description": "Task title."
},
"status": {
"enum": [
"pending",
"confirmed",
"inProgress",
"completed",
"cancelled"
],
"type": "string",
"description": "pending, confirmed, inProgress, completed or cancelled."
},
"taskId": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Task id.",
"exclusiveMinimum": 0
},
"priority": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Priority."
},
"description": {
"type": "string",
"description": "Task description."
},
"shouldEndBy": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}( \\d{2}:\\d{2}(:\\d{2})?)?$",
"description": "Deadline (\"YYYY-MM-DD HH:MM:SS\", UTC)."
},
"canStartFrom": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}( \\d{2}:\\d{2}(:\\d{2})?)?$",
"description": "Earliest start time (\"YYYY-MM-DD HH:MM:SS\", UTC)."
},
"costCurrency": {
"type": "string",
"description": "Cost currency, e.g. USD."
},
"listingMapId": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Listing id the task belongs to.",
"exclusiveMinimum": 0
},
"categoriesMap": {
"type": "array",
"items": {
"type": "integer",
"maximum": 6,
"minimum": 1
},
"description": "Categories: 1 cleaning, 2 maintenance, 3 check-in, 4 check-out, 5 back office, 6 other."
},
"reservationId": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Reservation id the task relates to.",
"exclusiveMinimum": 0
},
"assigneeUserId": {
"type": "integer",
"maximum": 9007199254740991,
"description": "User id to assign the task to.",
"exclusiveMinimum": 0
},
"resolutionNote": {
"type": "string",
"description": "Resolution note."
},
"costDescription": {
"type": "string",
"description": "Cost description."
},
"supervisorUserId": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Supervisor user id.",
"exclusiveMinimum": 0
}
}
}