Appwrite Domains API
Appwrite Domains — buy domains and host DNS inside an Appwrite organization, announced 2026-09-04. 54 operations across 44 paths in the Appwrite 2.0.0 OpenAPI.
Operations 54
Each operation below carries the questions people ask an LLM about it and the instructions they give an agent to run it. Generated by API Evangelist overlay
Ask an LLM
“Which domains are registered in my Appwrite project?”
“Can I search my domain list by name?”
Tell an agent
List all domains registered in this project.
Search my registered domains for {search}.
Ask an LLM
“How do I add a domain I already own so I can manage its DNS here?”
“What do I need to configure at my DNS provider before adding a domain?”
Tell an agent
Add domain {domain} to team {teamId}.
Register {domain} as a managed domain under team {teamId} so I can edit its DNS.
Ask an LLM
“How much does it cost to register a single domain name?”
“What is the price to register a domain for several years?”
Tell an agent
Get the registration price for {domain}.
Quote the price to register {domain} for {periodYears} years.
Ask an LLM
“Are these domain names available, and what would each cost?”
“Can I check availability for a batch of domain names at once?”
Tell an agent
Check availability and prices for the domains {domains}.
Tell me which of {domains} are still available to register.
Ask an LLM
“How do I buy a new domain name and pay for it with a saved card?”
“What registrant details are required to purchase a domain?”
Tell an agent
Buy {domain} for organization {organizationId} using payment method {paymentMethodId}.
Start a {periodYears}-year purchase of {domain} registered to {firstName} {lastName}, {email}.
PATCH
/domains/purchases/{invoiceId}
Confirm and finalize a domain purchase · Confirm a domain purchase
#
Ask an LLM
“How do I finish a domain purchase after completing 3D Secure?”
“What happens when I confirm a pending domain purchase?”
Tell an agent
Confirm the domain purchase on invoice {invoiceId} for organization {organizationId}.
Finalize my pending domain order {invoiceId} now that 3D Secure is done, organization {organizationId}.
Ask an LLM
“Can you suggest domain names based on a keyword?”
“Which domain name ideas are available under a certain price?”
Tell an agent
Suggest domain names for {query}.
Suggest up to {limit} domains for {query} using the TLDs {tlds}.
Ask an LLM
“How do I move a domain from another registrar into Appwrite?”
“Where does the authorization code go when transferring a domain in?”
Tell an agent
Transfer {domain} in for organization {organizationId} with auth code {authCode} and payment method {paymentMethodId}.
Start an incoming transfer of {domain} using EPP code {authCode}, billed to organization {organizationId} via {paymentMethodId}.
PATCH
/domains/transfers/in/{invoiceId}
Confirm a pending domain transfer in · Confirm a domain transfer in
#
Ask an LLM
“How do I finalize an incoming domain transfer after 3D Secure authentication?”
“What submits my incoming transfer to the registry?”
Tell an agent
Confirm the incoming domain transfer on invoice {invoiceId} for organization {organizationId}.
Submit transfer-in invoice {invoiceId} to the registry after 3D Secure, organization {organizationId}.
POST
/domains/transfers/out
Get an auth code to transfer a domain out · Create a domain transfer out
#
Ask an LLM
“How do I move my domain away to a different registrar?”
“Where do I get the authorization code the gaining registrar asks for?”
Tell an agent
Generate a transfer-out auth code for domain {domainId} in organization {organizationId}.
Prepare domain {domainId} to leave for another registrar, organization {organizationId}.
Ask an LLM
“What are the details of one specific domain in my project?”
“Can I look up a domain by its ID?”
Tell an agent
Show the details of domain {domainId}.
Fetch domain {domainId} and tell me its current status.
Ask an LLM
“How do I remove a domain from my project entirely?”
“What happens to a domain once it is deleted?”
Tell an agent destructive · confirm first
Delete domain {domainId} from the project.
Remove domain {domainId} so it is no longer available in this project.
PATCH
/domains/{domainId}/auto-renewal
Turn domain auto-renewal on or off · Update domain auto-renewal setting
#
Ask an LLM
“How do I stop my domain from renewing automatically?”
“Can I enable auto-renewal on a domain I already own?”
Tell an agent
Set auto-renewal to {autoRenewal} for domain {domainId}.
Turn off automatic renewal for domain {domainId}.
PATCH
/domains/{domainId}/nameservers
Change a domain's registrar nameservers · Update the registrar nameservers for the given domain
#
Ask an LLM
“How do I point my domain at custom nameservers at the registrar?”
“Can I switch a domain back to Appwrite nameservers?”
Tell an agent
Set the registrar nameservers of domain {domainId} to {nameservers}.
Reset domain {domainId} to use Appwrite nameservers.
PATCH
/domains/{domainId}/nameservers/verification
Verify which nameservers a domain uses · Verify which NS records are used and update the domain accordingly
#
Ask an LLM
“How do I check whether my domain's NS records now point to Appwrite?”
“Why is my domain status not updated after changing nameservers?”
Tell an agent
Verify the nameservers of domain {domainId} and refresh its status.
Re-check whether domain {domainId} now uses Appwrite's NS records.
GET
/domains/{domainId}/presets/google-workspace
Preview Google Workspace DNS records · Get Google Workspace preset (Records)
#
Ask an LLM
“Which DNS records does Google Workspace email need on my domain?”
“Can I preview the Google Workspace MX records before adding them?”
Tell an agent
Show the Google Workspace DNS records for domain {domainId}.
Preview the Google Workspace mail records for {domainId} without applying them.
POST
/domains/{domainId}/presets/google-workspace
Add Google Workspace email records · Create Google Workspace preset (Records)
#
Ask an LLM
“How do I set up my domain's MX records for Google Workspace in one step?”
“Can Appwrite add the Google Workspace mail records for me?”
Tell an agent
Add the Google Workspace MX records to domain {domainId}.
Set up Google Workspace email hosting on domain {domainId}.
GET
/domains/{domainId}/presets/icloud
Preview iCloud Mail DNS records · Get iCloud preset (Records)
#
Ask an LLM
“What DNS records does iCloud custom email need?”
“Can I see the iCloud mail records before applying them?”
Tell an agent
Show the iCloud DNS records for domain {domainId}.
Preview the iCloud mail records for {domainId} without applying them.
Ask an LLM
“How do I add the MX and SPF records for iCloud Mail to my domain?”
“Can I apply the iCloud email preset automatically?”
Tell an agent
Add the iCloud MX and SPF records to domain {domainId}.
Set up iCloud custom email on domain {domainId}.
GET
/domains/{domainId}/presets/mailgun
Preview Mailgun DNS records · Get Mailgun preset (Records)
#
Ask an LLM
“Which DNS records does Mailgun need on my sending domain?”
“Can I review the Mailgun preset records first?”
Tell an agent
Show the Mailgun DNS records for domain {domainId}.
Preview the Mailgun records for {domainId} without applying them.
POST
/domains/{domainId}/presets/mailgun
Add Mailgun DNS records · Create Mailgun preset (Records)
#
Ask an LLM
“How do I configure my domain's DNS for Mailgun in one call?”
“Can Appwrite create the records Mailgun requires?”
Tell an agent
Add the Mailgun DNS records to domain {domainId}.
Configure domain {domainId} for sending through Mailgun.
GET
/domains/{domainId}/presets/outlook
Preview Outlook email DNS records · Get Outlook preset (Records)
#
Ask an LLM
“What MX records does Outlook email hosting need?”
“Can I list the Outlook preset records for my domain?”
Tell an agent
Show the Outlook DNS records for domain {domainId}.
Preview the Outlook mail records for {domainId} without applying them.
POST
/domains/{domainId}/presets/outlook
Add Outlook email records · Create Outlook preset (Records)
#
Ask an LLM
“How do I set up Outlook email hosting on my custom domain?”
“Can the Outlook MX records be added automatically?”
Tell an agent
Add the Outlook MX records to domain {domainId}.
Set up Outlook email hosting on domain {domainId}.
GET
/domains/{domainId}/presets/proton-mail
Preview Proton Mail DNS records · Get ProtonMail preset (Records)
#
Ask an LLM
“Which records does ProtonMail need on a custom domain?”
“Can I see the ProtonMail preset before applying it?”
Tell an agent
Show the ProtonMail DNS records for domain {domainId}.
Preview the ProtonMail records for {domainId} without applying them.
POST
/domains/{domainId}/presets/proton-mail
Add Proton Mail records · Create ProtonMail preset (Records)
#
Ask an LLM
“How do I connect my domain to ProtonMail email?”
“Can Appwrite add the ProtonMail MX records for me?”
Tell an agent
Add the ProtonMail MX records to domain {domainId}.
Set up ProtonMail on custom domain {domainId}.
Ask an LLM
“What DNS records does Zoho Mail require?”
“Can I list the Zoho preset records for a domain?”
Tell an agent
Show the Zoho Mail DNS records for domain {domainId}.
Preview the Zoho Mail records for {domainId} without applying them.
Ask an LLM
“Will Appwrite configure my domain for Zoho Mail?”
“Can the Zoho Mail MX records be created in one step?”
Tell an agent
Add the Zoho Mail MX records to domain {domainId}.
Set up Zoho Mail on domain {domainId}.
Ask an LLM
“What DNS records currently exist on my domain?”
“Can I filter the DNS records on a domain with queries?”
Tell an agent
List all DNS records on domain {domainId}.
List DNS records on domain {domainId} matching {queries}.
POST
/domains/{domainId}/records/a
Add an A record pointing to an IPv4 address · Create a new A record for the given domain
#
Ask an LLM
“I need a subdomain to resolve to an IPv4 address; which record do I add?”
“Can I add a new A record with a custom TTL?”
Tell an agent
Add an A record {name} pointing to {value} with TTL {ttl} on domain {domainId}.
Point {name} on domain {domainId} at IPv4 {value} with TTL {ttl}, noting {comment}.
PUT
/domains/{domainId}/records/a/{recordId}
Change an existing A record · Update an existing A record for the given domain
#
Ask an LLM
“How do I change the IPv4 address an existing A record points to?”
“Can I edit the TTL of an A record I already created?”
Tell an agent
Update A record {recordId} on domain {domainId} to {name} -> {value}, TTL {ttl}.
Change the IPv4 on A record {recordId} of domain {domainId} to {value}, keeping name {name} and TTL {ttl}.
POST
/domains/{domainId}/records/aaaa
Add an AAAA record for IPv6 · Create a new AAAA record for the given domain
#
Ask an LLM
“My server has an IPv6 address; can my domain point to it?”
“Can I create a new AAAA record on a subdomain?”
Tell an agent
Add an AAAA record {name} pointing to IPv6 {value} with TTL {ttl} on domain {domainId}.
Point {name} on domain {domainId} at IPv6 address {value}, TTL {ttl}, comment {comment}.
PUT
/domains/{domainId}/records/aaaa/{recordId}
Change an existing AAAA record · Update an existing AAAA record for the given domain
#
Ask an LLM
“How do I change the IPv6 address on an existing AAAA record?”
“Can I rename the subdomain on an AAAA record I already have?”
Tell an agent
Update AAAA record {recordId} on domain {domainId} to {name} -> {value}, TTL {ttl}.
Change the IPv6 on AAAA record {recordId} of domain {domainId} to {value}, name {name}, TTL {ttl}.
POST
/domains/{domainId}/records/alias
Add an ALIAS record to another hostname · Create a new ALIAS record for the given domain
#
Ask an LLM
“Is there a way to alias my apex domain to another hostname?”
“Can I create a new ALIAS record instead of a CNAME at the root?”
Tell an agent
Add an ALIAS record {name} targeting {value} with TTL {ttl} on domain {domainId}.
Alias {name} on domain {domainId} to hostname {value}, TTL {ttl}, comment {comment}.
PUT
/domains/{domainId}/records/alias/{recordId}
Change an existing ALIAS record · Update an existing ALIAS record for the given domain
#
Ask an LLM
“How do I change the target of an existing ALIAS record?”
“Can I update the TTL on an ALIAS record I already created?”
Tell an agent
Update ALIAS record {recordId} on domain {domainId} to {name} -> {value}, TTL {ttl}.
Retarget ALIAS record {recordId} on domain {domainId} to hostname {value}, name {name}, TTL {ttl}.
POST
/domains/{domainId}/records/caa
Add a CAA record to limit certificate issuers · Create a new CAA record for the given domain
#
Ask an LLM
“How do I restrict which certificate authorities can issue SSL certificates for my domain?”
“Can I add a new CAA record for a certificate authority?”
Tell an agent
Add a CAA record {name} with value {value} and TTL {ttl} on domain {domainId}.
Allow only the certificate authority in {value} to issue certificates for {name} on domain {domainId}, TTL {ttl}.
PUT
/domains/{domainId}/records/caa/{recordId}
Change an existing CAA record · Update an existing CAA record for the given domain
#
Ask an LLM
“How do I change which certificate authority an existing CAA record allows?”
“Can I edit a CAA record's TTL after creating it?”
Tell an agent
Update CAA record {recordId} on domain {domainId} to {name} with value {value}, TTL {ttl}.
Change the allowed certificate authority on CAA record {recordId} of domain {domainId} to {value}, name {name}, TTL {ttl}.
POST
/domains/{domainId}/records/cname
Add a CNAME record for a subdomain · Create a new CNAME record for the given domain
#
Ask an LLM
“What record maps a subdomain like www to another domain name?”
“Can I create a new CNAME for www on my domain?”
Tell an agent
Add a CNAME record {name} pointing to {value} with TTL {ttl} on domain {domainId}.
Make subdomain {name} of domain {domainId} an alias of {value} via CNAME, TTL {ttl}, comment {comment}.
PUT
/domains/{domainId}/records/cname/{recordId}
Change an existing CNAME record · Update an existing CNAME record for the given domain
#
Ask an LLM
“How do I repoint an existing CNAME to a different hostname?”
“Can I change the TTL on a CNAME I already set up?”
Tell an agent
Update CNAME record {recordId} on domain {domainId} to {name} -> {value}, TTL {ttl}.
Repoint CNAME record {recordId} on domain {domainId} to {value}, name {name}, TTL {ttl}.
POST
/domains/{domainId}/records/https
Add an HTTPS DNS record · Create a new HTTPS record for the given domain
#
Ask an LLM
“How do I publish an HTTPS (SVCB-style) DNS record for my domain?”
“Can I add a new HTTPS record to a subdomain?”
Tell an agent
Add an HTTPS record {name} with value {value} and TTL {ttl} on domain {domainId}.
Publish HTTPS service parameters {value} for {name} on domain {domainId}, TTL {ttl}, comment {comment}.
PUT
/domains/{domainId}/records/https/{recordId}
Change an existing HTTPS DNS record · Update an existing HTTPS record for the given domain
#
Ask an LLM
“How do I modify the value of an existing HTTPS record on my domain?”
“Can I update the TTL of an HTTPS DNS record I already have?”
Tell an agent
Update HTTPS record {recordId} on domain {domainId} to {name} with value {value}, TTL {ttl}.
Replace the service parameters on HTTPS record {recordId} of domain {domainId} with {value}, name {name}, TTL {ttl}.
POST
/domains/{domainId}/records/mx
Add an MX mail server record · Create a new MX record for the given domain
#
Ask an LLM
“Which record tells the world where to deliver email for my domain?”
“Can I create a new MX record by hand instead of using an email preset?”
Tell an agent
Add an MX record {name} to mail server {value} with priority {priority} and TTL {ttl} on domain {domainId}.
Route mail for {name} on domain {domainId} to {value} at priority {priority}, TTL {ttl}, comment {comment}.
PUT
/domains/{domainId}/records/mx/{recordId}
Change an existing MX record · Update an existing MX record for the given domain
#
Ask an LLM
“How do I change the priority of an existing MX record?”
“Can I swap the mail server on an MX record I already created?”
Tell an agent
Update MX record {recordId} on domain {domainId} to server {value}, priority {priority}, name {name}, TTL {ttl}.
Set the priority of MX record {recordId} on domain {domainId} to {priority}, keeping server {value}, name {name}, TTL {ttl}.
POST
/domains/{domainId}/records/ns
Add an NS record to delegate a name · Create a new NS record for the given domain
#
Ask an LLM
“Can I hand off a subdomain to different nameservers with an NS record?”
“Can I add a new NS record inside my DNS zone?”
Tell an agent
Add an NS record {name} pointing to nameserver {value} with TTL {ttl} on domain {domainId}.
Delegate subdomain {name} of domain {domainId} to nameserver {value}, TTL {ttl}, comment {comment}.
PUT
/domains/{domainId}/records/ns/{recordId}
Change an existing NS record · Update an existing NS record for the given domain
#
Ask an LLM
“How do I change the nameserver an existing NS record delegates to?”
“Can I edit an NS record's TTL in my zone?”
Tell an agent
Update NS record {recordId} on domain {domainId} to {name} -> {value}, TTL {ttl}.
Redelegate NS record {recordId} on domain {domainId} to nameserver {value}, name {name}, TTL {ttl}.
POST
/domains/{domainId}/records/srv
Add an SRV service location record · Create a new SRV record for the given domain
#
Ask an LLM
“How do I publish the host and port for a service using an SRV record?”
“Can I set priority, weight and port when adding an SRV record?”
Tell an agent
Add an SRV record {name} targeting {value} on port {port} with priority {priority}, weight {weight}, TTL {ttl} on domain {domainId}.
Advertise service {name} on domain {domainId} at {value}:{port}, priority {priority}, weight {weight}, TTL {ttl}.
PUT
/domains/{domainId}/records/srv/{recordId}
Change an existing SRV record · Update an existing SRV record for the given domain
#
Ask an LLM
“How do I change the port or weight on an existing SRV record?”
“Can I retarget an SRV record I already created?”
Tell an agent
Update SRV record {recordId} on domain {domainId}: target {value}, port {port}, priority {priority}, weight {weight}, name {name}, TTL {ttl}.
Move SRV record {recordId} on domain {domainId} to port {port}, target {value}, priority {priority}, weight {weight}, name {name}, TTL {ttl}.
POST
/domains/{domainId}/records/txt
Add a TXT record, e.g. for verification · Create a new TXT record for the given domain
#
Ask an LLM
“How do I add a TXT record to verify domain ownership?”
“Can I publish an SPF string as a new TXT record?”
Tell an agent
Add a TXT record {name} with text {value} and TTL {ttl} on domain {domainId}.
Publish verification text {value} at {name} on domain {domainId}, TTL {ttl}, comment {comment}.
PUT
/domains/{domainId}/records/txt/{recordId}
Change an existing TXT record · Update an existing TXT record for the given domain
#
Ask an LLM
“How do I change the text of an existing TXT record?”
“Can I update a verification TXT record I added earlier?”
Tell an agent
Update TXT record {recordId} on domain {domainId} to {name} with text {value}, TTL {ttl}.
Replace the text of TXT record {recordId} on domain {domainId} with {value}, name {name}, TTL {ttl}.
GET
/domains/{domainId}/records/{recordId}
Get one DNS record by ID · Get a single DNS record for a given domain by record ID
#
Ask an LLM
“What are the settings of one specific DNS record on my domain?”
“Can I fetch a single DNS record using its record ID?”
Tell an agent
Show DNS record {recordId} on domain {domainId}.
Look up record {recordId} on domain {domainId} and show its type, value and TTL.
DELETE
/domains/{domainId}/records/{recordId}
Delete a DNS record · Delete a DNS record for the given domain
#
Ask an LLM
“What's the way to remove a DNS record from my domain?”
“Can I delete any record type, whatever kind it is, by its ID?”
Tell an agent destructive · confirm first
Delete DNS record {recordId} from domain {domainId}.
Remove record {recordId} from the DNS zone of domain {domainId}.
Ask an LLM
“How do I transfer ownership of a domain to a different team?”
“What permissions do I need to move a domain between teams?”
Tell an agent
Move domain {domainId} to team {teamId}.
Reassign ownership of domain {domainId} to team {teamId}.
GET
/domains/{domainId}/transfers/status
Check a domain's transfer status · Get domain transfer status
#
Ask an LLM
“Is my domain transfer still pending or has it completed?”
“Why did my domain transfer stall, and when did its status last change?”
Tell an agent
Check the transfer status of domain {domainId}.
Tell me whether the transfer of domain {domainId} has completed and why if not.
GET
/domains/{domainId}/zone
Export a domain's DNS zone file · Retrieve the DNS zone file for the given domain
#
Ask an LLM
“How do I download the full DNS zone file for my domain?”
“Can I export all my domain's records in standard zone format?”
Tell an agent
Export the DNS zone file for domain {domainId}.
Give me a BIND-style zone file backup of domain {domainId}.
PUT
/domains/{domainId}/zone
Import DNS records from a zone file · Update the DNS zone for the given domain using the provided zone file content.
#
Ask an LLM
“How do I import all my DNS records at once from a zone file?”
“Can I bulk-load records by pasting zone file content?”
Tell an agent
Import this zone file into domain {domainId}: {content}
Bulk-import records into domain {domainId} from zone file content {content}.