Connectors · Email & messaging
Gandi MCP server for AI agents.
actionlake is an MCP gateway: one remote MCP server that connects Claude and other MCP clients to Gandi and the rest of your systems. It gives your agent 218 Gandi actions (95 reads, 91 writes and 32 that wait for a confirmation) and holds the Gandi credential itself, so the agent never does. It paces Gandi'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: "gandi.mailboxes.list", intent: "check which Gandi account is connected"}# List mailboxes · read · 1 upstream call- 218actionsin one signed file
- 95readlook, never change
- 91writecreate and update
- 32wait for a yesdestructive, confirmed first
Set up
Connect Gandi 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 Gandi.
Bearer token. No consent screen: your agent can connect it for you, but the key then passes through your chat. To keep it out of the model's context, paste it in the console instead. actionlake stores what you paste write-only, sealed under your tenant's key.
access_tokenGandi Personal Access Token (Gandi Admin > Account settings > Authentication options > Personal Access Token)environmentYour Gandi environment
account { op: "connections.requirements", service: "gandi" } # 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: "gandi.mailboxes.list" }# list mailboxes · read · 1 upstream callcheck { action: "gandi.mailboxes.create", input: { … } }# free: inputs, permissions, cost and confirmations, nothing sent
Gandi at a glance
- Sign-in
- Bearer token. No consent screen: your agent can connect it for you, but the key then passes through your chat. To keep it out of the model's context, paste it in the console instead.
- You provide
access_token- Setup fields
environment- Limits we pace to
- 1,000 calls a minute, per connection
- API covered
- Gandi Public API v5 (RAML reference rendered at api.gandi.net/docs), at your Gandi instance's API base URL, which you enter when connecting
- Built from
- Gandi's documentation, read 23 October 2026api.gandi.netapi.gandi.netapi.gandi.net
- Service file
- Version 1.0.0, signed (Ed25519)
- Cached reads
- 90 of 95 reads, for up to 5 minutes; a write clears what it affects
- Shared entities
- 3, so ask can line Gandi up with your other systems
- Data
- Processed and stored in Sydney, Australia. No US region yet
Capabilities
What an AI agent can do in Gandi.
218 actions in 56 areas. Every one carries its effect, so a key can allow the reads and hold the rest.
- 95readlook, never change
- 91writecreate and update
- 32destructivewait for a confirmation
Domains
156 read · 6 write · 3 destructive
Create a new domain · List domains · Renew a Domain · Restore a Domain
Livedns records
143 read · 8 write · 3 destructive
List records associated with a domain · Creates a new record · Get a single single record with its name and type · Update a record (RRset) in the zone records linked to a domain
Certificates
104 read · 5 write · 1 destructive
List certificates · Create a new certificate · Certificate details · Update a certificate
Email mailboxes
82 read · 4 write · 2 destructive
Create a new mailbox · List mailboxes · Renew a mailbox · Renew all mailboxes
Webhosting instances
73 read · 3 write · 1 destructive
Create Web Hosting instances · List Web Hosting instances · Instance details · Usage metrics
Domain transfers
62 read · 4 write · 0 destructive
Check transfer availability · Transfer a domain to Gandi · Resend the transfer FOA emails · Get transfer status
Linkedzone zones
62 read · 3 write · 1 destructive
Create a zone · List linked zones · Deploy or undeploy a zone · Linked zone details
Mailboxes
62 read · 3 write · 1 destructive
List mailboxes · Create new mailbox · Get mailbox detail · Update mailbox
48 more areas · 146 actions
- Organizations 6
- Templates 6
- Webhosting vhosts 6
- Acme subscriptions 5
- Certificate tags 5
- Domain glue records 5
- Domain tags 5
- Domain web redirections 5
- Livedns dnssec keys 5
- Livedns domains 5
- Livedns snapshots 5
- Organization customers 5
- Domain dnskeys 4
- Email forwards 4
- Email slots 4
- Linkedzone domains 4
- Livedns tsig keys 4
- Mailbox forwards 4
- Acme domains 3
- Comments 3
- Domain contacts 3
- Domain dnssec 3
- Domain owner changes 3
- Livedns axfr secondaries 3
- Livedns domain tsig keys 3
- Mailbox domains 3
- Acme accounts 2
- Billing accounts 2
- Certificate packages 2
- Domain claims 2
- Domain livedns 2
- Domain nameservers 2
- Email migrations 2
- Email offers 2
- Linkedzone tasks 2
- Mailbox products 2
- Mailbox slots 2
- TLDS 2
- Webhosting applications 2
- Access tokens 1
- Acme catalog 1
- Acme quotes 1
- Billing prices 1
- Livedns nameservers 1
- Livedns record types 1
- Mailbox quotas 1
- Template dispatches 1
- Users 1
Top actions
The Gandi API, shaped for agents.
The ids your agent types, what each does, and the one name it shares with other systems. 27 of Gandi's 28 action names are shared with at least one other connector, so an agent learns them once.
| Action | What it does | Effect | Same name in |
|---|---|---|---|
gandi.users.meGet user information | Get user information. | read | identity.current_user.get307 connectors |
gandi.mailboxes.listList mailboxes | List mailboxes. | read | comm.mailbox.list18 connectors |
gandi.mailboxes.createCreate new mailbox | Create new mailbox. | write | comm.mailbox.create15 connectors |
gandi.livedns_records.listList records associated with a domain | List records associated with a domain. | read | infra.dns_record.list12 connectors |
gandi.livedns_snapshots.listList available snapshots | List available snapshots. | read | infra.snapshot.list12 connectors |
gandi.livedns_records.createCreates a new record | Creates a new record. | write | infra.dns_record.create11 connectors |
gandi.livedns_domains.listList of domains handled by LiveDNS | List of domains handled by LiveDNS. | read | infra.dns_zone.list10 connectors |
gandi.livedns_snapshots.createCreates a new snapshot | Creates a new snapshot. | write | infra.snapshot.create9 connectors |
gandi.mailboxes.deleteDelete mailbox | Delete mailbox. | destructive | comm.mailbox.delete13 connectors |
gandi.livedns_domains.createAdd a new domain to LiveDNS | Add a new domain to LiveDNS. | write | infra.dns_zone.create8 connectors |
gandi.certificates.listList certificates | List certificates. | read | security.certificate.list22 connectors |
gandi.certificates.createCreate a new certificate | Create a new certificate. | write | security.certificate.create15 connectors |
Try it
Prompts to paste into Claude.
Each one names the Gandi actions it will call, so you know what it reads and what it changes before you send it.
- Readread
List mailboxes in Gandi and tell me what stands out.
calls
gandi.mailboxes.list - Writewrite
Create new mailbox in Gandi. Show me exactly what you will send before you save it.
calls
gandi.mailboxes.create
Governance for Gandi
Destructive actions wait for a yes.
32 Gandi actions are destructive. The first 10:
- Delete mailbox
gandi.mailboxes.delete - Delete record with {rrset_name} and {rrset_type}
gandi.livedns_records.delete - Delete a snapshot
gandi.livedns_snapshots.delete - Delete a forwarding address
gandi.mailbox_forwards.delete - Domain delete
gandi.domains.delete - Revoke a certificate
gandi.certificates.revoke - Delete an organization
gandi.organizations.delete - Delete a DNSSEC Key
gandi.domain_dnskeys.delete - Disable DNSSEC for a domain
gandi.domain_dnssec.disable - Remove all tags from this domain
gandi.domain_tags.delete_all
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 mailbox?
intent: the user asked me to delete mailbox
account { op: "keys.create", name: "gandi-agent", allowed_actions: ["gandi.*"], cap_calls: 2000, confirm_policy: "human_for_writes", approval_rules: [ { match: "gandi.mailboxes.delete", approver: "[email protected]" }, { match: "gandi.livedns_records.delete", approver: "[email protected]" }, { match: "gandi.livedns_snapshots.delete", approver: "[email protected]" } ]}Cost
What Gandi costs on actionlake.
Every Gandi action is one upstream call, the only thing actionlake bills. Searching, check, cost, account and any call Gandi 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 218 Gandi actions
- 218actions pageeach page of a long list is one call
- 90reads can be cacheda cache hit costs nothing
- 100,000calls a month, freepaid plans from US$49 a month for 250,000
Action index
Every Gandi action.
218 actions by area: the id your agent calls, what it does, and its effect.
Domains15
gandi.domains.check_availabilityDomain availabilityreadgandi.domains.createCreate a new domainwritegandi.domains.deleteDomain deletedestructivegandi.domains.getDomain detailsreadgandi.domains.get_create_statusDomain Creation Statusreadgandi.domains.get_renewal_infoDomain renewal informationreadgandi.domains.get_restore_infoDomain restore informationreadgandi.domains.listList domainsreadgandi.domains.renewRenew a Domainwritegandi.domains.resend_reachabilityResend reachability emailwritegandi.domains.reset_authinfoReset of authorization codewritegandi.domains.respond_transfer_outAccept or decline a transfer to another registrardestructivegandi.domains.restoreRestore a Domainwritegandi.domains.update_autorenewEdit autorenew statuswritegandi.domains.update_transfer_lockTransfer lock/unlockdestructive
Livedns records14
gandi.livedns_records.add_verificationAdd a verification DNS recordwritegandi.livedns_records.createCreates a new recordwritegandi.livedns_records.create_by_nameCreate a new record whose name is defined by the pathwritegandi.livedns_records.create_by_name_and_typeCreate a new record whose name and type are defined by the pathwritegandi.livedns_records.deleteDelete record with {rrset_name} and {rrset_type}destructivegandi.livedns_records.delete_allDelete all recordsdestructivegandi.livedns_records.delete_by_nameDelete all records named {rrset_name}destructivegandi.livedns_records.getGet a single single record with its name and typereadgandi.livedns_records.listList records associated with a domainreadgandi.livedns_records.list_by_nameZone records list {rrset_name} linked to a domainreadgandi.livedns_records.replaceOverwrites a single record with {rrset_name} and {rrset_type}writegandi.livedns_records.replace_by_nameReplace all records named {rrset_name}writegandi.livedns_records.replace_zoneReplace the whole zone with new recordswritegandi.livedns_records.updateUpdate a record (RRset) in the zone records linked to a domainwrite
Certificates10
gandi.certificates.createCreate a new certificatewritegandi.certificates.getCertificate detailsreadgandi.certificates.get_dcv_paramsRetrieve DCV parametersreadgandi.certificates.get_dcv_params_for_certificateRetrieve DCV parametersreadgandi.certificates.listList certificatesreadgandi.certificates.renewRenew a certificatewritegandi.certificates.resend_dcvResend the DCVwritegandi.certificates.revokeRevoke a certificatedestructivegandi.certificates.updateUpdate a certificatewritegandi.certificates.update_dcv_methodUpdate the DCV methodwrite
Email mailboxes8
gandi.email_mailboxes.createCreate a new mailboxwritegandi.email_mailboxes.deleteDelete a mailboxdestructivegandi.email_mailboxes.getRetrieve a mailboxreadgandi.email_mailboxes.listList mailboxesreadgandi.email_mailboxes.purgePurge a mailboxdestructivegandi.email_mailboxes.renewRenew a mailboxwritegandi.email_mailboxes.renew_allRenew all mailboxeswritegandi.email_mailboxes.updateUpdate a mailboxwrite
Webhosting instances7
gandi.webhosting_instances.createCreate Web Hosting instanceswritegandi.webhosting_instances.deleteDelete webhosting instancesdestructivegandi.webhosting_instances.getInstance detailsreadgandi.webhosting_instances.get_usageUsage metricsreadgandi.webhosting_instances.listList Web Hosting instancesreadgandi.webhosting_instances.perform_actionPerform an action on the instancewritegandi.webhosting_instances.updateWeb Hosting instance modificationwrite
Domain transfers6
gandi.domain_transfers.check_availabilityCheck transfer availabilityreadgandi.domain_transfers.createTransfer a domain to Gandiwritegandi.domain_transfers.getGet transfer statusreadgandi.domain_transfers.relaunchRelaunch transfer processwritegandi.domain_transfers.resend_foaResend the transfer FOA emailswritegandi.domain_transfers.update_authinfoUpdate authinfo code of a pending transferwrite
Linkedzone zones6
gandi.linkedzone_zones.createCreate a zonewritegandi.linkedzone_zones.deleteDelete a linked zonedestructivegandi.linkedzone_zones.deployDeploy or undeploy a zonewritegandi.linkedzone_zones.getLinked zone detailsreadgandi.linkedzone_zones.listList linked zonesreadgandi.linkedzone_zones.updateUpdate a linked zonewrite
Mailboxes6
gandi.mailboxes.createCreate new mailboxwritegandi.mailboxes.deleteDelete mailboxdestructivegandi.mailboxes.getGet mailbox detailreadgandi.mailboxes.listList mailboxesreadgandi.mailboxes.renewRenew a mailboxwritegandi.mailboxes.updateUpdate mailboxwrite
Organizations6
gandi.organizations.createCreate an organizationwritegandi.organizations.deleteDelete an organizationdestructivegandi.organizations.getShow organization informationreadgandi.organizations.listList organizationsreadgandi.organizations.perform_actionPerform action organizationswritegandi.organizations.updateUpdate an organizationwrite
Templates6
gandi.templates.applyApply a templatewritegandi.templates.createCreate a new templatewritegandi.templates.deleteDelete a templatedestructivegandi.templates.getTemplate detailsreadgandi.templates.listList of templatesreadgandi.templates.updateEdit a templatewrite
Webhosting vhosts6
gandi.webhosting_vhosts.createCreate a new vhostwritegandi.webhosting_vhosts.deleteDelete a vhostdestructivegandi.webhosting_vhosts.getVhost detailsreadgandi.webhosting_vhosts.listList vhostsreadgandi.webhosting_vhosts.purge_cachePurge a vhost's cachedestructivegandi.webhosting_vhosts.updateUpdate a vhostwrite
Acme subscriptions5
gandi.acme_subscriptions.createCreate a partial subscription, waiting for billing task to be paidwritegandi.acme_subscriptions.deleteDelete the subscriptiondestructivegandi.acme_subscriptions.getReturns a single account associated with the subscription_id and the account_idreadgandi.acme_subscriptions.listList subscriptions for a given sharing_idreadgandi.acme_subscriptions.renameChanges the name of the subscriptionwrite
Certificate tags5
gandi.certificate_tags.addAttach a new tag to the certificatewritegandi.certificate_tags.delete_allRemove all tags from this certificatedestructivegandi.certificate_tags.listGet the list of tags linked to a certificatereadgandi.certificate_tags.replace_allReplace all the tags of the certificatewritegandi.certificate_tags.updateUpdate some of the tags of the certificatewrite
Domain glue records5
gandi.domain_glue_records.createCreate a new glue recordwritegandi.domain_glue_records.deleteDelete a glue recorddestructivegandi.domain_glue_records.getGlue record informationreadgandi.domain_glue_records.listGlue record listreadgandi.domain_glue_records.updateUpdate a glue recordwrite
Domain tags5
gandi.domain_tags.addAttach a new tag to the domainwritegandi.domain_tags.delete_allRemove all tags from this domaindestructivegandi.domain_tags.listGet the list of tags linked to a domainreadgandi.domain_tags.replace_allUpdate all the tags of the domainwritegandi.domain_tags.updateUpdate some of the tags of the domainwrite
Domain web redirections5
gandi.domain_web_redirections.createCreate a new web redirectionwritegandi.domain_web_redirections.deleteDelete a redirectiondestructivegandi.domain_web_redirections.getGet web redirection informationreadgandi.domain_web_redirections.listList web redirectionsreadgandi.domain_web_redirections.updateUpdate a redirectionwrite
Livedns dnssec keys5
gandi.livedns_dnssec_keys.createCreates a new DNSSEC Keywritegandi.livedns_dnssec_keys.deleteDeletes a keydestructivegandi.livedns_dnssec_keys.getGet information about a keyreadgandi.livedns_dnssec_keys.listList DNSSEC keys of a domainreadgandi.livedns_dnssec_keys.undeleteUndelete a keywrite
Livedns domains5
gandi.livedns_domains.createAdd a new domain to LiveDNSwritegandi.livedns_domains.getShow domain's propertiesreadgandi.livedns_domains.get_nameserversRetrieve this domain's nameserversreadgandi.livedns_domains.listList of domains handled by LiveDNSreadgandi.livedns_domains.updateUpdate domain's propertieswrite
Livedns snapshots5
gandi.livedns_snapshots.createCreates a new snapshotwritegandi.livedns_snapshots.deleteDelete a snapshotdestructivegandi.livedns_snapshots.getSnapshot detailsreadgandi.livedns_snapshots.listList available snapshotsreadgandi.livedns_snapshots.updateUpdate a snapshotwrite
Organization customers5
gandi.organization_customers.createCreate a new customerwritegandi.organization_customers.deleteDelete customerdestructivegandi.organization_customers.getShow customer's informationreadgandi.organization_customers.listList customersreadgandi.organization_customers.updateUpdate customer's informationwrite
Domain dnskeys4
gandi.domain_dnskeys.createCreate a new DNS Keywritegandi.domain_dnskeys.deleteDelete a DNSSEC Keydestructivegandi.domain_dnskeys.listDNS Key Listreadgandi.domain_dnskeys.replace_allReplace keys on this domainwrite
Email forwards4
gandi.email_forwards.createCreate a forwarding addresswritegandi.email_forwards.deleteDelete a forwarding addressdestructivegandi.email_forwards.listList forwarding addressesreadgandi.email_forwards.updateUpdate a forwarding addresswrite
Email slots4
gandi.email_slots.createCreate a new mailbox slotwritegandi.email_slots.getGet slot detailsreadgandi.email_slots.listList existing mailbox slotsreadgandi.email_slots.refundRefund a slotdestructive
Linkedzone domains4
gandi.linkedzone_domains.getDomain detailsreadgandi.linkedzone_domains.linkLink domains to a specific zonewritegandi.linkedzone_domains.listList domainsreadgandi.linkedzone_domains.unlinkUnlink domains from a linked zonewrite
Livedns tsig keys4
gandi.livedns_tsig_keys.createCreates a new TSIG keywritegandi.livedns_tsig_keys.getGET information about a TSIG keyreadgandi.livedns_tsig_keys.get_configSoftware configuration informationreadgandi.livedns_tsig_keys.listList existing TSIG keysread
Mailbox forwards4
gandi.mailbox_forwards.createCreate a forwarding addresswritegandi.mailbox_forwards.deleteDelete a forwarding addressdestructivegandi.mailbox_forwards.listList forwarding addressesreadgandi.mailbox_forwards.updateUpdate a forwarding addresswrite
Acme domains3
gandi.acme_domains.getReturns a single domain linked to the right subscription_id and domain_id associationreadgandi.acme_domains.listList all domains on a subscriptionreadgandi.acme_domains.updateChanges the domains of the subscriptionwrite
Comments3
gandi.comments.deleteDelete the comment for the entity corresponding to the id.destructivegandi.comments.getReturn the commentreadgandi.comments.setSet the comment for the entity corresponding to the idwrite
Domain contacts3
gandi.domain_contacts.getDomain contact listreadgandi.domain_contacts.updateDomain contact updatewritegandi.domain_contacts.update_ownerEdit domain ownerwrite
Domain dnssec3
gandi.domain_dnssec.disableDisable DNSSEC for a domaindestructivegandi.domain_dnssec.enableActivate DNSSEC for a domainwritegandi.domain_dnssec.getReturn informations about DNSSEC status for a domainread
Domain owner changes3
gandi.domain_owner_changes.createInitiate a change ownerwritegandi.domain_owner_changes.getChange Owner followup.readgandi.domain_owner_changes.resend_foaResend the change owner FOA emailswrite
Livedns axfr secondaries3
gandi.livedns_axfr_secondaries.addAdd a new slave IP address to a domainwritegandi.livedns_axfr_secondaries.listList current slave's IP addressesreadgandi.livedns_axfr_secondaries.removeRemove a slave IP address from a domaindestructive
Livedns domain tsig keys3
gandi.livedns_domain_tsig_keys.associateAssociate a domain with a TSIG keywritegandi.livedns_domain_tsig_keys.dissociateRemove association between a domain and a TSIG keydestructivegandi.livedns_domain_tsig_keys.listList TSIG keys associated with a domainread
Mailbox domains3
gandi.mailbox_domains.getGet domain detailreadgandi.mailbox_domains.listLists all your domainsreadgandi.mailbox_domains.validateValidate configurationwrite
Acme accounts2
gandi.acme_accounts.getReturns a single account associated with the subscription_id and the account_idreadgandi.acme_accounts.listList all accounts linked to a subscriptionread
Billing accounts2
gandi.billing_accounts.getGet Account Informationreadgandi.billing_accounts.get_currentGet your user account's informationread
Certificate packages2
gandi.certificate_packages.getPackage informationreadgandi.certificate_packages.listPackage listread
Domain claims2
gandi.domain_claims.acceptAccept a previously retrieved claimswritegandi.domain_claims.getRetrieve potential trademark informationread
Domain livedns2
gandi.domain_livedns.enableEnable LiveDNSwritegandi.domain_livedns.getDomain LiveDNS Informationread
Domain nameservers2
gandi.domain_nameservers.getDomain Nameserver Informationreadgandi.domain_nameservers.updateUpdate Domain Nameserver Listwrite
Email migrations2
gandi.email_migrations.getShow migration detailsreadgandi.email_migrations.launchLaunch migrationwrite
Email offers2
gandi.email_offers.getRetrieve current email offerreadgandi.email_offers.updateUpdate global email optionswrite
Linkedzone tasks2
gandi.linkedzone_tasks.getTask detailsreadgandi.linkedzone_tasks.listList tasksread
Mailbox products2
gandi.mailbox_products.buyBuy new mailboxwritegandi.mailbox_products.listLists all buyable productread
Mailbox slots2
gandi.mailbox_slots.getGet slot detailreadgandi.mailbox_slots.listLists all your slotsread
TLDS2
gandi.tlds.getTLD Detailsreadgandi.tlds.listList available TLD extensionsread
Webhosting applications2
gandi.webhosting_applications.getApplication detailsreadgandi.webhosting_applications.listList Web Hosting applicationsread
Access tokens1
gandi.access_tokens.renew_currentRenew the current personal access tokenwrite
Acme catalog1
gandi.acme_catalog.getList catalog prices of quantity of one domainread
Acme quotes1
gandi.acme_quotes.get_quoteList prices with filters, according to specific domain listread
Billing prices1
gandi.billing_prices.listReturn product catalog prices.read
Livedns nameservers1
gandi.livedns_nameservers.getRetrieve the generic (hashed) nameserversread
Livedns record types1
gandi.livedns_record_types.listList record typesread
Mailbox quotas1
gandi.mailbox_quotas.getGet mailboxes available and mailboxes already used.read
Template dispatches1
gandi.template_dispatches.getDispatch informationread
Users1
gandi.users.meGet user informationread
Questions
The Gandi MCP server, answered.
Is there a Gandi MCP server for Claude?
Yes. actionlake is an MCP gateway: a remote MCP server that gives Claude, or another MCP client, 218 Gandi actions across domains, livedns records, certificates and email mailboxes, through the same eight tools it uses for every other connector. actionlake is independent; it is not made or endorsed by Gandi.
What do I need to connect Gandi?
Gandi Personal Access Token (Gandi Admin > Account settings > Authentication options > Personal Access Token). Plus your environment. The free call account { op: "connections.requirements", service: "gandi" } lists exactly what to paste.
Can an AI agent delete or change things in Gandi?
Only if its key allows it, and only with an explicit confirmation. 32 Gandi actions are destructive, including delete mailbox, delete record with {rrset_name} and {rrset_type} and delete a snapshot. 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 Gandi API limit?
actionlake paces every call to the limits in the Gandi service file: 1,000 calls a minute per connection. Repeated reads are answered from cache (90 Gandi actions can be), which never reaches Gandi.
What does a Gandi action cost?
One upstream call, the only unit actionlake bills. A list that pages bills one call per page (218 Gandi actions page). Cache hits, searches, dry runs and calls Gandi 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 Gandi API does it cover?
The Gandi Public API v5 (RAML reference rendered at api.gandi.net/docs) at your Gandi instance's API base URL, which you enter when connecting. It is built from Gandi's documentation as read on 23 October 2026. 218 actions in 56 areas, each one in the signed service file (version 1.0.0).
Does actionlake keep my Gandi 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 Gandi 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 Gandi today.
Start free - 100,000 calls/month, no card. No signup. Hard caps on every key. Cached answers are free.