canonical: https://jentic.com/apis/apaleo.com/apaleo

# apaleo Inventory API

Jentic publishes the only available OpenAPI specification for apaleo Inventory API, keeping it validated and agent-ready. apaleo is a property management system (PMS) for hotels and the inventory API exposes the structural data that everything else hangs off: properties (hotels), units (rooms, parking lots, beds, meeting rooms), unit groups (single rooms, double rooms), unit attributes, and the country and type lookups behind them. Authentication is OAuth 2.0 against apaleo's identity service, and the property lifecycle is exposed through dedicated action endpoints (clone, archive, set-live, reset).

## For AI agents

Set up and manage hotel properties, units, unit groups, and unit attributes in the apaleo PMS via OAuth 2.0.

## Scope

Does not handle reservations, rates, availability, or guest profiles - use for property, unit, unit-group, and unit-attribute structural data and property lifecycle actions only.

## Capabilities

- Create, update, and list hotel properties (the top-level entity in apaleo)
- Manage units (rooms, parking lots, beds, meeting rooms) including bulk creation
- Group units into unit groups (e.g., single rooms, double rooms) for rate and availability mapping
- Define unit attributes that classify units (e.g., view, floor) for downstream rate logic
- Run property actions (clone, archive, set-live, reset) for lifecycle management
- Query supported country and type lookups required by other apaleo APIs

## Use cases

### New-property onboarding

Onboard a new hotel into apaleo by creating the property, defining its unit groups (single, double, suite), bulk-creating the actual units, and finally calling the set-live action so reservations can flow. The agent uses /inventory/v1/properties to create the property, /inventory/v1/unit-groups to define groups, /inventory/v1/units/bulk to create rooms, and /inventory/v1/property-actions/{id}/set-live to activate.

Example prompt: POST /inventory/v1/properties with the new hotel data, POST unit groups, POST /inventory/v1/units/bulk for the rooms, then PUT /inventory/v1/property-actions/{id}/set-live

### Audit and report on hotel inventory

Generate an inventory audit report for a hotel chain showing property counts, unit counts per property, and unit groups. The agent calls /inventory/v1/properties/$count and /inventory/v1/units/$count to get totals, then iterates properties and pulls /inventory/v1/units and /inventory/v1/unit-groups for each to build the report.

Example prompt: GET /inventory/v1/properties/$count, GET /inventory/v1/units/$count, then for each property GET /inventory/v1/units?propertyId= and aggregate counts by unit group

### Clone a property to a sister hotel

Stand up a new hotel in apaleo that shares structure with an existing one. The agent calls /inventory/v1/property-actions/{id}/clone, then patches the new property's identifying fields (code, name, address) and the unit attributes that differ. This is faster than rebuilding unit groups and attributes from scratch.

Example prompt: PUT /inventory/v1/property-actions/{id}/clone with the source property id, then PATCH the cloned property's name and address

### AI agent integration via Jentic

An agent supporting a hotel operations team can search Jentic for 'create a hotel property' and Jentic returns the apaleo inventory operation with its schema. apaleo OAuth 2.0 client credentials live in your Jentic One instance, so the agent does not handle the client id and secret or the token refresh.

Example prompt: Search Jentic for 'create a hotel property in apaleo', load the /inventory/v1/properties schema, and POST the new property

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | /inventory/v1/properties | List hotel properties |
| GET | /inventory/v1/properties/{id} | Fetch a single property |
| GET | /inventory/v1/units | List units in a property |
| POST | /inventory/v1/units/bulk | Bulk-create units in a property |
| GET | /inventory/v1/unit-groups | List unit groups (e.g., single, double) |
| PUT | /inventory/v1/property-actions/{id}/clone | Clone a property to a new property |
| PUT | /inventory/v1/property-actions/{id}/set-live | Set a property live so it can accept reservations |
| PUT | /inventory/v1/property-actions/{id}/archive | Archive a property |

## Key resources

- **Property** — Top-level hotel entity with create, list, count, fetch, update operations
- **Unit** — Bookable units (rooms, beds, parking, meeting rooms) including bulk creation
- **UnitGroup** — Groupings of units (e.g., single, double) used for rates and availability
- **UnitAttribute** — Attributes that classify units (view, floor) for downstream logic
- **PropertyActions** — Lifecycle actions on a property: clone, archive, set-live, reset
- **Types** — Lookups such as supported country codes referenced by other resources

## Why Jentic

- **Setup:** Wiring the apaleo Inventory API by hand means implementing its OAuth 2.0 flow, managing token fetch, refresh, and scope, and mapping the property, unit, and unit-group routes yourself. Through Jentic you install once, import apaleo from the API Directory, store the client credentials once, and your agent calls it.
- **Permission scoping:** apaleo puts the property id in the URL path (/inventory/v1/properties/{id}, /inventory/v1/property-actions/{id}/set-live), so a rule can pin your agent to one property: it can read and act on that property and nothing else. You choose the operations it may call, so lifecycle actions like archive are not included unless you add them.
- **Credential handling:** Your apaleo OAuth 2.0 client credentials are stored once, encrypted, by your own Jentic One instance and injected at execution time. They never enter the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'create a hotel property' or 'set a property live', and Jentic returns the matching apaleo inventory operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Cloudbeds API** — Cloud-based PMS targeting independent hotels and B&Bs.
- **Stripe API** — Card payment acceptance for hotel reservations.
- **GitHub API** — Source control for the integration code that calls apaleo.

## FAQ

### Why is there no official OpenAPI spec for apaleo Inventory API?

apaleo does not publish an OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call apaleo Inventory API via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the apaleo Inventory API use?

OAuth 2.0 against apaleo's identity service. Through Jentic the client id and secret live in the encrypted Jentic One instance, and Jentic fetches and refreshes the bearer token on the agent's behalf, so the secret never enters the agent context.

### Can I bulk-create rooms in an apaleo property?

Yes. POST /inventory/v1/units/bulk accepts an array of unit definitions and creates them in one call, which is much faster than POSTing /inventory/v1/units individually when onboarding a new hotel wing.

### How do I set a property live through Jentic?

Search Jentic for 'set an apaleo property live', load the schema for /inventory/v1/property-actions/{id}/set-live, and PUT it for the property id. Once live, the property can accept reservations through other apaleo APIs.

### What are the rate limits for the apaleo Inventory API?

apaleo applies fair-use limits at the OAuth 2.0 client level; specifics are not declared in the OpenAPI spec. Bulk endpoints (units/bulk) reduce request count when onboarding many rooms.

### What is the difference between a unit and a unit group?

A unit is a single bookable resource (a room, parking lot, bed, or meeting room). A unit group bundles units that share a rate and availability profile (e.g., 'single rooms' or 'double rooms'). Rates and availability hang off unit groups, not individual units.

### Can I limit what my agent is allowed to do with the apaleo Inventory API?

Yes. Because you run Jentic One yourself, your own rules decide which apaleo operations and credentials your agent can use. The apaleo Inventory API puts the property id in the URL path, so a rule can pin your agent to a single property and let it read and act only on that one. You also choose which operations it may call, so lifecycle actions such as set-live or archive are excluded unless you add them.
