Aerandil developers
Build on the hotel's one model.
One typed ontology for hospitality. Objects, links and actions, modelled once, reachable over a REST API, an MCP server and generated SDKs. The desk, an integrator and an agent all write through the same door.
Your cell is an MCP server. Point any client at its endpoint and sign in with your own account. No client id, no secret, nothing to deploy. How to connect →
https://cell.yourhotel.com/mcpStart building
Section titled “Start building”- QuickstartGet a token, apply your first action, read the object it produced. A handful of requests.
- AuthenticationOAuth 2.1 client credentials, action-level scopes, least-privilege service accounts.
- Usage guidelinesIdempotency keys, versions, the error envelope, rate limits, and the four routes every action has.
- The ontology modelObjects, links and actions: the three primitives every surface is built from.
- Events and webhooksThe append-only log, the live stream, and signed deliveries to your receiver.
- Use casesKeep your PMS and connect it. Charge to the room key. An agent under an approval gate.
One model, three surfaces
Section titled “One model, three surfaces”Every surface is generated from the same contract, so a check-in is the same check-in whether the desk, an integrator or an agent asks for it.
Writes are named actions. Send the action’s parameters and an
Idempotency-Key; the engine validates, applies, and appends an event.
curl -X POST https://api.aerandil.com/v1/actions/hospitality.action.check_in/apply \ -H "Authorization: Bearer $ACCESS_TOKEN" \ -H "Idempotency-Key: $(uuidgen)" \ -H "Content-Type: application/json" \ -d '{ "target": { "object_type": "hospitality.reservation", "id": "0192f3c4-…" }, "params": { "arrival_actual": "2026-10-31T15:42:00Z" } }'Your cell is an MCP server. Every registered action is a typed tool and every object type a resource. Sign in with your own account; the client registers itself.
claude mcp add --transport http aerandil https://cell.yourhotel.com/mcp{ "mcpServers": { "aerandil": { "url": "https://cell.yourhotel.com/mcp" } } }Typed clients for Python (aerandil_client) and TypeScript
(@aerandil/client), generated from the OpenAPI document with
openapi-generator. Every write method takes the Idempotency-Key as a
parameter, so a retry policy has its hook.
import osimport aerandil_client
configuration = aerandil_client.Configuration(host="https://api.aerandil.com")configuration.access_token = os.environ["ACCESS_TOKEN"]
with aerandil_client.ApiClient(configuration) as api: bookings = aerandil_client.BookingApi(api)The same generator run against your own cell’s /v1/openapi.json gives
you a client for exactly the contract that cell serves.
OpenAPI definition
The ontology, by domain
Section titled “The ontology, by domain”42 domains, 214 object types and 451 actions, counted from the registry the kernel serves, not written by hand. Each card opens the live graph on that domain.
- BookingReservations, stays, rooms, rates and the night audit.12 types · 47 actions
- InventoryRoom types, availability, restrictions and sell limits.4 types · 10 actions
- FinanceFolios, charges, payments, deposits and invoices.21 types · 61 actions
- DistributionRate plans, channels and what each one may sell.6 types · 2 actions
- OperationsHousekeeping, work orders, assets and inspections.30 types · 60 actions
- PeopleGuests, staff, identity, consent and merges.11 types · 24 actions
- OrganizationProperties, venues, brands and management agreements.4 types · 72 actions
- RevenueOutlets, packages, groups and the channel mix.11 types · 12 actions
- Food & beverageChecks, tickets, menus and room service.16 types · 12 actions
- MembershipMembers, tiers, freezes and renewals.11 types · 11 actions
- CateringFunction spaces, the diary and banquet event orders.4 types · 12 actions
- Channel managerConnections, mapping and reservations arriving from channels.4 types · 15 actions
Reference
Section titled “Reference”- REST API referenceEvery endpoint, object type and action, one page per operation, rendered from the live contract.
- OpenAPI 3.1 definitionThe machine-readable document the reference and the SDKs are generated from. Fetch this first.
- Ontology graph, as JSONObject types, link types and cardinalities, generated from the kernel’s registry.
- llms.txtAn index of these docs for an AI agent to read before it crawls them.
Changes
Section titled “Changes”The model, the API and these docs change on a record. The changelog lists what changed and when, with the contract version it shipped in. Announcements and the thinking behind the model are on the blog.
- Introducing IthacaThe property management system — purpose-built screens for the property day, on the governed ontology.
- Intelligence as a citizenAerandil gives AI the same governed contract as every other operator — no privileged database access, no ungoverned calls.
- Model the operation onceWhy hospitality software keeps rebuilding the same hotel — and what changes when the model becomes the product.