Apaleo for AI agents

Apaleo is a cloud property management system for hotels and hospitality businesses, handling reservations, units, and daily operations through an open API built for the industry. Connect it once through Arc0, and your agent, or Claude, ChatGPT and Cursor, can use it through one MCP endpoint, limited to what each user approved.

SchedulingOAuth 2.0MCP + RESTapaleo.com
AUDIT LOG · APALEOPOLICY: acme-support
09:41:07 · claude · u_8f2read
apaleo.list_unit_groups
List Unit Groups✓ allowed · 212ms
09:41:08 · claude · u_8f2read
apaleo.get_a_unit
Get a unit✓ allowed · 164ms
09:41:09 · claude · u_8f2write
apaleo.create_a_unit
Create a unit✓ approved · approved by user
09:41:12 · claude · u_8f2destructive
apaleo.delete_a_unit
Delete a unit✕ blocked · policy: deny
EVERY APALEO CALL, ON THE RECORD
01 · USE CASES

What agents do in Apaleo.

01

Check unit availability at a property

List units and unit groups to see what inventory is available at a property.

02

Add a new unit or unit group

Create a unit at a property when new room inventory comes online.

03

Confirm before archiving a property

Archiving a property changes its live status and should be confirmed before it happens.

02 · ACTIONS

29 Apaleo actions, graded by risk.

Every Apaleo action is tagged read, write or destructive, so one policy covers the whole app and new actions inherit the right default.

read

12

Look things up. Allowed by default.

  • apaleo.get_a_unit
    Get a unit
  • apaleo.get_a_property
    Get a property
  • apaleo.get_a_unit_group
    Get a unit group
  • apaleo.get_a_units_list
    Get a units list
  • apaleo.list_unit_groups
    List Unit Groups
  • apaleo.get_a_properties_list
    Get a properties list
  • apaleo.get_unit_attribute_list
    Get unit attribute list
  • apaleo.get_unit_attribute_by_id
    Get unit attribute by id
  • apaleo.check_if_a_unit_exists
    Check if a unit exists
  • apaleo.check_if_a_property_exists
    Check if a property exists
  • apaleo.check_if_a_unit_group_exists
    Check if a unit group exists
  • apaleo.check_if_a_unit_attribute_exists
    Check if a unit attribute exists

write

13

Create and change things. Allow, or ask the user first.

  • apaleo.create_a_unit
    Create a unit
  • apaleo.create_a_unit_group
    Create a unit group
  • apaleo.create_multiple_units
    Create multiple units
  • apaleo.create_a_unit_attribute
    Create a unit attribute
  • apaleo.clones_a_property
    Clones a property
  • apaleo.creates_a_property
    Creates a property
  • apaleo.replace_a_unit_group
    Replace a unit group
  • apaleo.move_property_to_live
    Move property to live
  • apaleo.deletes_unit_attribute
    Deletes unit attribute
  • apaleo.returns_number_of_units
    Returns number of units
  • apaleo.returns_number_of_unit_groups
    Returns number of unit groups
  • apaleo.return_total_count_of_properties
    Return total count of properties
  • apaleo.returns_a_list_of_supported_countries
    Returns a list of supported countries

destructive

4

Delete, cancel or archive. Ask first, or deny outright.

  • apaleo.delete_a_unit
    Delete a unit
  • apaleo.archive_a_property
    Archive a property
  • apaleo.delete_a_unit_group
    Delete a unit group
  • apaleo.reset_property_data
    Reset Property Data
03 · HOW IT WORKS

Apaleo in three steps.

  1. 01Your users connect ApaleoThey sign in to Apaleo on Arc0 Connect, under your brand, and approve the access you ask for.
  2. 02You set the rulesReads run, writes like “create a unit” can wait for the user, and “delete a unit” can be denied outright.
  3. 03Any agent can actYour agent calls Apaleo through the Arc0 SDK or MCP, and so can Claude, ChatGPT and Cursor. Every call lands on the audit log.
POLICY.TS
await arc0.policies.set('apaleo', {
  read: 'allow',
  write: 'ask',        // create_a_unit
  destructive: 'deny',  // delete_a_unit
})

# Claude Code: the same connection, one URL
$ claude mcp add --transport http arc0 \
    https://mcp.arc0.ai/u/u_8f2
04 · AUTH AND DATA

How Apaleo connects.

Users sign in to Apaleo on Arc0 Connect and approve the scopes you request. Build with Arc0’s Apaleo OAuth app, or bring your own so the Apaleo consent screen names you. Tokens refresh automatically, and you can export them whenever you want.

The same Apaleo connection serves your agent over MCP and your own backend over REST and the proxy, so a user connects once. How Arc0 handles credentials →

AUTH
OAuth 2.0
CREDENTIALS
Per-tenant encrypted vault
MODEL SEES
Results only, never credentials
AUDIT LOG
Every call, on every plan
05 · WORKS WITH

Use Apaleo from any agent.

Claude
ChatGPT
Cursor
Codex
VS Code
OpenAI Agents SDK
Claude Agent SDK
Vercel AI SDK
Mastra
LangGraph
07 · FAQ

Apaleo and Arc0, answered.

Q01

Can I use Apaleo with Claude, ChatGPT or Cursor?

Yes. Connect Apaleo to Arc0 once, then add your Arc0 MCP URL to Claude, ChatGPT, Cursor, Claude Code or any other remote-MCP client. Each assistant only gets the Apaleo actions you allow.

Q02

How do users connect Apaleo?

Users sign in to Apaleo on Arc0 Connect and approve the scopes you request. Build with Arc0’s Apaleo OAuth app, or bring your own so the Apaleo consent screen names you. Tokens refresh automatically, and you can export them whenever you want.

Q03

Which Apaleo actions can my agent take?

29 in total: 12 read, 13 write and 4 destructive, such as “create a unit”. Your policies decide which of them each agent may call.

Q04

Can I stop my agent from deleting things in Apaleo?

Yes. Actions like “delete a unit” are graded destructive. Set destructive actions to deny, or to ask so the user approves each one, and blocked calls still show up on the audit log.

Q05

Can my own backend call Apaleo too?

Yes. The same Apaleo connection is available over REST and through the Arc0 proxy, so your product and your agent share one connection per user.

Get started

Plug Apaleo into your agent.

Your users connect Apaleo once, under your brand. Your agent gets 29 actions behind your policies, with every call on the record.

Free to build · MCP + REST · Audit log on every plan