Connectors · Work & projects
apaleo MCP server for AI agents.
actionlake is an MCP gateway: one remote MCP server that connects Claude and other MCP clients to apaleo and the rest of your systems. It gives your agent 275 apaleo actions (117 reads, 114 writes and 44 that wait for a confirmation) and holds the apaleo credential itself, so the agent never does. It paces apaleo's limits and records every call.
100,000 free calls a month. No card, no email, no password: press Start a free sandbox on the next screen and keep the key it shows you.
claude mcp add --transport http actionlake https://connect.actionlake.com/mcpdo { action: "apaleo.invoices.list", intent: "check which apaleo account is connected"}# Gets the list of all invoices (the metadata only, not the files). · read · 1 upstream call- 275actionsin one signed file
- 117readlook, never change
- 114writecreate and update
- 44wait for a yesdestructive, confirmed first
Set up
Connect apaleo in three steps.
- 01
Add actionlake to Claude.
Run the command once in Claude Code; its consent page can create a free sandbox: 100,000 calls a month, no card. In the Claude app, add a custom connector with the URL below and paste your key on the consent page. Creating a new sandbox from the Claude app is not yet tested by us.
https://connect.actionlake.com/mcp - 02
Connect apaleo.
OAuth 2.0, client credentials. Paste the app's client id and secret; actionlake fetches and renews the token, and nobody has to sign in. actionlake stores what you paste write-only, sealed under your tenant's key.
client_idapaleo client ID of a simple client (client credentials): apaleo app > Settings > Connected apps > Add simple…client_secretThe simple client's secret, shown once when the client is created
account { op: "connections.requirements", service: "apaleo" } # free: exactly what to paste, and what is found for you - 03
Make the first call. Check before a write.
Ask in plain words; Claude picks the action. Before anything changes,
checkvalidates the call and prices it, for free.do { action: "apaleo.invoices.list" }# gets the list of all invoices (the metadata only, not the files). · read · 1 upstream callcheck { action: "apaleo.invoices.create", input: { … } }# free: inputs, permissions, cost and confirmations, nothing sent
apaleo at a glance
- Sign-in
- OAuth 2.0, client credentials. Paste the app's client id and secret; actionlake fetches and renews the token, and nobody has to sign in.
- You provide
client_idclient_secret- Limits we pace to
- 10 calls a second, per connection
- API covered
- Apaleo REST API v1 (ten Swagger 2.0 documents)
api.apaleo.com - Built from
- apaleo's documentation, read 23 October 2026api.apaleo.comapi.apaleo.comapi.apaleo.com
- Service file
- Version 1.0.0, signed (Ed25519)
- Cached reads
- 111 of 117 reads, for up to 5 minutes; a write clears what it affects
- Shared entities
- 3, so ask can line apaleo up with your other systems
- Data
- Processed and stored in Sydney, Australia. No US region yet
Capabilities
What an AI agent can do in apaleo.
275 actions in 10 areas. Every one carries its effect, so a key can allow the reads and hold the rest.
- 117readlook, never change
- 114writecreate and update
- 44destructivewait for a confirmation
Booking
7524 read · 40 write · 11 destructive
Returns a list of authorizations based on the query parameters · Creates the authorization based on an existing pre-authorization created prior directly with the payment service provider · Creates a link to a payment form that allows guests to complete the authorization · Creates authorization by using a previously created payment account
Finance
6228 read · 20 write · 14 destructive
Gets the list of all invoices (the metadata only, not the files). · Creates an invoice for one specific folio. · Gets invoice data. · Get a list of payments.
Rateplan
4318 read · 17 write · 8 destructive
Get a list of companies · Create a company · Get a company · Delete a company
Settings
3316 read · 13 write · 4 destructive
Get all capture policies. · Create a city tax. · Get all city taxes. · Get invoice addresses
Inventory
3112 read · 14 write · 5 destructive
Get a properties list · Creates a property · Get a property · Create a unit group
Operations
93 read · 5 write · 1 destructive
Create a new maintenance window · Get list of maintenances · Create multiple maintenances · Returns number of maintenances
Availability
75 read · 2 write · 0 destructive
Get house-level overbooking for a given property. · Get a list of all available units for a reservation · Get a list of all available services in a property · Get a list of all available unit groups in a property
Account
62 read · 3 write · 1 destructive
Creates an account with an admin user. · Returns all accounts. · Move the account to live. · Returns the current account.
2 more areas · 9 actions
- Reports 5
- Logs 4
Top actions
The apaleo API, shaped for agents.
The ids your agent types, what each does, and the one name it shares with other systems. 15 of apaleo's 15 action names are shared with at least one other connector, so an agent learns them once.
| Action | What it does | Effect | Same name in |
|---|---|---|---|
apaleo.invoices.listGets the list of all invoices (the metadata only, not the files). | Gets the list of all invoices (the metadata only, not the files). | read | finance.invoice.list101 connectors |
apaleo.companies.listGet a list of companies | Get a list of companies. | read | crm.company.list162 connectors |
apaleo.inventory_properties.listGet a properties list | Get a properties list. | read | crm.location.list48 connectors |
apaleo.invoices.createCreates an invoice for one specific folio. | Creates an invoice for one specific folio. | write | finance.invoice.create74 connectors |
apaleo.companies.createCreate a company | Create a company. | write | crm.company.create142 connectors |
apaleo.inventory_properties.createCreates a property | Creates a property. | write | crm.location.create41 connectors |
apaleo.folios_payments.listGet a list of payments. | Get a list of payments. | read | finance.payment.list75 connectors |
apaleo.companies.deleteDelete a company | Delete a company. | destructive | crm.company.delete119 connectors |
apaleo.folios_payments.createTrigger a custom payment for the folio. | Trigger a custom payment for the folio. | write | finance.payment.create67 connectors |
apaleo.folios_refunds.listGet a list of refunds. | Get a list of refunds. | read | finance.refund.list23 connectors |
apaleo.folios_refunds.getGet a refund by ID. | Get a refund by ID. | read | finance.refund.get25 connectors |
apaleo.blocks.listReturns a list of blocks | Returns a list of blocks. | read | this connector |
Try it
Prompts to paste into Claude.
Each one names the apaleo actions it will call, so you know what it reads and what it changes before you send it.
- Readread
Which apaleo invoices are more than 30 days overdue? Group them by customer with the total owed.
calls
apaleo.invoices.list - Writewrite
Creates an invoice for one specific folio in apaleo. Show me exactly what you will send before you save it.
calls
apaleo.invoices.create - Across systemsread
For each customer, how many invoices are in apaleo and how many tickets in ConnectWise PSA?
calls
apaleo.invoices.listconnectwise_manage.tickets.list
Across your systems
apaleo, joined to the rest of your business.
One ask fetches from apaleo and another system, joins the rows on the same customer on our side, and hands your agent the answer, not every row.
For each customer, how many invoices are in apaleo and how many tickets in ConnectWise PSA?
apaleo.invoices.list+connectwise_manage.tickets.list, oncrm.company· ConnectWise PSAFor each customer, how many invoices are in apaleo and how many tickets in HubSpot CRM?
apaleo.invoices.list+hubspot_crm.tickets.list, oncrm.company· HubSpot CRM
crm.company 227finance.invoice 91crm.location 49ask { intent: "for each customer, how many invoices are in apaleo and how many tickets in ConnectWise PSA", steps: [ { action: "apaleo.invoices.list", as: "inv", input: {}, limit: 100, max_pages: 5 }, { action: "connectwise_manage.tickets.list", as: "tix", input: {}, limit: 100, max_pages: 5 }, { join: { left: "inv", right: "tix", on: "crm.company", group_by: "inv.company_name", select: ["inv.company_name", "count(inv.id) as invoices", "count(tix.id) as tickets"] } } ]}Governance for apaleo
Destructive actions wait for a yes.
44 apaleo actions are destructive. The first 10:
- Delete a company
apaleo.companies.delete - Delete a specific block
apaleo.blocks.delete - Deletes a folio.
apaleo.folios.delete - Delete a certain group booking
apaleo.groups.delete - Delete a city tax
apaleo.city_tax.delete - Delete a routing.
apaleo.routings.delete - Delete a rate plan
apaleo.rate_plans.delete - Marks an invoice as paid.
apaleo.invoice_actions.pay - Delete a maintenance
apaleo.maintenances.delete - Delete a custom sub-account
apaleo.sub_accounts.delete
A destructive action runs only with confirm: true. Under the human policy the agent cannot confirm for itself: the run stops until a named person approves, in the console or from a signed link in an email. The cap on a key is refused before the call is sent, never after.
Delete a company?
intent: the user asked me to delete a company
account { op: "keys.create", name: "apaleo-agent", allowed_actions: ["apaleo.*"], cap_calls: 2000, confirm_policy: "human_for_writes", approval_rules: [ { match: "apaleo.companies.delete", approver: "[email protected]" }, { match: "apaleo.blocks.delete", approver: "[email protected]" }, { match: "apaleo.folios.delete", approver: "[email protected]" } ]}Cost
What apaleo costs on actionlake.
Every apaleo action is one upstream call, the only thing actionlake bills. Searching, check, cost, account and any call apaleo refused with 401, 403, 429 or a 5xx are free. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.
- 1upstream call per actionall 275 apaleo actions
- 275actions pageeach page of a long list is one call
- 111reads can be cacheda cache hit costs nothing
- 100,000calls a month, freepaid plans from US$49 a month for 250,000
Action index
Every apaleo action.
275 actions by area: the id your agent calls, what it does, and its effect.
Booking75
apaleo.authorization_actions.cancelCancels the authorizationdestructiveapaleo.authorization_actions.expire_payment_linkExpires the pending payment link with the payment provider and updates the status to Expireddestructiveapaleo.authorization_actions.refreshUpdates the requested amount and extends the expiry date of the authorizationwriteapaleo.authorizations.getReturns a single authorization by IDreadapaleo.authorizations.listReturns a list of authorizations based on the query parametersreadapaleo.authorizations_by_authorization.createCreates the authorization based on an existing pre-authorization created prior directly with the payment service providerwriteapaleo.authorizations_by_link.createCreates a link to a payment form that allows guests to complete the authorizationwriteapaleo.authorizations_by_payment_account.createCreates authorization by using a previously created payment accountwriteapaleo.authorizations_by_terminal.createCreates the authorization by using the terminalwriteapaleo.block_actions.amendAllow to modify a blockwriteapaleo.block_actions.cancelCancel a block.destructiveapaleo.block_actions.confirmConfirm a block.writeapaleo.block_actions.cutoff_optionalApply the optional cutoff behavior for a block whose cutoff has been reached.writeapaleo.block_actions.releaseRelease a block.writeapaleo.block_actions.set_to_optionalSet a block to optional.writeapaleo.block_actions.start_optionalConvert an optional block to tentative when its booking window opens.writeapaleo.block_actions.washWash a block.destructiveapaleo.blocks.countReturns number of blocksreadapaleo.blocks.createCreates a blockwriteapaleo.blocks.deleteDelete a specific blockdestructiveapaleo.blocks.getReturns a specific block.readapaleo.blocks.listReturns a list of blocksreadapaleo.blocks.updateAllows to modify certain block propertieswriteapaleo.bookings.createCreates a booking for one or more reservations.writeapaleo.bookings.create_forceCreates a booking for one or more reservations regardless of availability or restrictions.writeapaleo.bookings.getReturns a specific booking.readapaleo.bookings.listReturns a list of all bookings, filtered by the specified parameters.readapaleo.bookings.updateAllows to modify certain booking propertieswriteapaleo.bookings_reservations.createAdd one or multiple reservations to an existing booking.writeapaleo.bookings_reservations.create_forceAdd one or multiple reservations to an existing booking regardless of availability or restrictions.writeapaleo.groups.countReturns number of group bookingsreadapaleo.groups.createCreates a group booking.writeapaleo.groups.deleteDelete a certain group bookingdestructiveapaleo.groups.getReturns a specific group booking.readapaleo.groups.listReturns a list of all group bookings, filtered by the specified parameters.readapaleo.groups.updateAllows to modify certain group booking propertieswriteapaleo.groups_reservations.createAdd one or multiple reservations to an existing group booking using blocked inventory.writeapaleo.offer_index.listReturns offers with rates and availabilities for the specified range.readapaleo.offers.listReturns offers for one specific stay.readapaleo.payment_account_actions.cancelSets payment account status to Canceleddestructiveapaleo.payment_account_actions.expire_payment_linkExpires the pending payment link with the payment provider and updates the status to Expireddestructiveapaleo.payment_accounts.getReturns a single payment account by IDreadapaleo.payment_accounts.listReturns a list of payment accounts based on the query parametersreadapaleo.payment_accounts_by_authorization.createCreates payment account based on an existing authorization created prior externally with the Payment Service Providerwriteapaleo.payment_accounts_by_link.createCreates a link to a payment form that allows guests to complete the payment accountwriteapaleo.payment_accounts_by_stored_payment_method.createCreates payment account based on an existing authorization created prior externally with the Payment Service Providerwriteapaleo.payment_accounts_by_terminal.createCreates payment account by using the terminalwriteapaleo.rate_plan_offers.listReturns offers for a specific rate plan.readapaleo.reservation_actions.add_city_taxAdds the city tax to a reservation.writeapaleo.reservation_actions.amendAllows you to amend the stay details of a reservationwriteapaleo.reservation_actions.amend_forceAllows you to amend the stay details of a reservation regardless of availability or restrictions.writeapaleo.reservation_actions.assign_specific_unitAssign a specific unit to a reservation.writeapaleo.reservation_actions.assign_unitAssign a unit to a reservation.writeapaleo.reservation_actions.book_serviceBook the service for a specific reservation.writeapaleo.reservation_actions.book_service_forceBook the service for a specific reservation regardless of availability.writeapaleo.reservation_actions.cancelCancel a reservation.destructiveapaleo.reservation_actions.checkinCheck-in of a reservation.writeapaleo.reservation_actions.checkoutCheck-out of a reservation.writeapaleo.reservation_actions.lock_unitLock unit assignment for a reservation.writeapaleo.reservation_actions.noshowSet a reservation to No-show.destructiveapaleo.reservation_actions.remove_city_taxRemoves the city tax from a reservation.writeapaleo.reservation_actions.revert_checkinReverses the check-in of a reservation.writeapaleo.reservation_actions.unassign_unitsUnassign units from a reservation.writeapaleo.reservation_actions.unlock_unitUnlock unit assignment for a reservation.writeapaleo.reservations.countReturns the number of reservations fulfilling the criteria specified in the parameters.readapaleo.reservations.getReturns a specific reservation.readapaleo.reservations.listReturns a list of all reservations, filtered by the specified parameters.readapaleo.reservations.updateAllows to modify certain reservation propertieswriteapaleo.reservations_offers.listReturns offers for one specific reservation.readapaleo.reservations_service_offers.listReturns service offers for one specific reservation.readapaleo.reservations_services.deleteRemoves a service from a reservation.destructiveapaleo.reservations_services.listReturns the services booked for a specific reservation.readapaleo.service_offers.listReturns service offers for one specific stay.readapaleo.types_allowed_values.listReturns a list of values that a field of the specified type can take in the specified country.readapaleo.types_sources.listReturns a list of supported sources.read
Finance62
apaleo.external_accounts.listReturns a list of external accounts.readapaleo.finance_accounts.getReturns one account.readapaleo.finance_accounts_aggregate.queryAggregates transactions by timestamp for all accounts and a given period.readapaleo.finance_accounts_aggregate_daily.queryAggregates transactions by date (business day) for all accounts and a given period.readapaleo.finance_accounts_aggregate_pairs_daily.queryAggregates transactions pairs by date (business day) for all accounts and a given period.readapaleo.finance_accounts_child_accounts.listReturns a list of child accounts for a specified parent account.readapaleo.finance_accounts_export.queryReturns transactions filtered by timestamp for a property for a given period.readapaleo.finance_accounts_export_daily.queryReturns transactions filtered by date (business day) for a property for a given period.readapaleo.finance_accounts_export_gross_daily.queryReturns gross transactions filtered by date (business day) for a property for a given period.readapaleo.finance_accounts_schema.getReturns the chart of accounts of the subledger.readapaleo.folio_actions.allowancesPosts an allowance for a foliowriteapaleo.folio_actions.bulk_allowancesPosts allowances for a foliowriteapaleo.folio_actions.bulk_moveMove multiple charges from one folio to another. Multiple source folios and multiple target folios can be specified.writeapaleo.folio_actions.cancellation_feeAdds and directly posts a cancellation fee to the folio. If there are any fees configured for the property, an additional charge for each configured fee will be added. If a routing instruction is def…writeapaleo.folio_actions.chargesAdds and directly posts a charge to the folio. If there are any fees configured for the property, an additional charge for each configured fee will be added.destructiveapaleo.folio_actions.charges_allowancesPosts an allowance for a chargedestructiveapaleo.folio_actions.charges_splitSplits a charge into two using the percent or amount provided Creates an allowance and two new charges.destructiveapaleo.folio_actions.closeCloses a folio.writeapaleo.folio_actions.correctCorrects a folio by moving some charges. This operation creates a new folio with the charges from the request. The payment, equal to the sum of charges, is also split to this new folio so that both f…writeapaleo.folio_actions.move_all_chargesMove all charges and transitory charges from one folio to another.destructiveapaleo.folio_actions.move_chargesMove multiple charges, allowances and transitory charges from one folio to another.destructiveapaleo.folio_actions.move_paymentsMove multiple payments from one guest/booking folio to another.writeapaleo.folio_actions.no_show_feeAdds and directly posts a no-show fee to the folio. If there are any fees configured for the property, an additional charge for each configured fee will be added. If a routing instruction is defined…writeapaleo.folio_actions.payments_splitSplits a payment into two using the percent or amount provided Creates a refund and two new payments.writeapaleo.folio_actions.post_chargesPosts all unposted charges for the whole length of stay.destructiveapaleo.folio_actions.reopenReopens a folio.writeapaleo.folio_actions.transitory_chargesAdds and directly posts a transitory charge to the folio. If there are any fees configured for the property, an additional charge for each configured fee will be added.destructiveapaleo.folios.countReturns number of folios.readapaleo.folios.createCreate additional folios for a reservation, or new external folioswriteapaleo.folios.deleteDeletes a folio.destructiveapaleo.folios.getReturns one folio.readapaleo.folios.listReturns a list of all folios.readapaleo.folios.updateAllows to modify certain properties of a foliowriteapaleo.folios_payments.cancelCancels a pending payment link.destructiveapaleo.folios_payments.createTrigger a custom payment for the folio.writeapaleo.folios_payments.getGet a payment by ID.readapaleo.folios_payments.listGet a list of payments.readapaleo.folios_payments_by_authorization.createCaptures a specific amount from a pre-authorization and posts it to the folio.writeapaleo.folios_payments_by_link.createCreates a link to a payment form where guests can pay.writeapaleo.folios_payments_by_payment_account.createTrigger a payment using the payment account stored on the reservation or booking.writeapaleo.folios_payments_by_terminal.createTrigger a payment on a card terminal for the folio.writeapaleo.folios_payments_refunds.createTrigger a refund for a specific payment.destructiveapaleo.folios_refunds.createTrigger a refund for the folio.destructiveapaleo.folios_refunds.getGet a refund by ID.readapaleo.folios_refunds.listGet a list of refunds.readapaleo.global_accounts.listReturns a list of global accounts.readapaleo.guest_accounts.listReturns a list of guest accounts.readapaleo.invoice_actions.cancelCancels an invoicedestructiveapaleo.invoice_actions.payMarks an invoice as paid.destructiveapaleo.invoices.createCreates an invoice for one specific folio.writeapaleo.invoices.getGets invoice data.readapaleo.invoices.listGets the list of all invoices (the metadata only, not the files).readapaleo.invoices_preview.getGets an invoice preview for one specific folio.readapaleo.routings.createCreate a routing.writeapaleo.routings.deleteDelete a routing.destructiveapaleo.routings.getGet a specific routing.readapaleo.routings.listGet all routings.readapaleo.routings.updateModify a routing.writeapaleo.types_currencies.listReturns a list of all currencies.readapaleo.types_payment_methods.listReturns a list of all supported payment methods.readapaleo.types_service_types.listReturns a list of all supported service types.readapaleo.types_vat.listReturns a list of all VAT types.read
Rateplan43
apaleo.age_categories.createCreate an age categorywriteapaleo.age_categories.deleteDelete an age categorydestructiveapaleo.age_categories.getGet an age categoryreadapaleo.age_categories.listGet an age category listreadapaleo.age_categories.updateAllows to modify properties of an age categorywriteapaleo.cancellation_policies.createCreate a cancellation policy.writeapaleo.cancellation_policies.deleteDelete a cancellation policydestructiveapaleo.cancellation_policies.getGet a specific cancellation policy.readapaleo.cancellation_policies.listGet all cancellation policies.readapaleo.cancellation_policies.updateAllows to modify properties of a cancellation policywriteapaleo.companies.createCreate a companywriteapaleo.companies.deleteDelete a companydestructiveapaleo.companies.getGet a companyreadapaleo.companies.listGet a list of companiesreadapaleo.companies.updateModify a companywriteapaleo.corporate_codes_codes.listReturns a list of corporate codes.readapaleo.no_show_policies.createCreate a no-show policy.writeapaleo.no_show_policies.deleteDelete a no-show policydestructiveapaleo.no_show_policies.getGet a specific no-show policy.readapaleo.no_show_policies.listGet all no-show policies.readapaleo.no_show_policies.updateAllows to modify properties of a no-show policywriteapaleo.promo_codes_codes.listReturns a list of promo codes.readapaleo.rate_plan_actions.archiveArchive a rate planwriteapaleo.rate_plans.countReturns number of rate plansreadapaleo.rate_plans.createCreate a rate planwriteapaleo.rate_plans.deleteDelete a rate plandestructiveapaleo.rate_plans.delete_manyDelete multiple rate plansdestructiveapaleo.rate_plans.getGet a rate planreadapaleo.rate_plans.listGet a rate plan listreadapaleo.rate_plans.replaceReplace a rate planwriteapaleo.rate_plans.updateAllows to patch one or more rate planswriteapaleo.rate_plans_rates.countReturns the number of rates for a specific rate plan within the specifed time range.readapaleo.rate_plans_rates.deleteDeletes the rates for the rate plandestructiveapaleo.rate_plans_rates.listReturns a list of rates.readapaleo.rate_plans_rates.replaceInitializes and changes the rates for the rate plan.writeapaleo.rate_plans_rates.updateAllows to patch multiple rates of a single rate plan.writeapaleo.rateplan_services.countReturns number of services.readapaleo.rateplan_services.createCreate a service.writeapaleo.rateplan_services.deleteDelete a servicedestructiveapaleo.rateplan_services.getGet a specific service.readapaleo.rateplan_services.listGet all services.readapaleo.rateplan_services.updateModify a service.writeapaleo.rates.updateAllows to patch the rates of multiple rate plans.write
Settings33
apaleo.capture_policies.getGet a specific capture policy.readapaleo.capture_policies.listGet all capture policies.readapaleo.capture_policies.updateAllows to modify properties of a capture policy.writeapaleo.city_tax.createCreate a city tax.writeapaleo.city_tax.deleteDelete a city taxdestructiveapaleo.city_tax.getGet a specific city tax.readapaleo.city_tax.listGet all city taxes.readapaleo.city_tax.updateAllows to modify city taxwriteapaleo.features.getGet feature settings for a property.readapaleo.features.updateAllows to modify feature settingswriteapaleo.invoice_address.listGet invoice addressesreadapaleo.invoice_address.replaceCreate or update invoice addresses for one or more properties.writeapaleo.invoice_address.updateChange fields in the invoice address of one or more properties.writeapaleo.languages.listGet the language settings for the accountreadapaleo.languages.replaceReplaces the language settings for the accountwriteapaleo.market_segments.countReturns number of market segments.readapaleo.market_segments.createCreate a market segmentwriteapaleo.market_segments.deleteDelete a market segment.destructiveapaleo.market_segments.getGet a market segment.readapaleo.market_segments.listReturns a list of all market segments, filtered by the specified parameters.readapaleo.market_segments.updateAllows to modify market segment.writeapaleo.properties_time_slice_definitions.createCreates a time slice definitionwriteapaleo.properties_time_slice_definitions.deleteDelete a certain time slice definitiondestructiveapaleo.properties_time_slice_definitions.getGet a specific time slice definitionreadapaleo.properties_time_slice_definitions.listGet time slice definitionsreadapaleo.properties_time_slice_definitions.updateModifies a specific time slice definition for the propertywriteapaleo.settings_properties.getGet property settingsreadapaleo.sub_accounts.countReturns number of sub-accounts.readapaleo.sub_accounts.createCreate a sub-account.writeapaleo.sub_accounts.deleteDelete a custom sub-accountdestructiveapaleo.sub_accounts.getReturns one sub-account.readapaleo.sub_accounts.listReturns a list of all sub-accounts.readapaleo.sub_accounts.updateAllows to modify the name of the sub-account.write
Inventory31
apaleo.inventory_properties.countReturn total count of propertiesreadapaleo.inventory_properties.createCreates a propertywriteapaleo.inventory_properties.deleteDeletes a propertydestructiveapaleo.inventory_properties.getGet a propertyreadapaleo.inventory_properties.listGet a properties listreadapaleo.inventory_properties.updateAllows to modify propertywriteapaleo.inventory_unit_groups.countReturns number of unit groupsreadapaleo.inventory_unit_groups.createCreate a unit groupwriteapaleo.inventory_unit_groups.deleteDelete a unit groupdestructiveapaleo.inventory_unit_groups.getGet a unit groupreadapaleo.inventory_unit_groups.listGet all unit groups, or all unit groups for a propertyreadapaleo.inventory_unit_groups.replaceReplace a unit groupwriteapaleo.inventory_units.countReturns number of unitsreadapaleo.inventory_units.createCreate a unitwriteapaleo.inventory_units.deleteDelete a unitdestructiveapaleo.inventory_units.getGet a unitreadapaleo.inventory_units.listGet a units listreadapaleo.inventory_units.updateAllows to patch unitwriteapaleo.inventory_units.update_manyAllows to patch one or more unitswriteapaleo.property_actions.archiveArchive a propertywriteapaleo.property_actions.cloneClones a propertywriteapaleo.property_actions.resetReset a test property and delete all transactional datadestructiveapaleo.property_actions.set_liveMove property to livewriteapaleo.types_countries.listReturns a list of supported countries.readapaleo.unit_actions.archiveArchive a unitwriteapaleo.unit_attributes.createCreate a unit attributewriteapaleo.unit_attributes.deleteDeletes unit attributedestructiveapaleo.unit_attributes.getGet unit attribute by idreadapaleo.unit_attributes.listGet unit attribute listreadapaleo.unit_attributes.updateAllows to modify unit attributewriteapaleo.units_bulk.createCreate multiple unitswrite
Operations9
apaleo.maintenances.countReturns number of maintenancesreadapaleo.maintenances.createCreate a new maintenance windowwriteapaleo.maintenances.deleteDelete a maintenancedestructiveapaleo.maintenances.getGet a specific maintenancereadapaleo.maintenances.listGet list of maintenancesreadapaleo.maintenances.updateModify a maintenancewriteapaleo.maintenances_bulk.createCreate multiple maintenanceswriteapaleo.night_audit.replacePerforms the night audit for one property.writeapaleo.units_condition.replaceChange the condition of a unitwrite
Availability7
apaleo.availability_properties.getGet house-level overbooking for a given property.readapaleo.availability_properties.updateAllows to modify availability of a given property.writeapaleo.availability_reservations_units.listGet a list of all available units for a reservationreadapaleo.availability_services.listGet a list of all available services in a propertyreadapaleo.availability_unit_groups.listGet a list of all available unit groups in a propertyreadapaleo.availability_unit_groups.updateAllows to modify the unit group availabilitywriteapaleo.availability_units.listGet a list of all available units in a propertyread
Account6
apaleo.account_actions_current.set_liveMove the account to live.writeapaleo.account_actions_current.suspendSuspend the account.destructiveapaleo.accounts.createCreates an account with an admin user.writeapaleo.accounts.listReturns all accounts.readapaleo.accounts_current.getReturns the current account.readapaleo.accounts_current.replaceReplaces an existing account.write
Reports5
apaleo.reports_arrivals.getReturns the number of arrivals in a month for a propertyreadapaleo.reports_company_invoices_vat.listReturns the list of company invoices with information on the company and the VAT breakdownreadapaleo.reports_ordered_services.listList of ordered servicesreadapaleo.reports_property_performance.getReturns the property performance report which includes the ADR and the RevPAR for each business day.readapaleo.reports_revenues.getReturns the revenues report for a propertyread
Logs4
apaleo.logs_booking_reservation.listReturns reservation change log entries sorted by the timestampreadapaleo.logs_finance_folio.listReturns folio change log entries sorted by the timestamp.readapaleo.logs_finance_night_audit.listReturns the night audit logs.readapaleo.logs_finance_transactions_export.listReturns the audit log for all accounting exports that have been done.read
Questions
The apaleo MCP server, answered.
Is there an apaleo MCP server for Claude?
Yes. actionlake is an MCP gateway: a remote MCP server that gives Claude, or another MCP client, 275 apaleo actions across booking, finance, rateplan and settings, through the same eight tools it uses for every other connector. actionlake is independent; it is not made or endorsed by apaleo.
What do I need to connect apaleo?
Apaleo client ID of a simple client (client credentials): apaleo app > Settings > Connected apps > Add simple… and The simple client's secret, shown once when the client is created. The free call account { op: "connections.requirements", service: "apaleo" } lists exactly what to paste.
Can an AI agent delete or change things in apaleo?
Only if its key allows it, and only with an explicit confirmation. 44 apaleo actions are destructive, including delete a company, delete a specific block and deletes a folio.. Each runs only with confirm: true. Under the human confirm policy, or an approval rule on the key, the run waits until a named person approves it.
Will an AI agent use up my apaleo API limit?
actionlake paces every call to the limits in the apaleo service file: 10 calls a second per connection. Repeated reads are answered from cache (111 apaleo actions can be), which never reaches apaleo.
What does an apaleo action cost?
One upstream call, the only unit actionlake bills. A list that pages bills one call per page (275 apaleo actions page). Cache hits, searches, dry runs and calls apaleo refused with 401, 403, 429 or a 5xx are free. The Free plan includes 100,000 calls a month with no card. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.
Which apaleo API does it cover?
The apaleo REST API v1 (ten Swagger 2.0 documents) at api.apaleo.com. It is built from apaleo's documentation as read on 23 October 2026. 275 actions in 10 areas, each one in the signed service file (version 1.0.0).
Can I combine apaleo with my other systems?
Yes. ask joins apaleo to ConnectWise PSA or HubSpot CRM on the same customer and returns the answer rather than every row. apaleo maps crm.company, which 227 other connectors also map.
Does actionlake keep my apaleo data, and where?
actionlake processes and stores data in Sydney, Australia; there is no US region yet. Reads may be cached for up to 5 minutes, and a write clears the reads it affects. Each run's request and response is kept, sealed, for your plan's trace window: 1 day on Free, 3 days on Starter, 7 days on Pro, 14 days on Team, 30 days on Business and 30 days on Enterprise. Your apaleo credential is sealed under your tenant's key, never logged and never returned. Your traffic is not used to train models.
Which AI clients can use it?
Claude Code, tested by us end to end, and the Claude app as a custom connector, tested by us with an existing key. Other MCP clients that support remote servers over Streamable HTTP (MCP revisions 2025-06-18 and 2025-11-25) and OAuth dynamic client registration, or a bearer header, should connect the same way; we have not tested them. Or plain REST, under the same action names.
Give your agent apaleo today.
Start free - 100,000 calls/month, no card. No signup. Hard caps on every key. Cached answers are free.