Connectors · Industry
Guesty MCP server for AI agents.
actionlake is an MCP gateway: one remote MCP server that connects Claude and other MCP clients to Guesty and the rest of your systems. It gives your agent 357 Guesty actions (157 reads, 155 writes and 45 that wait for a confirmation) and holds the Guesty credential itself, so the agent never does. It paces Guesty'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: "guesty.owners.list", intent: "check which Guesty account is connected"}# Get list of owners · read · 1 upstream call- 357actionsin one signed file
- 157readlook, never change
- 155writecreate and update
- 45wait for a yesdestructive, confirmed first
Set up
Connect Guesty 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 Guesty.
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_idGuesty Open API client IDclient_secretGuesty Open API client secret (shown once when the key is created)
account { op: "connections.requirements", service: "guesty" } # 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: "guesty.owners.list" }# get list of owners · read · 1 upstream callcheck { action: "guesty.owners.create", input: { … } }# free: inputs, permissions, cost and confirmations, nothing sent
Guesty 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
- 15 calls a second, 120 a minute and 5,000 an hour, per connection
- API covered
- Guesty Open API v1 (OpenAPI 3.0.3, per-operation definitions)
open-api.guesty.com/v1 - Built from
- Guesty's documentation, read 23 October 2026open-api-docs.guesty.comopen-api-docs.guesty.com
- Service file
- Version 1.0.0, signed (Ed25519)
- Cached reads
- 156 of 157 reads, for up to 5 minutes; a write clears what it affects
- Shared entities
- 6, so ask can line Guesty up with your other systems
- Data
- Processed and stored in Sydney, Australia. No US region yet
Capabilities
What an AI agent can do in Guesty.
357 actions in 110 areas. Every one carries its effect, so a key can allow the reads and hold the rest.
- 157readlook, never change
- 155writecreate and update
- 45destructivewait for a confirmation
Reservations
202 read · 17 write · 1 destructive
Create a Reservation Without a Quote · Search Reservations · Create a reservation from quote · Create a mid-stay
Listings
105 read · 4 write · 1 destructive
List listings · Create a listing · Get a listing · Update a listing
Legacy reservations
92 read · 6 write · 1 destructive
Create an invoice item · Create a reservation · Email a reservation list · List reservations
Payments
92 read · 3 write · 4 destructive
Create payment · Get payment · Record chargeback · List reservation payments
Rate plans
93 read · 5 write · 1 destructive
Create a Rate Plan · Get All Rate Plans · Get a Rate Plan by ID · Assign Properties to a Rate Plan
Spaces
84 read · 3 write · 1 destructive
Add space to unit-type (Create Space) · Edit space beds · List bed-types · Retrieve spaces for a complex
Complexes
72 read · 4 write · 1 destructive
Create a new complex · Get a list of all complexes · Assign propertyIds to a complex · Get complex
Imported calendars
72 read · 4 write · 1 destructive
Import a calendar · Get imported calendars list · Get imported calendar by id · Unsync imported calendar
102 more areas · 278 actions
- Owners 7
- Payment providers 6
- Saved replies 6
- Webhooks 6
- Account custom fields 5
- Calendar listings 5
- Contacts 5
- Exported calendars 5
- External links 5
- Listing groups 5
- Property photos 5
- Reviews 5
- Tasks 5
- Users 5
- Views 5
- Additional fees 4
- Address 4
- Basic fees listings 4
- Custom fields 4
- Expenses 4
- Guests 4
- Integrations 4
- Legacy reservation custom fields 4
- Legacy reservation payments 4
- Listings custom fields 4
- Marketing description sets 4
- Owners documents 4
- Payouts owners 4
- Promotions 4
- Quotes 4
- Reservations comments 4
- Reservations custom fields 4
- Room photos 4
- Vendors 4
- Virtual tour 4
- Business models 3
- Channel commissions 3
- Channel commissions unit type 3
- Conversations 3
- Guest folio 3
- Marketing languages 3
- Owners reservations 3
- Ownerships 3
- Payment methods 3
- Price adjustments 3
- Recorded payments 3
- Roles 3
- Taxes 3
- Additional fees account 2
- Additional fees listing 2
- Amenities 2
- Ari calendar 2
- Channel commission account 2
- Channel commission listings 2
- Channel commissions account 2
- Channel commissions unit type level configurations 2
- Conversations posts 2
- Disbursements 2
- Expenses attachments 2
- Group reservations 2
- Guest payment methods 2
- House rules 2
- House rules unit type 2
- Journal entries 2
- Listing expectations 2
- Listing financials 2
- Marketing fields 2
- Owner working capital 2
- Rate strategies 2
- Reviews custom channels 2
- Taxes level configurations 2
- Taxes unit type 2
- User scope 2
- Account brands 1
- Accounts 1
- Airbnb resolutions 1
- Amenities groups 1
- Amenities supported 1
- Basic fees listings channels 1
- Block logs 1
- Categories 1
- Channel commissions reservations 1
- Guest app modules 1
- Guest codes 1
- Inquiries 1
- Invoice items 1
- Marketing channels 1
- Marketing fields channels 1
- Marketing fields description sets 1
- Owner statements 1
- Payment transactions reports 1
- Payment transactions reports payouts reconciliation 1
- Property logs 1
- Recorded payment refunds 1
- Reservation balances 1
- Reservation logs 1
- Reservations reports 1
- Taxes account 1
- Transactions expenses 1
- Transactions expenses by listing 1
- Transactions owner charges 1
- Transactions owner charges by listing 1
Top actions
The Guesty API, shaped for agents.
The ids your agent types, what each does, and the one name it shares with other systems. 49 of Guesty's 49 action names are shared with at least one other connector, so an agent learns them once.
| Action | What it does | Effect | Same name in |
|---|---|---|---|
guesty.owners.listGet list of owners | Get list of owners. | read | crm.contact.list177 connectors |
guesty.users.listList all users | List all users. | read | identity.user.list474 connectors |
guesty.listings.listList listings | List listings. | read | crm.location.list48 connectors |
guesty.owners.createCreate an owner | Create an owner. | write | crm.contact.create161 connectors |
guesty.expenses.listGet expenses with filtering | Get expenses with filtering. | read | finance.expense.list40 connectors |
guesty.guests.listGet guests list | Get guests list. | read | commerce.customer.list45 connectors |
guesty.users.createCreate user | Create user. | write | identity.user.create262 connectors |
guesty.listings.createCreate a listing | Create a listing. | write | crm.location.create41 connectors |
guesty.owners.deleteDelete owner | Delete owner. | destructive | crm.contact.delete147 connectors |
guesty.expenses.createCreate expense | Create expense. | write | finance.expense.create36 connectors |
guesty.guests.createCreate guest | Create guest. | write | commerce.customer.create43 connectors |
guesty.payments.createCreate payment | Create payment. | write | finance.payment.create67 connectors |
Try it
Prompts to paste into Claude.
Each one names the Guesty actions it will call, so you know what it reads and what it changes before you send it.
- Readread
Find the Guesty contacts with no email address, so we can clean them up.
calls
guesty.owners.list - Writewrite
Create an owner in Guesty. Show me exactly what you will send before you save it.
calls
guesty.owners.create - Across systemsread
Which contacts are in both Guesty and HaloPSA, and how many are in only one of them?
calls
guesty.owners.listhalopsa.users.list
Across your systems
Guesty, joined to the rest of your business.
One ask fetches from Guesty and another system, joins the rows on the same customer on our side, and hands your agent the answer, not every row.
Which contacts are in both Guesty and HaloPSA, and how many are in only one of them?
guesty.owners.list+halopsa.users.list, oncrm.contact· HaloPSAWhich contacts are in both Guesty and NetSuite, and how many are in only one of them?
guesty.owners.list+netsuite.views.contacts, oncrm.contact· NetSuite
identity.user 517crm.contact 192commerce.customer 51crm.location 49asset.supplier 38finance.expense 26ask { intent: "which contacts are in both Guesty and HaloPSA, and how many are in only one of them", steps: [ { action: "guesty.owners.list", as: "people", input: {}, limit: 100, max_pages: 5 }, { action: "halopsa.users.list", as: "people2", input: {}, limit: 100, max_pages: 5 }, { join: { left: "people", right: "people2", on: "crm.contact", group_by: "people.email", select: ["people.email", "count(people2.id) as in_halopsa"] } } ]}Governance for Guesty
Destructive actions wait for a yes.
45 Guesty actions are destructive. The first 10:
- Delete owner
guesty.owners.delete - Delete user
guesty.users.delete - Delete a listing
guesty.listings.delete - Delete a task
guesty.tasks.delete - Request cancellation of a channel reservation
guesty.reservations.request_cancellation - Charge payment
guesty.payments.pay - Assign roles
guesty.roles.assign - Delete tax
guesty.taxes.delete - Delete a view
guesty.views.delete - Remove space from unit-type
guesty.spaces.remove
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 owner?
intent: the user asked me to delete owner
account { op: "keys.create", name: "guesty-agent", allowed_actions: ["guesty.*"], cap_calls: 2000, confirm_policy: "human_for_writes", approval_rules: [ { match: "guesty.owners.delete", approver: "[email protected]" }, { match: "guesty.users.delete", approver: "[email protected]" }, { match: "guesty.listings.delete", approver: "[email protected]" } ]}Cost
What Guesty costs on actionlake.
Every Guesty action is one upstream call, the only thing actionlake bills. Searching, check, cost, account and any call Guesty 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 357 Guesty actions
- 357actions pageeach page of a long list is one call
- 156reads can be cacheda cache hit costs nothing
- 100,000calls a month, freepaid plans from US$49 a month for 250,000
Action index
Every Guesty action.
357 actions by area: the id your agent calls, what it does, and its effect.
Reservations20
guesty.reservations.createCreate a Reservation Without a Quotewriteguesty.reservations.create_from_quoteCreate a reservation from quotewriteguesty.reservations.create_mid_stayCreate a mid-staywriteguesty.reservations.searchSearch Reservationsreadguesty.reservations.approveApprove a channel reservationwriteguesty.reservations.create_owner_reservationCreate a confirmed owner reservationwrite- and 14 more in this area
Listings10
guesty.listings.createCreate a listingwriteguesty.listings.getGet a listingreadguesty.listings.listList listingsreadguesty.listings.updateUpdate a listingwriteguesty.listings.deleteDelete a listingdestructiveguesty.listings.email_exportEmail a listings reportwrite- and 4 more in this area
Legacy reservations9
guesty.legacy_reservations.add_invoice_itemsCreate an invoice itemwriteguesty.legacy_reservations.createCreate a reservationwriteguesty.legacy_reservations.email_exportEmail a reservation listwriteguesty.legacy_reservations.listList reservationsreadguesty.legacy_reservations.approveApprove a pending booking requestwriteguesty.legacy_reservations.declineDecline a pending booking requestwrite- and 3 more in this area
Payments9
guesty.payments.chargebackRecord chargebackwriteguesty.payments.createCreate paymentwriteguesty.payments.getGet paymentreadguesty.payments.listList reservation paymentsreadguesty.payments.cancelCancel paymentdestructiveguesty.payments.captureCapture authorization holddestructive- and 3 more in this area
Rate plans9
guesty.rate_plans.createCreate a Rate Planwriteguesty.rate_plans.getGet a Rate Plan by IDreadguesty.rate_plans.init_assign_listingsAssign Properties to a Rate Planwriteguesty.rate_plans.listGet All Rate Plansreadguesty.rate_plans.deleteRemove a Rate Plandestructiveguesty.rate_plans.init_unassign_listingsUnassign Properties from a Rate Planwrite- and 3 more in this area
Spaces8
guesty.spaces.addAdd space to unit-type (Create Space)writeguesty.spaces.editEdit space bedswriteguesty.spaces.list_bed_typesList bed-typesreadguesty.spaces.list_by_complexRetrieve spaces for a complexreadguesty.spaces.list_by_unit_typeRetrieve spaces for a unit-typereadguesty.spaces.list_room_typesList room-typesread- and 2 more in this area
Complexes7
guesty.complexes.assignAssign propertyIds to a complexwriteguesty.complexes.createCreate a new complexwriteguesty.complexes.getGet complexreadguesty.complexes.listGet a list of all complexesreadguesty.complexes.deleteDelete complexdestructiveguesty.complexes.unassignUn-Assign propertyIds from a complexwrite- and 1 more in this area
Imported calendars7
guesty.imported_calendars.createImport a calendarwriteguesty.imported_calendars.getGet imported calendar by idreadguesty.imported_calendars.listGet imported calendars listreadguesty.imported_calendars.pauseUnsync imported calendarwriteguesty.imported_calendars.deleteDelete imported calendardestructiveguesty.imported_calendars.resumeResume imported calendar syncwrite- and 1 more in this area
Owners7
guesty.owners.createCreate an ownerwriteguesty.owners.getGet ownerreadguesty.owners.listGet list of ownersreadguesty.owners.updateUpdate ownerwriteguesty.owners.create_bulkCreate multiple owners with assigned listingswriteguesty.owners.create_guestCreate owner guestwrite- and 1 more in this area
Payment providers6
guesty.payment_providers.assign_listingsAssign listings to Stripe accountwriteguesty.payment_providers.getGet payment provider by idreadguesty.payment_providers.get_by_listingGet payment provider by listing idreadguesty.payment_providers.get_defaultGet default payment providerreadguesty.payment_providers.statsGet provider statsreadguesty.payment_providers.summaryGet summaryread
Saved replies6
guesty.saved_replies.createCreate a saved replywriteguesty.saved_replies.getGet a saved replyreadguesty.saved_replies.listList saved repliesreadguesty.saved_replies.list_by_listingList saved replies by listingreadguesty.saved_replies.deleteDelete a saved replydestructiveguesty.saved_replies.updateUpdate a saved replywrite
Webhooks6
guesty.webhooks.createCreate a webhook subscriptionwriteguesty.webhooks.getGet a Webhook subscriptionreadguesty.webhooks.get_secretGet webhook secretreadguesty.webhooks.listList webhook subscriptionsreadguesty.webhooks.deleteDelete a webhook subscriptiondestructiveguesty.webhooks.updateUpdate a webhook subscriptionwrite
Account custom fields5
guesty.account_custom_fields.createCreate custom field configurationswriteguesty.account_custom_fields.getGet a custom field configurationreadguesty.account_custom_fields.listList custom field configurationsreadguesty.account_custom_fields.updateUpdate custom field configurationswriteguesty.account_custom_fields.deleteDelete a custom field configurationdestructive
Calendar listings5
guesty.calendar_listings.getRetrieve the calendar for a single listingreadguesty.calendar_listings.get_minifiedRetrieve the optimized calendar for a single listingreadguesty.calendar_listings.listRetrieve calendars for multiple listingsreadguesty.calendar_listings.updateUpdate the calendar for a single listingwriteguesty.calendar_listings.update_manyUpdate calendar for multiple listingswrite
Contacts5
guesty.contacts.createCreate a new contactwriteguesty.contacts.getGet a specific contactreadguesty.contacts.listList all contactsreadguesty.contacts.updateUpdate a contactwriteguesty.contacts.deleteDelete a contactdestructive
Exported calendars5
guesty.exported_calendars.createCreate exported calendar linkwriteguesty.exported_calendars.getGet a specific exported calendarreadguesty.exported_calendars.listGet active exported calendarreadguesty.exported_calendars.updateUpdate exported calendarwriteguesty.exported_calendars.deleteDelete exported calendardestructive
External links5
guesty.external_links.createCreate external linkwriteguesty.external_links.getList external linksreadguesty.external_links.orderReorder external linkswriteguesty.external_links.updateUpdate external linkwriteguesty.external_links.deleteDelete external linkdestructive
Listing groups5
guesty.listing_groups.createCreate a new groupwriteguesty.listing_groups.deleteDelete groupdestructiveguesty.listing_groups.getGet group by IDreadguesty.listing_groups.listList groupsreadguesty.listing_groups.patchUpdate groupwrite
Property photos5
guesty.property_photos.createAdd new photos to propertywriteguesty.property_photos.getRetrieve all photos for a given listingreadguesty.property_photos.orderChange the photo order on a propertywriteguesty.property_photos.updateReplace photo or edit caption without changing order or room assignmentwriteguesty.property_photos.deleteDelete a Photodestructive
Reviews5
guesty.reviews.create_custom_channel_reviewPublish a custom-channel reviewwriteguesty.reviews.getRetrieve a reviewreadguesty.reviews.listRetrieve reviews sorted descending by last update timereadguesty.reviews.listings_averageRetrieve Average reviews score by Listings IDsreadguesty.reviews.replyPublish review reply to channelwrite
Tasks5
guesty.tasks.createCreate a new taskwriteguesty.tasks.getGet a specific taskreadguesty.tasks.listGet tasks listreadguesty.tasks.updateUpdate a taskwriteguesty.tasks.deleteDelete a taskdestructive
Users5
guesty.users.createCreate userwriteguesty.users.getGet userreadguesty.users.listList all usersreadguesty.users.updateUpdate userwriteguesty.users.deleteDelete userdestructive
Views5
guesty.views.createCreate a viewwriteguesty.views.getGet a saved viewreadguesty.views.listList saved viewsreadguesty.views.updateUpdate a saved viewwriteguesty.views.deleteDelete a viewdestructive
Additional fees4
guesty.additional_fees.add_inquiry_upsellsAdd upsell fee to inquiry rate plans quotes [Beta]writeguesty.additional_fees.add_quote_amountCalculate additional fee amount for quote [Beta]writeguesty.additional_fees.deleteDelete existing additional feedestructiveguesty.additional_fees.patchUpdate existing additional feewrite
Address4
guesty.address.geocodeGeocode Location by Full Addressreadguesty.address.getRetrieve Property Addressreadguesty.address.updateUpdate Property Addresswriteguesty.address.update_complexUpdate Complex Addresswrite
Basic fees listings4
guesty.basic_fees_listings.deleteDelete listing basic feesdestructiveguesty.basic_fees_listings.getGet listing basic feesreadguesty.basic_fees_listings.listList basic fees for listingsreadguesty.basic_fees_listings.updateUpdate listing basic feeswrite
Custom fields4
guesty.custom_fields.deleteDelete Custom Field from propertydestructiveguesty.custom_fields.getGet Custom Field from Selected Propertyreadguesty.custom_fields.listList Custom Fields per Propertyreadguesty.custom_fields.updateUpdate property Custom Fieldswrite
Expenses4
guesty.expenses.cancelCancel expensedestructiveguesty.expenses.createCreate expensewriteguesty.expenses.getGet expense by IDreadguesty.expenses.listGet expenses with filteringread
Guests4
guesty.guests.createCreate guestwriteguesty.guests.getGet guest by idreadguesty.guests.listGet guests listreadguesty.guests.updateUpdate guestwrite
Integrations4
guesty.integrations.createCreate an integrationwriteguesty.integrations.getGet an integrationreadguesty.integrations.listList integrationsreadguesty.integrations.updateUpdate an integrationwrite
Legacy reservation custom fields 4Legacy reservation payments 4Listings custom fields 4Marketing description sets 4Owners documents 4Payouts owners 4Promotions 4Quotes 4Reservations comments 4Reservations custom fields 4Room photos 4Vendors 4Virtual tour 4Business models 3Channel commissions 3Channel commissions unit type 3Conversations 3Guest folio 3Marketing languages 3Owners reservations 3Ownerships 3Payment methods 3Price adjustments 3Recorded payments 3Roles 3Taxes 3Additional fees account 2Additional fees listing 2Amenities 2Ari calendar 2Channel commission account 2Channel commission listings 2Channel commissions account 2Channel commissions unit type level configurations 2Conversations posts 2Disbursements 2Expenses attachments 2Group reservations 2Guest payment methods 2House rules 2House rules unit type 2Journal entries 2Listing expectations 2Listing financials 2Marketing fields 2Owner working capital 2Rate strategies 2Reviews custom channels 2Taxes level configurations 2Taxes unit type 2User scope 2Account brands 1Accounts 1Airbnb resolutions 1Amenities groups 1Amenities supported 1Basic fees listings channels 1Block logs 1Categories 1Channel commissions reservations 1Guest app modules 1Guest codes 1Inquiries 1Invoice items 1Marketing channels 1Marketing fields channels 1Marketing fields description sets 1Owner statements 1Payment transactions reports 1Payment transactions reports payouts reconciliation 1Property logs 1Recorded payment refunds 1Reservation balances 1Reservation logs 1Reservations reports 1Taxes account 1Transactions expenses 1Transactions expenses by listing 1Transactions owner charges 1Transactions owner charges by listing 1
This index shows a sample of each area. All 357 actions, with their inputs and prices, are in the catalogue, which a free sandbox key can search.
Questions
The Guesty MCP server, answered.
Is there a Guesty MCP server for Claude?
Yes. actionlake is an MCP gateway: a remote MCP server that gives Claude, or another MCP client, 357 Guesty actions across reservations, listings, legacy reservations and payments, through the same eight tools it uses for every other connector. actionlake is independent; it is not made or endorsed by Guesty.
What do I need to connect Guesty?
Guesty Open API client ID and Guesty Open API client secret (shown once when the key is created). The free call account { op: "connections.requirements", service: "guesty" } lists exactly what to paste.
Can an AI agent delete or change things in Guesty?
Only if its key allows it, and only with an explicit confirmation. 45 Guesty actions are destructive, including delete owner, delete user and delete a listing. 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 Guesty API limit?
actionlake paces every call to the limits in the Guesty service file: 15 calls a second, 120 a minute and 5,000 an hour per connection. Repeated reads are answered from cache (156 Guesty actions can be), which never reaches Guesty.
What does a Guesty action cost?
One upstream call, the only unit actionlake bills. A list that pages bills one call per page (357 Guesty actions page). Cache hits, searches, dry runs and calls Guesty 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 Guesty API does it cover?
The Guesty Open API v1 (OpenAPI 3.0.3, per-operation definitions) at open-api.guesty.com/v1. It is built from Guesty's documentation as read on 23 October 2026. 357 actions in 110 areas, each one in the signed service file (version 1.0.0).
Can I combine Guesty with my other systems?
Yes. ask joins Guesty to HaloPSA or NetSuite on the same customer and returns the answer rather than every row. Guesty maps crm.contact, which 192 other connectors also map.
Does actionlake keep my Guesty 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 Guesty 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 Guesty today.
Start free - 100,000 calls/month, no card. No signup. Hard caps on every key. Cached answers are free.