curl --request DELETE \
--url https://app.base44.com/api/apps/{app_id}/custom-domains/{domain_id} \
--header 'api_key: <api-key>'import requests
url = "https://app.base44.com/api/apps/{app_id}/custom-domains/{domain_id}"
headers = {"api_key": "<api-key>"}
response = requests.delete(url, headers=headers)
print(response.text)const options = {method: 'DELETE', headers: {api_key: '<api-key>'}};
fetch('https://app.base44.com/api/apps/{app_id}/custom-domains/{domain_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.base44.com/api/apps/{app_id}/custom-domains/{domain_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "DELETE",
CURLOPT_HTTPHEADER => [
"api_key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://app.base44.com/api/apps/{app_id}/custom-domains/{domain_id}"
req, _ := http.NewRequest("DELETE", url, nil)
req.Header.Add("api_key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.delete("https://app.base44.com/api/apps/{app_id}/custom-domains/{domain_id}")
.header("api_key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.base44.com/api/apps/{app_id}/custom-domains/{domain_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Delete.new(url)
request["api_key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"message": "Domain successfully unlinked"
}Delete custom domain
Removes a custom domain from the app and stops serving it.
This detaches the domain from Base44’s hosting, deletes any email domain configured on it, and stops it serving your app. Other domains that were redirecting to this one stop redirecting.
Deleting is permanent and there’s no undo. The domain itself isn’t affected at your registrar, so you can point it somewhere else afterwards, but its Base44 configuration is removed. To stop serving a domain while keeping it attached, use Unlink custom domain instead.
The hostname stays reserved for your workspace after the delete. You can add it to another of your apps at any time; another workspace adding it must first prove it controls the DNS zone by publishing a TXT record Base44 hands them.
A failed delete can still take the domain out of service. Base44 detaches it from hosting and removes its email domain first, so a failure after that point leaves a domain that no longer works but still appears in List custom domains. Retrying is safe and is how you finish the job. If the domain has already been deleted, the retry reports it as missing.
curl --request DELETE \
--url https://app.base44.com/api/apps/{app_id}/custom-domains/{domain_id} \
--header 'api_key: <api-key>'import requests
url = "https://app.base44.com/api/apps/{app_id}/custom-domains/{domain_id}"
headers = {"api_key": "<api-key>"}
response = requests.delete(url, headers=headers)
print(response.text)const options = {method: 'DELETE', headers: {api_key: '<api-key>'}};
fetch('https://app.base44.com/api/apps/{app_id}/custom-domains/{domain_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.base44.com/api/apps/{app_id}/custom-domains/{domain_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "DELETE",
CURLOPT_HTTPHEADER => [
"api_key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://app.base44.com/api/apps/{app_id}/custom-domains/{domain_id}"
req, _ := http.NewRequest("DELETE", url, nil)
req.Header.Add("api_key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.delete("https://app.base44.com/api/apps/{app_id}/custom-domains/{domain_id}")
.header("api_key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.base44.com/api/apps/{app_id}/custom-domains/{domain_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Delete.new(url)
request["api_key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"message": "Domain successfully unlinked"
}Authorizations
Personal API key.
Path Parameters
ID of the app the domain belongs to.
ID of the custom domain. Get this from List custom domains.
Response
The domain is deleted.
A one-line confirmation.
What happened, in plain text.
"Domain successfully unlinked"
Was this page helpful?