# Apaleo

```json
{
  "name": "Apaleo",
  "slug": "apaleo",
  "url": "https://composio.dev/toolkits/apaleo",
  "markdown_url": "https://composio.dev/toolkits/apaleo.md",
  "logo_url": "https://logos.composio.dev/api/apaleo",
  "categories": [
    "scheduling & booking"
  ],
  "is_composio_managed": false,
  "updated_at": "2026-05-12T10:01:18.549Z"
}
```

![Apaleo logo](https://logos.composio.dev/api/apaleo)

## Description

Securely connect your AI agents and chatbots (Claude, ChatGPT, Cursor, etc) with Apaleo MCP or direct API to manage reservations, update guest billing, automate communications, and streamline daily hotel operations through natural language.

## Summary

Apaleo is a cloud-based property management platform for hospitality businesses. It centralizes reservations, billing, and daily operations for smoother hotel management.

## Categories

- scheduling & booking

## Toolkit Details

- Tools: 29

## Images

- Logo: https://logos.composio.dev/api/apaleo

## Authentication

- **Oauth2**
  - Type: `oauth2`
  - Description: Oauth2 authentication for Apaleo.
  - Setup:
    - Configure Oauth2 credentials for Apaleo.
    - Use the credentials when creating an auth config in Composio.

## Suggested Prompts

- Archive a property that's no longer active
- Clone existing property for new location
- Create a new unit group for suites
- Check if a specific unit exists

## Supported Tools

| Tool slug | Name | Description |
|---|---|---|
| `APALEO_ARCHIVE_A_PROPERTY` | Archive a property | Use this endpoint to archive an existing live property This operation set the IsArchived flag to trueYou must have at least one of these scopes: 'properties.manage, setup.manage'. |
| `APALEO_CHECK_IF_A_PROPERTY_EXISTS` | Check if a property exists | Check if a property exists by id.You need to be authorized (no particular scope required) |
| `APALEO_CHECK_IF_A_UNIT_ATTRIBUTE_EXISTS` | Check if a unit attribute exists | Check if a unit attribute existsYou must have at least one of these scopes: 'unitattributes.read, setup.read, setup.manage'. |
| `APALEO_CHECK_IF_A_UNIT_EXISTS` | Check if a unit exists | Check if a unit exists by id.You must have at least one of these scopes: 'units.read, setup.read, setup.manage'. |
| `APALEO_CHECK_IF_A_UNIT_GROUP_EXISTS` | Check if a unit group exists | Check if a unit group exists by id.You must have at least one of these scopes: 'unitgroups.read, setup.read, setup.manage'. |
| `APALEO_CLONES_A_PROPERTY` | Clones a property | Use this call to clone a specific property. This operation creates a new property with inventory and rate plans from the specified property.You must have at least one of these scopes: 'properties.create, setup.manage'. |
| `APALEO_CREATE_A_UNIT` | Create a unit | Use this call to create a new unit.You must have at least one of these scopes: 'units.create, setup.manage'. |
| `APALEO_CREATE_A_UNIT_ATTRIBUTE` | Create a unit attribute | Use this call to create a new unit attribute.You must have at least one of these scopes: 'unitattributes.create, setup.manage'. |
| `APALEO_CREATE_A_UNIT_GROUP` | Create a unit group | Use this call to create a new unit group.You must have at least one of these scopes: 'unitgroups.create, setup.manage'. |
| `APALEO_CREATE_MULTIPLE_UNITS` | Create multiple units | Use this call to create multiple units, following a naming rule.You must have at least one of these scopes: 'units.create, setup.manage'. |
| `APALEO_CREATES_A_PROPERTY` | Creates a property | Use this call to create a new property.You must have at least one of these scopes: 'properties.create, setup.manage'. |
| `APALEO_DELETE_A_UNIT` | Delete a unit | Use this call to delete a unit.You must have at least one of these scopes: 'units.delete, setup.manage'. |
| `APALEO_DELETE_A_UNIT_GROUP` | Delete a unit group | Use this call to delete a unit group.You must have at least one of these scopes: 'unitgroups.delete, setup.manage'. |
| `APALEO_DELETES_UNIT_ATTRIBUTE` | Deletes unit attribute | Deletes unit attributeYou must have at least one of these scopes: 'unitattributes.delete, setup.manage'. |
| `APALEO_GET_A_PROPERTIES_LIST` | Get a properties list | Get the list of properties.You need to be authorized (no particular scope required) |
| `APALEO_GET_A_PROPERTY` | Get a property | Get a property by id.You need to be authorized (no particular scope required) |
| `APALEO_GET_A_UNIT` | Get a unit | Get a unit by id.You must have at least one of these scopes: 'units.read, setup.read, setup.manage'. |
| `APALEO_GET_A_UNIT_GROUP` | Get a unit group | Get a unit group by id.You must have at least one of these scopes: 'unitgroups.read, setup.read, setup.manage'. |
| `APALEO_GET_A_UNITS_LIST` | Get a units list | Get the list of units.You must have at least one of these scopes: 'units.read, setup.read, setup.manage'. |
| `APALEO_GET_UNIT_ATTRIBUTE_BY_ID` | Get unit attribute by id | Get unit attribute by idYou must have at least one of these scopes: 'unitattributes.read, setup.read, setup.manage'. |
| `APALEO_GET_UNIT_ATTRIBUTE_LIST` | Get unit attribute list | Get unit attribute listYou must have at least one of these scopes: 'unitattributes.read, setup.read, setup.manage'. |
| `APALEO_LIST_UNIT_GROUPS` | List Unit Groups | Get the list of unit groups.You must have at least one of these scopes: 'unitgroups.read, setup.read, setup.manage'. |
| `APALEO_MOVE_PROPERTY_TO_LIVE` | Move property to live | Use this endpoint to move an existing test property to live This operation changes the property status to 'Live'You must have at least one of these scopes: 'properties.manage, setup.manage'. |
| `APALEO_REPLACE_A_UNIT_GROUP` | Replace a unit group | Use this call to modify a unit group.You must have at least one of these scopes: 'unitgroups.manage, setup.manage'. |
| `APALEO_RESET_PROPERTY_DATA` | Reset Property Data | This endpoint deletes transactional data for a property in 'Test' status. Requires 'properties.manage' or 'setup.manage' scopes. |
| `APALEO_RETURNS_A_LIST_OF_SUPPORTED_COUNTRIES` | Returns a list of supported countries | Returns a list of ISO country codes that could be used to create properties.You need to be authorized (no particular scope required) |
| `APALEO_RETURNS_NUMBER_OF_UNIT_GROUPS` | Returns number of unit groups | Returns number of unit groups matching the filter criteriaYou must have at least one of these scopes: 'unitgroups.read, setup.read, setup.manage'. |
| `APALEO_RETURNS_NUMBER_OF_UNITS` | Returns number of units | Returns number of units matching the filter criteriaYou must have at least one of these scopes: 'units.read, setup.read, setup.manage'. |
| `APALEO_RETURN_TOTAL_COUNT_OF_PROPERTIES` | Return total count of properties | Return total count of propertiesYou need to be authorized (no particular scope required) |

## Supported Triggers

None listed.

## Installation and MCP Setup

### Path 1: SDK Installation

#### Path 1, Step 1: Install Composio

Install the Composio SDK
```python
pip install composio_openai
```

```typescript
npm install @composio/openai
```

#### Path 1, Step 2: Initialize Composio and Create Tool Router Session

Import and initialize Composio client, then create a Tool Router session
```python
from openai import OpenAI
from composio import Composio
from composio_openai import OpenAIResponsesProvider

composio = Composio(provider=OpenAIResponsesProvider())
openai = OpenAI()
session = composio.create(user_id='your-user-id')
```

```typescript
import OpenAI from 'openai';
import { Composio } from '@composio/core';
import { OpenAIResponsesProvider } from '@composio/openai';

const composio = new Composio({
  provider: new OpenAIResponsesProvider(),
});
const openai = new OpenAI({});
const session = await composio.create('your-user-id');
```

#### Path 1, Step 3: Execute Apaleo Tools via Tool Router with Your Agent

Get tools from Tool Router session and execute Apaleo actions with your Agent
```python
tools = session.tools
response = openai.responses.create(
  model='gpt-4.1',
  tools=tools,
  input=[{
    'role': 'user',
    'content': 'Create a new unit group for deluxe suites'
  }]
)
result = composio.provider.handle_tool_calls(
  response=response,
  user_id='your-user-id'
)
print(result)
```

```typescript
const tools = session.tools;
const response = await openai.responses.create({
  model: 'gpt-4.1',
  tools: tools,
  input: [{
    role: 'user',
    content: 'Create a new unit group for deluxe suites'
  }],
});
const result = await composio.provider.handleToolCalls(
  'your-user-id',
  response.output
);
console.log(result);
```

### Path 2: MCP Server Setup

#### Path 2, Step 1: Install Composio

Install the Composio SDK and Claude Agent SDK
```python
pip install composio claude-agent-sdk
```

```typescript
npm install @composio/core ai @ai-sdk/openai @ai-sdk/mcp
```

#### Path 2, Step 2: Create Tool Router Session

Initialize the Composio client and create a Tool Router session
```python
from composio import Composio
from claude_agent_sdk import ClaudeSDKClient, ClaudeAgentOptions

composio = Composio(api_key='your-composio-api-key')
session = composio.create(user_id='your-user-id')
url = session.mcp.url
```

```typescript
import { Composio } from '@composio/core';

const composio = new Composio({ apiKey: 'your-api-key' });

console.log("Creating Tool Router session...");
const { mcp } = await composio.create('your-user-id');
console.log(`Tool Router session created: ${mcp.url}`);
```

#### Path 2, Step 3: Connect to AI Agent

Use the MCP server with your AI agent
```python
import asyncio

options = ClaudeAgentOptions(
    permission_mode='bypassPermissions',
    mcp_servers={
        'tool_router': {
            'type': 'http',
            'url': url,
            'headers': {
                'x-api-key': 'your-composio-api-key'
            }
        }
    },
    system_prompt='You are a helpful assistant with access to Apaleo tools.',
    max_turns=10
)

async def main():
    async with ClaudeSDKClient(options=options) as client:
        await client.query('Archive property with ID prop123')
        async for message in client.receive_response():
            if hasattr(message, 'content'):
                for block in message.content:
                    if hasattr(block, 'text'):
                        print(block.text)

asyncio.run(main())
```

```typescript
import { openai } from '@ai-sdk/openai';
import { experimental_createMCPClient as createMCPClient } from '@ai-sdk/mcp';
import { generateText, stepCountIs } from 'ai';

const client = await createMCPClient({
  transport: {
    type: 'http',
    url: mcp.url,
    headers: { 'x-api-key': 'your-composio-api-key' }
  }
});

const tools = await client.tools();

const { text } = await generateText({
  model: openai('gpt-4o'),
  tools,
  messages: [{ role: 'user', content: 'Archive property with ID prop123' }],
  stopWhen: stepCountIs( 5 )
});

console.log(`Agent: ${text}`);
```

## Why Use Composio?

### 1. AI Native Apaleo Integration

- Supports both Apaleo MCP and direct API based integrations
- Structured, LLM-friendly schemas for reliable tool execution
- Rich coverage for reading, writing, and querying your Apaleo data

### 2. Managed Auth

- Built-in OAuth handling with automatic token refresh and rotation
- Central place to manage, scope, and revoke Apaleo access
- Per user and per environment credentials instead of hard-coded keys

### 3. Agent Optimized Design

- Tools are tuned using real error and success rates to improve reliability over time
- Comprehensive execution logs so you always know what ran, when, and on whose behalf

### 4. Enterprise Grade Security

- Fine-grained RBAC so you control which agents and users can access Apaleo
- Scoped, least privilege access to Apaleo resources
- Full audit trail of agent actions to support review and compliance

## Use Apaleo with any AI Agent Framework

Choose a framework you want to connect Apaleo with:

- [OpenAI Agents SDK](https://composio.dev/toolkits/apaleo/framework/open-ai-agents-sdk)
- [Claude Agent SDK](https://composio.dev/toolkits/apaleo/framework/claude-agents-sdk)
- [Claude Code](https://composio.dev/toolkits/apaleo/framework/claude-code)
- [Claude Cowork](https://composio.dev/toolkits/apaleo/framework/claude-cowork)
- [Codex](https://composio.dev/toolkits/apaleo/framework/codex)
- [OpenClaw](https://composio.dev/toolkits/apaleo/framework/openclaw)
- [Hermes](https://composio.dev/toolkits/apaleo/framework/hermes-agent)
- [Google ADK](https://composio.dev/toolkits/apaleo/framework/google-adk)
- [LangChain](https://composio.dev/toolkits/apaleo/framework/langchain)
- [Vercel AI SDK](https://composio.dev/toolkits/apaleo/framework/ai-sdk)
- [Mastra AI](https://composio.dev/toolkits/apaleo/framework/mastra-ai)
- [LlamaIndex](https://composio.dev/toolkits/apaleo/framework/llama-index)
- [CrewAI](https://composio.dev/toolkits/apaleo/framework/crew-ai)
- [Pydantic AI](https://composio.dev/toolkits/apaleo/framework/pydantic-ai)
- [AutoGen](https://composio.dev/toolkits/apaleo/framework/autogen)

## Related Toolkits

- [Google Calendar](https://composio.dev/toolkits/googlecalendar) - Google Calendar is a time management service for scheduling meetings, events, and reminders. It streamlines personal and team organization with integrated notifications and sharing options.
- [Appointo](https://composio.dev/toolkits/appointo) - Appointo is an appointment booking platform for Shopify stores. It lets businesses add online scheduling to their websites with zero coding.
- [Bart](https://composio.dev/toolkits/bart) - Bart is the Bay Area Rapid Transit system, providing fast public transportation across the San Francisco Bay Area. It helps commuters and travelers get real-time schedule info, plan routes, and stay updated on service changes.
- [Bookingmood](https://composio.dev/toolkits/bookingmood) - Bookingmood is commission-free booking software for rental businesses. It lets you manage reservations and sync bookings directly on your website.
- [Booqable](https://composio.dev/toolkits/booqable) - Booqable is a rental software platform for managing inventory, bookings, and reservations. It helps businesses streamline rentals and keep track of every item with ease.
- [Cal](https://composio.dev/toolkits/cal) - Cal is a meeting scheduling platform that offers shareable booking links and real-time calendar syncing. It streamlines the process of finding mutual availability to make scheduling effortless.
- [Calendarhero](https://composio.dev/toolkits/calendarhero) - Calendarhero is a powerful scheduling platform that streamlines your calendar management across multiple services. It helps you efficiently schedule, reschedule, and organize meetings without the back-and-forth.
- [Calendly](https://composio.dev/toolkits/calendly) - Calendly is an appointment scheduling tool that automates meeting invitations, availability checks, and reminders. It helps individuals and teams avoid endless email back-and-forth when booking meetings.
- [Etermin](https://composio.dev/toolkits/etermin) - eTermin is an online appointment scheduling platform for businesses to manage bookings. It streamlines client appointments, saving time and reducing scheduling conflicts.
- [Evenium](https://composio.dev/toolkits/evenium) - Evenium is an all-in-one platform for managing professional events, from planning to analysis. It helps teams simplify event logistics, boost engagement, and track every detail in one place.
- [Eventee](https://composio.dev/toolkits/eventee) - Eventee is a user-friendly event management platform for mobile and web. It boosts attendee engagement for in-person, virtual, and hybrid events.
- [Eventzilla](https://composio.dev/toolkits/eventzilla) - Eventzilla is an event management platform for creating, promoting, and running events. It streamlines ticketing, registration, and attendee coordination for organizers.
- [Humanitix](https://composio.dev/toolkits/humanitix) - Humanitix is a not-for-profit ticketing platform that donates 100% of profits to charity. It empowers event organizers to make social impact with every ticket sold.
- [Lodgify](https://composio.dev/toolkits/lodgify) - Lodgify is an all-in-one vacation rental software for property managers and owners. It centralizes bookings, guest messaging, and channel synchronization in one dashboard.
- [Planyo Online Booking](https://composio.dev/toolkits/planyo_online_booking) - Planyo Online Booking is a flexible reservation system for managing bookings by day, hour, or event. It streamlines scheduling for any business needing reservations.
- [Scheduleonce](https://composio.dev/toolkits/scheduleonce) - Scheduleonce is a scheduling platform for capturing, qualifying, and engaging with inbound leads. It streamlines appointment booking and follow-ups for faster lead conversion.
- [Supersaas](https://composio.dev/toolkits/supersaas) - Supersaas is a flexible appointment scheduling platform for businesses and individuals. It streamlines bookings, reminders, and calendar management in one place.
- [Sympla](https://composio.dev/toolkits/sympla) - Sympla is a platform for managing in-person and online events, ticket sales, and registrations. It streamlines event setup, attendee tracking, and digital content delivery.
- [Gmail](https://composio.dev/toolkits/gmail) - Gmail is Google's email service with powerful spam protection, search, and G Suite integration. It keeps your inbox organized and makes communication fast and reliable.
- [Google Drive](https://composio.dev/toolkits/googledrive) - Google Drive is a cloud storage platform for uploading, sharing, and collaborating on files. It's perfect for keeping your documents accessible and organized across devices.

## Frequently Asked Questions

### Do I need my own developer credentials to use Apaleo with Composio?

Yes, Apaleo requires you to configure your own OAuth credentials. Once set up, Composio handles token storage, refresh, and lifecycle management for you.

### Can I use multiple toolkits together?

Yes! Composio's Tool Router enables agents to use multiple toolkits. [Learn more](https://docs.composio.dev/tool-router/overview).

### Is Composio secure?

Composio is SOC 2 and ISO 27001 compliant with all data encrypted in transit and at rest. [Learn more](https://trust.composio.dev).

### What if the API changes?

Composio maintains and updates all toolkit integrations automatically, so your agents always work with the latest API versions.

---
[See all toolkits](https://composio.dev/toolkits) · [Composio docs](https://docs.composio.dev/llms.txt)
