Build custom integrations, automate front-desk workflows, and deploy AI agents with Areca's REST API, real-time webhooks, and native MCP server.
One bearer token, one request, predictable JSON. Fetch availability and rates per room type for any date range, then create the reservation with a single POST to the same resource.
See every endpoint in the OpenAPI referencecurl "https://api.arecabooking.com/properties/$PROPERTY_ID/availability?startDate=2026-10-01&days=7" \
-H "Authorization: Bearer $ARECA_API_KEY"Request data when you need it, get notified the moment it changes, or hand it to an AI agent. All three share the same permissions and the same source of truth.
Open REST endpoints with predictable JSON, bearer token authentication, and transparent rate limits. Complete coverage of reservations, inventory, rates, guests, folios, and housekeeping.
API referenceEvent-driven architecture with HMAC-signed payloads. Trigger workflows instantly on events like booking.created, checkin.completed, payment.logged, or room.status_changed.
See a payloadA built-in Model Context Protocol server lets LLMs and AI workflows inspect property context, manage reservations, and execute actions with granular permission scopes.
How it worksMost PMS vendors bolt an API onto a closed product and charge extra for it. Areca was designed the other way around.
The Areca dashboard is built on the very same endpoints you call. If a feature exists in the UI, it exists in the API, with the same data, the same validation, and the same speed.
API access is not an enterprise add-on. Reservations, inventory, rates, guests, and folios are open from day one, on every plan, so your data always stays yours.
Webhooks push every change the moment it happens. Keep smart locks, messaging apps, and accounting tools in sync without burning requests on polling loops.
A native MCP server lets Claude, custom LLM tools, and internal bots read live availability, look up guest folios, and run check-ins, all within the permissions you grant.
Subscribe to the events you care about and Areca delivers a signed JSON payload to your endpoint within seconds. Verify the HMAC signature, act on the event, and keep every external system perfectly in sync.
POST /webhooks/areca
X-Areca-Signature: sha256=9f2c4e...
{
"type": "checkin.completed",
"createdAt": "2026-10-01T14:02:11Z",
"propertyId": "7c1e9a52-...",
"data": {
"bookingId": "b4d0f3e1-...",
"room": "204",
"checkOut": "2026-10-04"
}
}Areca speaks the Model Context Protocol natively. Connect Claude, your own LLM tooling, or an internal bot and it can reason over live property data and take real actions, scoped to exactly the permissions you assign to its token.
search_availability{ "from": "2026-10-09", "nights": 2, "occupancy": 2 }A webhook and a few lines of code are all it takes to connect Areca to the hardware and tools your property already uses.
Generate a door code the moment a guest checks in and push it via webhook to Yale, Salto, or August lock bridges. Revoke it automatically at checkout.
// Fires the moment the front desk checks a guest in
app.post("/webhooks/areca", async (req, res) => {
const { type, data } = verifyArecaSignature(req);
if (type === "checkin.completed") {
const code = await salto.createAccessCode({
room: data.room,
validUntil: data.checkOut,
});
await sms.send(data.guest.phone, `Your door code: ${code}`);
}
res.sendStatus(200);
});// Fires the moment the front desk checks a guest in
app.post("/webhooks/areca", async (req, res) => {
const { type, data } = verifyArecaSignature(req);
if (type === "checkin.completed") {
const code = await salto.createAccessCode({
room: data.room,
validUntil: data.checkOut,
});
await sms.send(data.guest.phone, `Your door code: ${code}`);
}
res.sendStatus(200);
});Explore the API reference today, or tell us what you are building and we will help you ship it.
Launching soon! Join the waitlist for exclusive early-bird pricing.