Skip to content

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/mcp
the first call
do {  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.

  1. 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
  2. 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
  3. 03

    Make the first call. Check before a write.

    Ask in plain words; Claude picks the action. Before anything changes, check validates 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
  1. Booking

    75

    24 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

  2. Finance

    62

    28 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.

  3. Rateplan

    43

    18 read · 17 write · 8 destructive

    Get a list of companies · Create a company · Get a company · Delete a company

  4. Settings

    33

    16 read · 13 write · 4 destructive

    Get all capture policies. · Create a city tax. · Get all city taxes. · Get invoice addresses

  5. Inventory

    31

    12 read · 14 write · 5 destructive

    Get a properties list · Creates a property · Get a property · Create a unit group

  6. Operations

    9

    3 read · 5 write · 1 destructive

    Create a new maintenance window · Get list of maintenances · Create multiple maintenances · Returns number of maintenances

  7. Availability

    7

    5 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

  8. Account

    6

    2 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.

ActionWhat it doesEffectSame 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).readfinance.invoice.list101 connectors
apaleo.companies.listGet a list of companiesGet a list of companies.readcrm.company.list162 connectors
apaleo.inventory_properties.listGet a properties listGet a properties list.readcrm.location.list48 connectors
apaleo.invoices.createCreates an invoice for one specific folio.Creates an invoice for one specific folio.writefinance.invoice.create74 connectors
apaleo.companies.createCreate a companyCreate a company.writecrm.company.create142 connectors
apaleo.inventory_properties.createCreates a propertyCreates a property.writecrm.location.create41 connectors
apaleo.folios_payments.listGet a list of payments.Get a list of payments.readfinance.payment.list75 connectors
apaleo.companies.deleteDelete a companyDelete a company.destructivecrm.company.delete119 connectors
apaleo.folios_payments.createTrigger a custom payment for the folio.Trigger a custom payment for the folio.writefinance.payment.create67 connectors
apaleo.folios_refunds.listGet a list of refunds.Get a list of refunds.readfinance.refund.list23 connectors
apaleo.folios_refunds.getGet a refund by ID.Get a refund by ID.readfinance.refund.get25 connectors
apaleo.blocks.listReturns a list of blocksReturns a list of blocks.readthis 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.

  1. Readread

    Which apaleo invoices are more than 30 days overdue? Group them by customer with the total owed.

    callsapaleo.invoices.list

  2. Writewrite

    Creates an invoice for one specific folio in apaleo. Show me exactly what you will send before you save it.

    callsapaleo.invoices.create

  3. Across systemsread

    For each customer, how many invoices are in apaleo and how many tickets in ConnectWise PSA?

    callsapaleo.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, on crm.company · ConnectWise PSA

  • For each customer, how many invoices are in apaleo and how many tickets in HubSpot CRM?

    apaleo.invoices.list + hubspot_crm.tickets.list, on crm.company · HubSpot CRM

Also mapped by other connectorscrm.company 227finance.invoice 91crm.location 49
ask
ask {  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"]    } }  ]}
Example. Run it through check first: it validates the steps and prices them, and it is free.

Governance for apaleo

Destructive actions wait for a yes.

44 apaleo actions are destructive. The first 10:

  • Delete a companyapaleo.companies.delete
  • Delete a specific blockapaleo.blocks.delete
  • Deletes a folio.apaleo.folios.delete
  • Delete a certain group bookingapaleo.groups.delete
  • Delete a city taxapaleo.city_tax.delete
  • Delete a routing.apaleo.routings.delete
  • Delete a rate planapaleo.rate_plans.delete
  • Marks an invoice as paid.apaleo.invoice_actions.pay
  • Delete a maintenanceapaleo.maintenances.delete
  • Delete a custom sub-accountapaleo.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.

doapaleo.companies.deleteconfirm_policy: human

Delete a company?

intent: the user asked me to delete a company

run suspended · waiting for a named person · key apaleo-agent cannot confirm itself
In the console, or from an emailed signed link.
a key for this connector
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]" }  ]}
Illustrative. Scoped to apaleo only, capped at 2,000 upstream calls, every write confirmed, and the destructive ones approved by a named person.

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

See pricing

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 authorizationdestructive
  • apaleo.authorization_actions.expire_payment_linkExpires the pending payment link with the payment provider and updates the status to Expireddestructive
  • apaleo.authorization_actions.refreshUpdates the requested amount and extends the expiry date of the authorizationwrite
  • apaleo.authorizations.getReturns a single authorization by IDread
  • apaleo.authorizations.listReturns a list of authorizations based on the query parametersread
  • apaleo.authorizations_by_authorization.createCreates the authorization based on an existing pre-authorization created prior directly with the payment service providerwrite
  • apaleo.authorizations_by_link.createCreates a link to a payment form that allows guests to complete the authorizationwrite
  • apaleo.authorizations_by_payment_account.createCreates authorization by using a previously created payment accountwrite
  • apaleo.authorizations_by_terminal.createCreates the authorization by using the terminalwrite
  • apaleo.block_actions.amendAllow to modify a blockwrite
  • apaleo.block_actions.cancelCancel a block.destructive
  • apaleo.block_actions.confirmConfirm a block.write
  • apaleo.block_actions.cutoff_optionalApply the optional cutoff behavior for a block whose cutoff has been reached.write
  • apaleo.block_actions.releaseRelease a block.write
  • apaleo.block_actions.set_to_optionalSet a block to optional.write
  • apaleo.block_actions.start_optionalConvert an optional block to tentative when its booking window opens.write
  • apaleo.block_actions.washWash a block.destructive
  • apaleo.blocks.countReturns number of blocksread
  • apaleo.blocks.createCreates a blockwrite
  • apaleo.blocks.deleteDelete a specific blockdestructive
  • apaleo.blocks.getReturns a specific block.read
  • apaleo.blocks.listReturns a list of blocksread
  • apaleo.blocks.updateAllows to modify certain block propertieswrite
  • apaleo.bookings.createCreates a booking for one or more reservations.write
  • apaleo.bookings.create_forceCreates a booking for one or more reservations regardless of availability or restrictions.write
  • apaleo.bookings.getReturns a specific booking.read
  • apaleo.bookings.listReturns a list of all bookings, filtered by the specified parameters.read
  • apaleo.bookings.updateAllows to modify certain booking propertieswrite
  • apaleo.bookings_reservations.createAdd one or multiple reservations to an existing booking.write
  • apaleo.bookings_reservations.create_forceAdd one or multiple reservations to an existing booking regardless of availability or restrictions.write
  • apaleo.groups.countReturns number of group bookingsread
  • apaleo.groups.createCreates a group booking.write
  • apaleo.groups.deleteDelete a certain group bookingdestructive
  • apaleo.groups.getReturns a specific group booking.read
  • apaleo.groups.listReturns a list of all group bookings, filtered by the specified parameters.read
  • apaleo.groups.updateAllows to modify certain group booking propertieswrite
  • apaleo.groups_reservations.createAdd one or multiple reservations to an existing group booking using blocked inventory.write
  • apaleo.offer_index.listReturns offers with rates and availabilities for the specified range.read
  • apaleo.offers.listReturns offers for one specific stay.read
  • apaleo.payment_account_actions.cancelSets payment account status to Canceleddestructive
  • apaleo.payment_account_actions.expire_payment_linkExpires the pending payment link with the payment provider and updates the status to Expireddestructive
  • apaleo.payment_accounts.getReturns a single payment account by IDread
  • apaleo.payment_accounts.listReturns a list of payment accounts based on the query parametersread
  • apaleo.payment_accounts_by_authorization.createCreates payment account based on an existing authorization created prior externally with the Payment Service Providerwrite
  • apaleo.payment_accounts_by_link.createCreates a link to a payment form that allows guests to complete the payment accountwrite
  • apaleo.payment_accounts_by_stored_payment_method.createCreates payment account based on an existing authorization created prior externally with the Payment Service Providerwrite
  • apaleo.payment_accounts_by_terminal.createCreates payment account by using the terminalwrite
  • apaleo.rate_plan_offers.listReturns offers for a specific rate plan.read
  • apaleo.reservation_actions.add_city_taxAdds the city tax to a reservation.write
  • apaleo.reservation_actions.amendAllows you to amend the stay details of a reservationwrite
  • apaleo.reservation_actions.amend_forceAllows you to amend the stay details of a reservation regardless of availability or restrictions.write
  • apaleo.reservation_actions.assign_specific_unitAssign a specific unit to a reservation.write
  • apaleo.reservation_actions.assign_unitAssign a unit to a reservation.write
  • apaleo.reservation_actions.book_serviceBook the service for a specific reservation.write
  • apaleo.reservation_actions.book_service_forceBook the service for a specific reservation regardless of availability.write
  • apaleo.reservation_actions.cancelCancel a reservation.destructive
  • apaleo.reservation_actions.checkinCheck-in of a reservation.write
  • apaleo.reservation_actions.checkoutCheck-out of a reservation.write
  • apaleo.reservation_actions.lock_unitLock unit assignment for a reservation.write
  • apaleo.reservation_actions.noshowSet a reservation to No-show.destructive
  • apaleo.reservation_actions.remove_city_taxRemoves the city tax from a reservation.write
  • apaleo.reservation_actions.revert_checkinReverses the check-in of a reservation.write
  • apaleo.reservation_actions.unassign_unitsUnassign units from a reservation.write
  • apaleo.reservation_actions.unlock_unitUnlock unit assignment for a reservation.write
  • apaleo.reservations.countReturns the number of reservations fulfilling the criteria specified in the parameters.read
  • apaleo.reservations.getReturns a specific reservation.read
  • apaleo.reservations.listReturns a list of all reservations, filtered by the specified parameters.read
  • apaleo.reservations.updateAllows to modify certain reservation propertieswrite
  • apaleo.reservations_offers.listReturns offers for one specific reservation.read
  • apaleo.reservations_service_offers.listReturns service offers for one specific reservation.read
  • apaleo.reservations_services.deleteRemoves a service from a reservation.destructive
  • apaleo.reservations_services.listReturns the services booked for a specific reservation.read
  • apaleo.service_offers.listReturns service offers for one specific stay.read
  • apaleo.types_allowed_values.listReturns a list of values that a field of the specified type can take in the specified country.read
  • apaleo.types_sources.listReturns a list of supported sources.read
Finance62
  • apaleo.external_accounts.listReturns a list of external accounts.read
  • apaleo.finance_accounts.getReturns one account.read
  • apaleo.finance_accounts_aggregate.queryAggregates transactions by timestamp for all accounts and a given period.read
  • apaleo.finance_accounts_aggregate_daily.queryAggregates transactions by date (business day) for all accounts and a given period.read
  • apaleo.finance_accounts_aggregate_pairs_daily.queryAggregates transactions pairs by date (business day) for all accounts and a given period.read
  • apaleo.finance_accounts_child_accounts.listReturns a list of child accounts for a specified parent account.read
  • apaleo.finance_accounts_export.queryReturns transactions filtered by timestamp for a property for a given period.read
  • apaleo.finance_accounts_export_daily.queryReturns transactions filtered by date (business day) for a property for a given period.read
  • apaleo.finance_accounts_export_gross_daily.queryReturns gross transactions filtered by date (business day) for a property for a given period.read
  • apaleo.finance_accounts_schema.getReturns the chart of accounts of the subledger.read
  • apaleo.folio_actions.allowancesPosts an allowance for a foliowrite
  • apaleo.folio_actions.bulk_allowancesPosts allowances for a foliowrite
  • apaleo.folio_actions.bulk_moveMove multiple charges from one folio to another. Multiple source folios and multiple target folios can be specified.write
  • apaleo.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…write
  • apaleo.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.destructive
  • apaleo.folio_actions.charges_allowancesPosts an allowance for a chargedestructive
  • apaleo.folio_actions.charges_splitSplits a charge into two using the percent or amount provided Creates an allowance and two new charges.destructive
  • apaleo.folio_actions.closeCloses a folio.write
  • apaleo.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…write
  • apaleo.folio_actions.move_all_chargesMove all charges and transitory charges from one folio to another.destructive
  • apaleo.folio_actions.move_chargesMove multiple charges, allowances and transitory charges from one folio to another.destructive
  • apaleo.folio_actions.move_paymentsMove multiple payments from one guest/booking folio to another.write
  • apaleo.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…write
  • apaleo.folio_actions.payments_splitSplits a payment into two using the percent or amount provided Creates a refund and two new payments.write
  • apaleo.folio_actions.post_chargesPosts all unposted charges for the whole length of stay.destructive
  • apaleo.folio_actions.reopenReopens a folio.write
  • apaleo.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.destructive
  • apaleo.folios.countReturns number of folios.read
  • apaleo.folios.createCreate additional folios for a reservation, or new external folioswrite
  • apaleo.folios.deleteDeletes a folio.destructive
  • apaleo.folios.getReturns one folio.read
  • apaleo.folios.listReturns a list of all folios.read
  • apaleo.folios.updateAllows to modify certain properties of a foliowrite
  • apaleo.folios_payments.cancelCancels a pending payment link.destructive
  • apaleo.folios_payments.createTrigger a custom payment for the folio.write
  • apaleo.folios_payments.getGet a payment by ID.read
  • apaleo.folios_payments.listGet a list of payments.read
  • apaleo.folios_payments_by_authorization.createCaptures a specific amount from a pre-authorization and posts it to the folio.write
  • apaleo.folios_payments_by_link.createCreates a link to a payment form where guests can pay.write
  • apaleo.folios_payments_by_payment_account.createTrigger a payment using the payment account stored on the reservation or booking.write
  • apaleo.folios_payments_by_terminal.createTrigger a payment on a card terminal for the folio.write
  • apaleo.folios_payments_refunds.createTrigger a refund for a specific payment.destructive
  • apaleo.folios_refunds.createTrigger a refund for the folio.destructive
  • apaleo.folios_refunds.getGet a refund by ID.read
  • apaleo.folios_refunds.listGet a list of refunds.read
  • apaleo.global_accounts.listReturns a list of global accounts.read
  • apaleo.guest_accounts.listReturns a list of guest accounts.read
  • apaleo.invoice_actions.cancelCancels an invoicedestructive
  • apaleo.invoice_actions.payMarks an invoice as paid.destructive
  • apaleo.invoices.createCreates an invoice for one specific folio.write
  • apaleo.invoices.getGets invoice data.read
  • apaleo.invoices.listGets the list of all invoices (the metadata only, not the files).read
  • apaleo.invoices_preview.getGets an invoice preview for one specific folio.read
  • apaleo.routings.createCreate a routing.write
  • apaleo.routings.deleteDelete a routing.destructive
  • apaleo.routings.getGet a specific routing.read
  • apaleo.routings.listGet all routings.read
  • apaleo.routings.updateModify a routing.write
  • apaleo.types_currencies.listReturns a list of all currencies.read
  • apaleo.types_payment_methods.listReturns a list of all supported payment methods.read
  • apaleo.types_service_types.listReturns a list of all supported service types.read
  • apaleo.types_vat.listReturns a list of all VAT types.read
Rateplan43
  • apaleo.age_categories.createCreate an age categorywrite
  • apaleo.age_categories.deleteDelete an age categorydestructive
  • apaleo.age_categories.getGet an age categoryread
  • apaleo.age_categories.listGet an age category listread
  • apaleo.age_categories.updateAllows to modify properties of an age categorywrite
  • apaleo.cancellation_policies.createCreate a cancellation policy.write
  • apaleo.cancellation_policies.deleteDelete a cancellation policydestructive
  • apaleo.cancellation_policies.getGet a specific cancellation policy.read
  • apaleo.cancellation_policies.listGet all cancellation policies.read
  • apaleo.cancellation_policies.updateAllows to modify properties of a cancellation policywrite
  • apaleo.companies.createCreate a companywrite
  • apaleo.companies.deleteDelete a companydestructive
  • apaleo.companies.getGet a companyread
  • apaleo.companies.listGet a list of companiesread
  • apaleo.companies.updateModify a companywrite
  • apaleo.corporate_codes_codes.listReturns a list of corporate codes.read
  • apaleo.no_show_policies.createCreate a no-show policy.write
  • apaleo.no_show_policies.deleteDelete a no-show policydestructive
  • apaleo.no_show_policies.getGet a specific no-show policy.read
  • apaleo.no_show_policies.listGet all no-show policies.read
  • apaleo.no_show_policies.updateAllows to modify properties of a no-show policywrite
  • apaleo.promo_codes_codes.listReturns a list of promo codes.read
  • apaleo.rate_plan_actions.archiveArchive a rate planwrite
  • apaleo.rate_plans.countReturns number of rate plansread
  • apaleo.rate_plans.createCreate a rate planwrite
  • apaleo.rate_plans.deleteDelete a rate plandestructive
  • apaleo.rate_plans.delete_manyDelete multiple rate plansdestructive
  • apaleo.rate_plans.getGet a rate planread
  • apaleo.rate_plans.listGet a rate plan listread
  • apaleo.rate_plans.replaceReplace a rate planwrite
  • apaleo.rate_plans.updateAllows to patch one or more rate planswrite
  • apaleo.rate_plans_rates.countReturns the number of rates for a specific rate plan within the specifed time range.read
  • apaleo.rate_plans_rates.deleteDeletes the rates for the rate plandestructive
  • apaleo.rate_plans_rates.listReturns a list of rates.read
  • apaleo.rate_plans_rates.replaceInitializes and changes the rates for the rate plan.write
  • apaleo.rate_plans_rates.updateAllows to patch multiple rates of a single rate plan.write
  • apaleo.rateplan_services.countReturns number of services.read
  • apaleo.rateplan_services.createCreate a service.write
  • apaleo.rateplan_services.deleteDelete a servicedestructive
  • apaleo.rateplan_services.getGet a specific service.read
  • apaleo.rateplan_services.listGet all services.read
  • apaleo.rateplan_services.updateModify a service.write
  • apaleo.rates.updateAllows to patch the rates of multiple rate plans.write
Settings33
  • apaleo.capture_policies.getGet a specific capture policy.read
  • apaleo.capture_policies.listGet all capture policies.read
  • apaleo.capture_policies.updateAllows to modify properties of a capture policy.write
  • apaleo.city_tax.createCreate a city tax.write
  • apaleo.city_tax.deleteDelete a city taxdestructive
  • apaleo.city_tax.getGet a specific city tax.read
  • apaleo.city_tax.listGet all city taxes.read
  • apaleo.city_tax.updateAllows to modify city taxwrite
  • apaleo.features.getGet feature settings for a property.read
  • apaleo.features.updateAllows to modify feature settingswrite
  • apaleo.invoice_address.listGet invoice addressesread
  • apaleo.invoice_address.replaceCreate or update invoice addresses for one or more properties.write
  • apaleo.invoice_address.updateChange fields in the invoice address of one or more properties.write
  • apaleo.languages.listGet the language settings for the accountread
  • apaleo.languages.replaceReplaces the language settings for the accountwrite
  • apaleo.market_segments.countReturns number of market segments.read
  • apaleo.market_segments.createCreate a market segmentwrite
  • apaleo.market_segments.deleteDelete a market segment.destructive
  • apaleo.market_segments.getGet a market segment.read
  • apaleo.market_segments.listReturns a list of all market segments, filtered by the specified parameters.read
  • apaleo.market_segments.updateAllows to modify market segment.write
  • apaleo.properties_time_slice_definitions.createCreates a time slice definitionwrite
  • apaleo.properties_time_slice_definitions.deleteDelete a certain time slice definitiondestructive
  • apaleo.properties_time_slice_definitions.getGet a specific time slice definitionread
  • apaleo.properties_time_slice_definitions.listGet time slice definitionsread
  • apaleo.properties_time_slice_definitions.updateModifies a specific time slice definition for the propertywrite
  • apaleo.settings_properties.getGet property settingsread
  • apaleo.sub_accounts.countReturns number of sub-accounts.read
  • apaleo.sub_accounts.createCreate a sub-account.write
  • apaleo.sub_accounts.deleteDelete a custom sub-accountdestructive
  • apaleo.sub_accounts.getReturns one sub-account.read
  • apaleo.sub_accounts.listReturns a list of all sub-accounts.read
  • apaleo.sub_accounts.updateAllows to modify the name of the sub-account.write
Inventory31
  • apaleo.inventory_properties.countReturn total count of propertiesread
  • apaleo.inventory_properties.createCreates a propertywrite
  • apaleo.inventory_properties.deleteDeletes a propertydestructive
  • apaleo.inventory_properties.getGet a propertyread
  • apaleo.inventory_properties.listGet a properties listread
  • apaleo.inventory_properties.updateAllows to modify propertywrite
  • apaleo.inventory_unit_groups.countReturns number of unit groupsread
  • apaleo.inventory_unit_groups.createCreate a unit groupwrite
  • apaleo.inventory_unit_groups.deleteDelete a unit groupdestructive
  • apaleo.inventory_unit_groups.getGet a unit groupread
  • apaleo.inventory_unit_groups.listGet all unit groups, or all unit groups for a propertyread
  • apaleo.inventory_unit_groups.replaceReplace a unit groupwrite
  • apaleo.inventory_units.countReturns number of unitsread
  • apaleo.inventory_units.createCreate a unitwrite
  • apaleo.inventory_units.deleteDelete a unitdestructive
  • apaleo.inventory_units.getGet a unitread
  • apaleo.inventory_units.listGet a units listread
  • apaleo.inventory_units.updateAllows to patch unitwrite
  • apaleo.inventory_units.update_manyAllows to patch one or more unitswrite
  • apaleo.property_actions.archiveArchive a propertywrite
  • apaleo.property_actions.cloneClones a propertywrite
  • apaleo.property_actions.resetReset a test property and delete all transactional datadestructive
  • apaleo.property_actions.set_liveMove property to livewrite
  • apaleo.types_countries.listReturns a list of supported countries.read
  • apaleo.unit_actions.archiveArchive a unitwrite
  • apaleo.unit_attributes.createCreate a unit attributewrite
  • apaleo.unit_attributes.deleteDeletes unit attributedestructive
  • apaleo.unit_attributes.getGet unit attribute by idread
  • apaleo.unit_attributes.listGet unit attribute listread
  • apaleo.unit_attributes.updateAllows to modify unit attributewrite
  • apaleo.units_bulk.createCreate multiple unitswrite
Operations9
  • apaleo.maintenances.countReturns number of maintenancesread
  • apaleo.maintenances.createCreate a new maintenance windowwrite
  • apaleo.maintenances.deleteDelete a maintenancedestructive
  • apaleo.maintenances.getGet a specific maintenanceread
  • apaleo.maintenances.listGet list of maintenancesread
  • apaleo.maintenances.updateModify a maintenancewrite
  • apaleo.maintenances_bulk.createCreate multiple maintenanceswrite
  • apaleo.night_audit.replacePerforms the night audit for one property.write
  • apaleo.units_condition.replaceChange the condition of a unitwrite
Availability7
  • apaleo.availability_properties.getGet house-level overbooking for a given property.read
  • apaleo.availability_properties.updateAllows to modify availability of a given property.write
  • apaleo.availability_reservations_units.listGet a list of all available units for a reservationread
  • apaleo.availability_services.listGet a list of all available services in a propertyread
  • apaleo.availability_unit_groups.listGet a list of all available unit groups in a propertyread
  • apaleo.availability_unit_groups.updateAllows to modify the unit group availabilitywrite
  • apaleo.availability_units.listGet a list of all available units in a propertyread
Account6
  • apaleo.account_actions_current.set_liveMove the account to live.write
  • apaleo.account_actions_current.suspendSuspend the account.destructive
  • apaleo.accounts.createCreates an account with an admin user.write
  • apaleo.accounts.listReturns all accounts.read
  • apaleo.accounts_current.getReturns the current account.read
  • apaleo.accounts_current.replaceReplaces an existing account.write
Reports5
  • apaleo.reports_arrivals.getReturns the number of arrivals in a month for a propertyread
  • apaleo.reports_company_invoices_vat.listReturns the list of company invoices with information on the company and the VAT breakdownread
  • apaleo.reports_ordered_services.listList of ordered servicesread
  • apaleo.reports_property_performance.getReturns the property performance report which includes the ADR and the RevPAR for each business day.read
  • apaleo.reports_revenues.getReturns the revenues report for a propertyread
Logs4
  • apaleo.logs_booking_reservation.listReturns reservation change log entries sorted by the timestampread
  • apaleo.logs_finance_folio.listReturns folio change log entries sorted by the timestamp.read
  • apaleo.logs_finance_night_audit.listReturns the night audit logs.read
  • apaleo.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.