REST API reference

Little Hotelier API

15 endpoints for Little Hotelier. Each one is a POST with a JSON body, called with your API key.

Base URL
https://cotlet.dev/api/v1/little-hotelier
Connects with
Your own Little Hotelier account (a user who can open Front Desk, Channel Manager and Insights for the tools you use)
Integration page
Little Hotelier
Little Hotelier Endpoints
Endpoint Access Description
list_reservations read Reservations with status, source, guest, occupants, dates, room, total and outstanding amount.
get_reservation read One reservation: stay, room, rate, guests, guest comments, notes, invoice and payments. No card numbers.
list_room_rates read Room types, their rooms and room rates, with which rates are derived.
get_inventory read The inventory grid for a date range: availability, rates and restrictions per room rate.
get_statistics read Statistics report: room nights, occupancy, ADR, RevPAR, length of stay, lead time and cancellations.
get_booking_performance read Revenue, reservations, room nights, ADR and cancellations, broken down by channel.
export_report read A Front Desk report for up to 365 days as rows, the same data as its CSV export.
list_conversations read Messaging hub conversations with the linked reservation, channel and last message.
create_reservation write New Front Desk reservation. No card details.
update_reservation_status write Check a guest in or out, or set a reservation back to Confirmed.
cancel_reservation write Cancel a Confirmed Front Desk reservation. Permanent; OTA bookings must be cancelled on the channel.
update_rates write Set the base rate of room rates over a date range, like Bulk Update. Goes live on your channels.
update_restrictions write Set min or max stay, closed to arrival or departure, or close channels or your website.
create_room_closure write Close rooms for a date range; availability sent to channels and the booking engine drops.
reply_to_guest write Send a reply in a Messaging hub conversation. WhatsApp free-form only within 24 hours of the guest message.

POST https://cotlet.dev/api/v1/little-hotelier/list_reservations

Searches reservations like the Reservations screen. Date type can be check-in, check-out or booked on, and status can be confirmed, checked in, checked out or cancelled. Each row has status, guest name, reference, source, occupants, dates, room, total and outstanding amount. Reservations without an assigned room show no room. Pass next_cursor back as cursor for the next page.

Parameters

Parameters: list_reservations
NameTypeDescription
date_type enum check_in, check_out or booked. Default: check_in.
from date Start of the date range.
to date End of the date range.
status enum all, confirmed, checked_in, checked_out or cancelled. Default: all.
guest_last_name string Guest last name.
reservation_id string Find one reservation by its booking reference.
limit integer 1 to 200. Default: 50.
cursor string Next page cursor.

Request

cURL
curl -X POST https://cotlet.dev/api/v1/little-hotelier/list_reservations \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"date_type":"check_in","from":"2026-10-12","to":"2026-10-13","status":"confirmed"}'
Python
result = client.call("little-hotelier", "list_reservations", {"date_type":"check_in","from":"2026-10-12","to":"2026-10-13","status":"confirmed"})
Node.js
const result = await cotlet.call('little-hotelier', 'list_reservations', {"date_type":"check_in","from":"2026-10-12","to":"2026-10-13","status":"confirmed"});
CLI
cotlet call little-hotelier list_reservations --data '{"date_type":"check_in","from":"2026-10-12","to":"2026-10-13","status":"confirmed"}'

Example response

{
  "reservations": [
    {
      "reservation_id": "LH48213",
      "status": "confirmed",
      "guest": "Marta Kowal",
      "source": "Booking.com",
      "occupants": "2 adults",
      "check_in": "2026-10-12",
      "check_out": "2026-10-14",
      "booked": "2026-09-02",
      "room": "Double 3",
      "total": "240.00",
      "outstanding": "240.00",
      "currency": "EUR"
    },
    {
      "reservation_id": "LH48230",
      "status": "confirmed",
      "guest": "Liam Byrne",
      "source": "Direct Booking",
      "occupants": "1 adult",
      "check_in": "2026-10-12",
      "check_out": "2026-10-13",
      "booked": "2026-10-05",
      "room": null,
      "total": "95.00",
      "outstanding": "0.00",
      "currency": "EUR"
    }
  ],
  "next_cursor": null
}

POST https://cotlet.dev/api/v1/little-hotelier/get_reservation

Returns one reservation with stay dates, room and rate, occupants, guest comments, internal notes, invoice lines and recorded payments. Card numbers are never returned. Use it after list_reservations when you need the detail behind one outstanding amount.

Parameters

Parameters: get_reservation
NameTypeDescription
reservation_id required string Reservation ID from list_reservations, e.g. LH12345.

Request

cURL
curl -X POST https://cotlet.dev/api/v1/little-hotelier/get_reservation \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"reservation_id":"reservation_8c41d2"}'
Python
result = client.call("little-hotelier", "get_reservation", {"reservation_id":"reservation_8c41d2"})
Node.js
const result = await cotlet.call('little-hotelier', 'get_reservation', {"reservation_id":"reservation_8c41d2"});
CLI
cotlet call little-hotelier get_reservation --data '{"reservation_id":"reservation_8c41d2"}'

Example response

{
  "reservation_id": "LH48213",
  "status": "confirmed",
  "source": "Booking.com",
  "guest": {
    "name": "Marta Kowal",
    "email": "marta@example.com",
    "arrival_time": "18:00"
  },
  "stay": {
    "check_in": "2026-10-12",
    "check_out": "2026-10-14",
    "nights": 2,
    "adults": 2,
    "children": 0
  },
  "room": "Double 3",
  "room_rate": "Double Room, Standard Rate",
  "guest_comments": "Late arrival, around 18:00.",
  "notes": [],
  "invoice": {
    "lines": [
      {
        "description": "Double Room, 2 nights",
        "amount": "240.00"
      }
    ],
    "total": "240.00",
    "paid": "0.00",
    "outstanding": "240.00",
    "currency": "EUR"
  },
  "payments": []
}

POST https://cotlet.dev/api/v1/little-hotelier/list_room_rates

Returns your room types with their rooms and room rates. Each rate says whether it is derived from another rate, because derived rates cannot be edited directly. Use the IDs it returns in get_inventory, update_rates, update_restrictions and create_room_closure.

Parameters

No parameters.

Request

cURL
curl -X POST https://cotlet.dev/api/v1/little-hotelier/list_room_rates \
  -H "Authorization: Bearer $COTLET_API_KEY"
Python
result = client.call("little-hotelier", "list_room_rates")
Node.js
const result = await cotlet.call('little-hotelier', 'list_room_rates');
CLI
cotlet call little-hotelier list_room_rates

Example response

{
  "room_types": [
    {
      "room_type": "Double Room",
      "rooms": [
        {
          "room_id": "rm_3",
          "name": "Double 3"
        },
        {
          "room_id": "rm_4",
          "name": "Double 4"
        }
      ],
      "room_rates": [
        {
          "room_rate_id": "rr_20417",
          "name": "Standard Rate",
          "derived_from": null
        },
        {
          "room_rate_id": "rr_20418",
          "name": "Non-refundable",
          "derived_from": "rr_20417"
        }
      ]
    }
  ]
}

POST https://cotlet.dev/api/v1/little-hotelier/get_inventory

Returns the inventory grid for a date range: availability, rate, min and max stay, CTA, CTD and whether channels are closed, one row per room rate and date. Availability is calculated by Little Hotelier from your rooms, bookings and closures. Read it before update_rates to see what will change.

Parameters

Parameters: get_inventory
NameTypeDescription
from required date First date of the range.
to required date Last date of the range, inclusive.
room_rate_ids string[] Only these room rates. Default: all.

Request

cURL
curl -X POST https://cotlet.dev/api/v1/little-hotelier/get_inventory \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"from":"2026-10-01","to":"2026-10-01"}'
Python
result = client.call("little-hotelier", "get_inventory", {"from":"2026-10-01","to":"2026-10-01"})
Node.js
const result = await cotlet.call('little-hotelier', 'get_inventory', {"from":"2026-10-01","to":"2026-10-01"});
CLI
cotlet call little-hotelier get_inventory --data '{"from":"2026-10-01","to":"2026-10-01"}'

Example response

{
  "room_rates": [
    {
      "room_rate_id": "rr_20417",
      "name": "Double Room, Standard Rate",
      "days": [
        {
          "date": "2026-12-04",
          "available": 2,
          "rate": "120.00",
          "min_stay": 1,
          "max_stay": null,
          "cta": false,
          "ctd": false,
          "channels_closed": false
        },
        {
          "date": "2026-12-05",
          "available": 1,
          "rate": "120.00",
          "min_stay": 1,
          "max_stay": null,
          "cta": false,
          "ctd": false,
          "channels_closed": false
        }
      ]
    }
  ],
  "currency": "EUR"
}

POST https://cotlet.dev/api/v1/little-hotelier/get_statistics

Runs the Front Desk Statistics report for a date range. It returns total, closed, occupied and unoccupied room nights, occupancy, length of stay, lead time, average revenue per booking, ADR, RevPAR and the value of cancelled reservations. Occupancy, RevPAR and the room night counts exist only when searching by stay date. Closed room nights are taken out of the occupancy base.

Parameters

Parameters: get_statistics
NameTypeDescription
from required date First date of the range.
to required date Last date of the range, inclusive.
search_by enum stay_date or booked_on. Default: stay_date.
include_tax boolean Include tax from taxable service charges in revenue. Default: false.

Request

cURL
curl -X POST https://cotlet.dev/api/v1/little-hotelier/get_statistics \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"from":"2026-10-01","to":"2026-10-01"}'
Python
result = client.call("little-hotelier", "get_statistics", {"from":"2026-10-01","to":"2026-10-01"})
Node.js
const result = await cotlet.call('little-hotelier', 'get_statistics', {"from":"2026-10-01","to":"2026-10-01"});
CLI
cotlet call little-hotelier get_statistics --data '{"from":"2026-10-01","to":"2026-10-01"}'

Example response

{
  "from": "2026-09-01",
  "to": "2026-09-30",
  "search_by": "stay_date",
  "include_tax": false,
  "currency": "EUR",
  "total_room_nights": 240,
  "closed_room_nights": 7,
  "occupied_room_nights": 160,
  "unoccupied_room_nights": 73,
  "occupancy_pct": 68.7,
  "length_of_stay": 2.5,
  "lead_time_days": 21,
  "average_revenue_per_booking": "275.00",
  "adr": "110.00",
  "revpar": "75.54",
  "cancelled_value": "420.00"
}

POST https://cotlet.dev/api/v1/little-hotelier/get_booking_performance

Reads the Insights Booking performance report. It returns reservations after cancellations, room nights, ADR, average length of stay, lead time and cancelled reservations, with room revenue and room nights per channel, including your booking engine. Some channels record no revenue on a reservation: those count toward room nights but not ADR. Multi-currency bookings are converted to your default currency.

Parameters

Parameters: get_booking_performance
NameTypeDescription
from required date First date of the range.
to required date Last date of the range, inclusive.
date_basis enum booked_on or stay_date. Default: booked_on.

Request

cURL
curl -X POST https://cotlet.dev/api/v1/little-hotelier/get_booking_performance \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"from":"2026-10-01","to":"2026-10-01"}'
Python
result = client.call("little-hotelier", "get_booking_performance", {"from":"2026-10-01","to":"2026-10-01"})
Node.js
const result = await cotlet.call('little-hotelier', 'get_booking_performance', {"from":"2026-10-01","to":"2026-10-01"});
CLI
cotlet call little-hotelier get_booking_performance --data '{"from":"2026-10-01","to":"2026-10-01"}'

Example response

{
  "from": "2026-09-01",
  "to": "2026-09-30",
  "date_basis": "booked_on",
  "currency": "EUR",
  "reservations": 64,
  "room_nights": 160,
  "adr": "110.00",
  "avg_length_of_stay": 2.5,
  "avg_lead_time_days": 21,
  "cancelled_reservations": 3,
  "channels": [
    {
      "channel": "Booking.com",
      "reservations": 32,
      "room_nights": 80,
      "room_revenue": "8800.00"
    },
    {
      "channel": "Direct Booking",
      "reservations": 19,
      "room_nights": 48,
      "room_revenue": "5280.00"
    },
    {
      "channel": "Airbnb",
      "reservations": 13,
      "room_nights": 32,
      "room_revenue": "3520.00"
    }
  ]
}

POST https://cotlet.dev/api/v1/little-hotelier/export_report

Returns a Front Desk report as rows, the same data as the report's CSV export. A single report cannot span more than 365 days. Use get_statistics for the Statistics report.

Parameters

Parameters: export_report
NameTypeDescription
report required enum check_in, payments, extras, housekeeping, daily_transactions or guests.
from required date First date of the range.
to required date Last date of the range, inclusive.

Request

cURL
curl -X POST https://cotlet.dev/api/v1/little-hotelier/export_report \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"report":"check_in","from":"2026-10-01","to":"2026-10-01"}'
Python
result = client.call("little-hotelier", "export_report", {"report":"check_in","from":"2026-10-01","to":"2026-10-01"})
Node.js
const result = await cotlet.call('little-hotelier', 'export_report', {"report":"check_in","from":"2026-10-01","to":"2026-10-01"});
CLI
cotlet call little-hotelier export_report --data '{"report":"check_in","from":"2026-10-01","to":"2026-10-01"}'

Example response

{
  "report": "daily_transactions",
  "from": "2026-10-01",
  "to": "2026-10-07",
  "currency": "EUR",
  "rows": [
    {
      "date": "2026-10-05",
      "reservation_id": "LH48230",
      "description": "Deposit",
      "amount": "30.00"
    },
    {
      "date": "2026-10-06",
      "reservation_id": "LH48199",
      "description": "Breakfast extra",
      "amount": "18.00"
    }
  ]
}

POST https://cotlet.dev/api/v1/little-hotelier/list_conversations

Lists Messaging hub conversations, with the guest, the linked reservation, the channel and the last message. WhatsApp, Airbnb and Booking.com conversations are listed. Each row says whether a free-form reply is possible now: WhatsApp allows it within 24 hours of the guest's last message.

Parameters

Parameters: list_conversations
NameTypeDescription
channel enum whatsapp, airbnb or booking_com. Default: all.
limit integer 1 to 100. Default: 20.

Request

cURL
curl -X POST https://cotlet.dev/api/v1/little-hotelier/list_conversations \
  -H "Authorization: Bearer $COTLET_API_KEY"
Python
result = client.call("little-hotelier", "list_conversations")
Node.js
const result = await cotlet.call('little-hotelier', 'list_conversations');
CLI
cotlet call little-hotelier list_conversations

Example response

{
  "conversations": [
    {
      "conversation_id": "cv_5521",
      "channel": "whatsapp",
      "guest": "Marta Kowal",
      "reservation_id": "LH48213",
      "last_message": "Can we check in late, around 21:30?",
      "last_message_at": "2026-10-11T08:12:00Z",
      "free_form_reply_open": true
    }
  ]
}

Create reservation

write Confirm

POST https://cotlet.dev/api/v1/little-hotelier/create_reservation

Creates a Front Desk reservation with a booking reference starting with LH. It holds the room and updates availability on your connected channels. Without room_id the booking is unallocated but still reduces availability. Little Hotelier does not email a confirmation for manual reservations, and neither does this tool. Card details are not accepted. By default you confirm each call; you can switch that off for this tool.

Parameters

Parameters: create_reservation
NameTypeDescription
check_in required date Arrival date.
check_out required date Departure date.
room_rate_id required string Room rate ID from list_room_rates.
guest required object first_name, last_name, and optional email, phone, arrival_time.
adults required integer Number of adults.
children integer Number of children. Default: 0.
room_id string Assign a specific room. Default: unallocated.
guest_comments string Guest requests, shown on the confirmation email.

Request

cURL
curl -X POST https://cotlet.dev/api/v1/little-hotelier/create_reservation \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"check_in":"2026-10-01","check_out":"2026-10-01","room_rate_id":"room_rate_8c41d2","guest":"guest","adults":1}'
Python
result = client.call("little-hotelier", "create_reservation", {"check_in":"2026-10-01","check_out":"2026-10-01","room_rate_id":"room_rate_8c41d2","guest":"guest","adults":1})
Node.js
const result = await cotlet.call('little-hotelier', 'create_reservation', {"check_in":"2026-10-01","check_out":"2026-10-01","room_rate_id":"room_rate_8c41d2","guest":"guest","adults":1});
CLI
cotlet call little-hotelier create_reservation --data '{"check_in":"2026-10-01","check_out":"2026-10-01","room_rate_id":"room_rate_8c41d2","guest":"guest","adults":1}'

Example response

{
  "reservation_id": "LH48311",
  "status": "confirmed",
  "room": null,
  "check_in": "2026-11-20",
  "check_out": "2026-11-22",
  "total": "240.00",
  "currency": "EUR"
}

POST https://cotlet.dev/api/v1/little-hotelier/update_reservation_status

Sets a reservation to confirmed, checked_in or checked_out, like the status drop-down on the reservation. Checking out marks the room as needing cleaning and bookable again. It reaches no guest and one more call sets the status back, so it runs without asking first. Each reservation is changed on its own.

Parameters

Parameters: update_reservation_status
NameTypeDescription
reservation_id required string Reservation ID from list_reservations, e.g. LH12345.
status required enum confirmed, checked_in or checked_out.

Request

cURL
curl -X POST https://cotlet.dev/api/v1/little-hotelier/update_reservation_status \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"reservation_id":"reservation_8c41d2","status":"confirmed"}'
Python
result = client.call("little-hotelier", "update_reservation_status", {"reservation_id":"reservation_8c41d2","status":"confirmed"})
Node.js
const result = await cotlet.call('little-hotelier', 'update_reservation_status', {"reservation_id":"reservation_8c41d2","status":"confirmed"});
CLI
cotlet call little-hotelier update_reservation_status --data '{"reservation_id":"reservation_8c41d2","status":"confirmed"}'

Example response

{
  "reservation_id": "LH48213",
  "status": "checked_in"
}

Cancel reservation

write Confirm

POST https://cotlet.dev/api/v1/little-hotelier/cancel_reservation

Cancels one Confirmed reservation created in Front Desk. Channel (OTA) reservations are cancelled by the guest on the channel, and Direct Booking reservations under Direct Booking, so the call fails for them. Checked-in and checked-out reservations need their status changed first. A cancellation is permanent. The room becomes available and cancelled reservations stay in the Reservations list. Check your cancellation policy for penalties first. By default you confirm each call; you can switch that off for this tool.

Parameters

Parameters: cancel_reservation
NameTypeDescription
reservation_id required string Reservation ID from list_reservations, e.g. LH12345.

Request

cURL
curl -X POST https://cotlet.dev/api/v1/little-hotelier/cancel_reservation \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"reservation_id":"reservation_8c41d2"}'
Python
result = client.call("little-hotelier", "cancel_reservation", {"reservation_id":"reservation_8c41d2"})
Node.js
const result = await cotlet.call('little-hotelier', 'cancel_reservation', {"reservation_id":"reservation_8c41d2"});
CLI
cotlet call little-hotelier cancel_reservation --data '{"reservation_id":"reservation_8c41d2"}'

Example response

{
  "reservation_id": "LH48311",
  "status": "cancelled"
}

Update rates

write Confirm

POST https://cotlet.dev/api/v1/little-hotelier/update_rates

Sets the base rate of one or more room rates over a date range, optionally on chosen weekdays, like Bulk Update in the inventory grid. Derived rates cannot be edited and come back in skipped. A rate below the property minimum does not save. Channels receive the change within their update period. By default you confirm each call; you can switch that off for this tool.

Parameters

Parameters: update_rates
NameTypeDescription
room_rate_ids required string[] Room rate IDs from list_room_rates.
from required date First date of the range.
to required date Last date of the range, inclusive.
rate required string New nightly rate, as a decimal in the property currency.
days_of_week string[] Only these weekdays (mon to sun). Default: all days.

Request

cURL
curl -X POST https://cotlet.dev/api/v1/little-hotelier/update_rates \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"room_rate_ids":["rr_20417"],"from":"2026-12-01","to":"2026-12-31","rate":"140.00","days_of_week":["fri","sat"]}'
Python
result = client.call("little-hotelier", "update_rates", {"room_rate_ids":["rr_20417"],"from":"2026-12-01","to":"2026-12-31","rate":"140.00","days_of_week":["fri","sat"]})
Node.js
const result = await cotlet.call('little-hotelier', 'update_rates', {"room_rate_ids":["rr_20417"],"from":"2026-12-01","to":"2026-12-31","rate":"140.00","days_of_week":["fri","sat"]});
CLI
cotlet call little-hotelier update_rates --data '{"room_rate_ids":["rr_20417"],"from":"2026-12-01","to":"2026-12-31","rate":"140.00","days_of_week":["fri","sat"]}'

Example response

{
  "status": "updated",
  "room_rates": 1,
  "dates": 8,
  "rate": "140.00",
  "currency": "EUR",
  "skipped": []
}

Update restrictions

write Confirm

POST https://cotlet.dev/api/v1/little-hotelier/update_restrictions

Sets min_stay, max_stay, cta, ctd, close_channels and close_website for room rates over a date range, like Bulk Update. close_channels stops sales on all connected channels and your booking engine but leaves room availability unchanged. A channel that does not support a restriction ignores it. By default you confirm each call; you can switch that off for this tool.

Parameters

Parameters: update_restrictions
NameTypeDescription
room_rate_ids required string[] Room rate IDs from list_room_rates.
from required date First date of the range.
to required date Last date of the range, inclusive.
restrictions required object Any of min_stay, max_stay (integer), cta, ctd, close_channels, close_website (boolean).
days_of_week string[] Only these weekdays (mon to sun). Default: all days.

Request

cURL
curl -X POST https://cotlet.dev/api/v1/little-hotelier/update_restrictions \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"room_rate_ids":["rr_20417"],"from":"2026-12-30","to":"2026-12-31","restrictions":{"min_stay":2}}'
Python
result = client.call("little-hotelier", "update_restrictions", {"room_rate_ids":["rr_20417"],"from":"2026-12-30","to":"2026-12-31","restrictions":{"min_stay":2}})
Node.js
const result = await cotlet.call('little-hotelier', 'update_restrictions', {"room_rate_ids":["rr_20417"],"from":"2026-12-30","to":"2026-12-31","restrictions":{"min_stay":2}});
CLI
cotlet call little-hotelier update_restrictions --data '{"room_rate_ids":["rr_20417"],"from":"2026-12-30","to":"2026-12-31","restrictions":{"min_stay":2}}'

Example response

{
  "status": "updated",
  "room_rates": 1,
  "dates": 4,
  "restrictions": {
    "min_stay": 2
  },
  "skipped": []
}

Create room closure

write Confirm

POST https://cotlet.dev/api/v1/little-hotelier/create_room_closure

Closes rooms or whole room types for a date range, like Room Closure on the Front Desk Calendar. The end date is included. Availability sent to channels and your booking engine drops, and the room shows in red on the Calendar. A closure is not a stop sell. It does not move guests who already booked those dates. By default you confirm each call; you can switch that off for this tool.

Parameters

Parameters: create_room_closure
NameTypeDescription
room_ids required string[] Room IDs from list_room_rates.
from required date First date of the range.
to required date Last date of the range, inclusive.
description string Reason, e.g. renovation.

Request

cURL
curl -X POST https://cotlet.dev/api/v1/little-hotelier/create_room_closure \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"room_ids":["room ids"],"from":"2026-10-01","to":"2026-10-01"}'
Python
result = client.call("little-hotelier", "create_room_closure", {"room_ids":["room ids"],"from":"2026-10-01","to":"2026-10-01"})
Node.js
const result = await cotlet.call('little-hotelier', 'create_room_closure', {"room_ids":["room ids"],"from":"2026-10-01","to":"2026-10-01"});
CLI
cotlet call little-hotelier create_room_closure --data '{"room_ids":["room ids"],"from":"2026-10-01","to":"2026-10-01"}'

Example response

{
  "closure_id": "cl_7731",
  "status": "closed",
  "room_ids": [
    "rm_4"
  ],
  "from": "2026-10-12",
  "to": "2026-10-18",
  "nights": 7,
  "description": "Leak repair"
}

Reply to guest

write Confirm

POST https://cotlet.dev/api/v1/little-hotelier/reply_to_guest

Sends a reply in a WhatsApp or Airbnb conversation in the Messaging hub, under your property. WhatsApp free-form replies work within 24 hours of the guest's last message; later, Little Hotelier requires a template. Airbnb free-form replies work only after a scheduled message went out and the guest replied. By default you confirm each call; you can switch that off for this tool.

Parameters

Parameters: reply_to_guest
NameTypeDescription
conversation_id required string Conversation ID from list_conversations.
body required string Message text.

Request

cURL
curl -X POST https://cotlet.dev/api/v1/little-hotelier/reply_to_guest \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"conversation_id":"cv_5521","body":"Yes, late check-in at 21:30 is fine. Reception is open until 22:00."}'
Python
result = client.call("little-hotelier", "reply_to_guest", {"conversation_id":"cv_5521","body":"Yes, late check-in at 21:30 is fine. Reception is open until 22:00."})
Node.js
const result = await cotlet.call('little-hotelier', 'reply_to_guest', {"conversation_id":"cv_5521","body":"Yes, late check-in at 21:30 is fine. Reception is open until 22:00."});
CLI
cotlet call little-hotelier reply_to_guest --data '{"conversation_id":"cv_5521","body":"Yes, late check-in at 21:30 is fine. Reception is open until 22:00."}'

Example response

{
  "conversation_id": "cv_5521",
  "message_id": "msg_90417",
  "status": "sent",
  "channel": "whatsapp"
}