curl --request GET \
--url https://app.base44.com/api/apps/{app_id}/delete-check \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.base44.com/api/apps/{app_id}/delete-check"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.base44.com/api/apps/{app_id}/delete-check', 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}/delete-check",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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}/delete-check"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://app.base44.com/api/apps/{app_id}/delete-check")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.base44.com/api/apps/{app_id}/delete-check")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"has_dependent_templates": true,
"catalog_items": [
{
"id": "68b2f0c1a4d9e7001c3b5a22",
"name": "CRM starter",
"status": "approved",
"type": "workspace"
}
],
"has_connected_domains": true,
"connected_domains": [
{
"disabled": false,
"domain": "crm.acme.com",
"id": "68c0d7e2b5a1f4001d2e9b37"
}
],
"app_users_count": 42,
"active_google_ads_campaigns": []
}Check app delete impact
Shows what deleting the app affects, so you can check before you call Delete app.
The response lists the template listings made from the app, the custom domains connected to it, how many users it has, and any Google Ads campaigns that are still serving. Delete app refuses while a campaign is serving, so pause those first. It works for an app that’s already in the trash too.
You need editor access to the app. Passing this check doesn’t mean you can delete the app: only its owner or a workspace admin can.
curl --request GET \
--url https://app.base44.com/api/apps/{app_id}/delete-check \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.base44.com/api/apps/{app_id}/delete-check"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.base44.com/api/apps/{app_id}/delete-check', 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}/delete-check",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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}/delete-check"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://app.base44.com/api/apps/{app_id}/delete-check")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.base44.com/api/apps/{app_id}/delete-check")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"has_dependent_templates": true,
"catalog_items": [
{
"id": "68b2f0c1a4d9e7001c3b5a22",
"name": "CRM starter",
"status": "approved",
"type": "workspace"
}
],
"has_connected_domains": true,
"connected_domains": [
{
"disabled": false,
"domain": "crm.acme.com",
"id": "68c0d7e2b5a1f4001d2e9b37"
}
],
"app_users_count": 42,
"active_google_ads_campaigns": []
}Authorizations
Personal access token, sent as Authorization: Bearer <token>.
Path Parameters
ID of the app to check.
Response
What deleting the app affects.
Doc-only: the handler returns a plain dict. google_ads_url stays
unpublished: it's a builder page path, not an API link.
Whether any template listings were made from the app.
true
Template listings made from the app that aren't archived.
Show child attributes
Show child attributes
[
{
"id": "68b2f0c1a4d9e7001c3b5a22",
"name": "CRM starter",
"status": "approved",
"type": "workspace"
}
]
Whether any custom domains are connected to the app.
true
Custom domains connected to the app, including ones that are turned off. Deleting the app releases them.
Show child attributes
Show child attributes
[
{
"disabled": false,
"domain": "crm.acme.com",
"id": "68c0d7e2b5a1f4001d2e9b37"
}
]
Number of users of the app.
42
Names of the app's Google Ads campaigns that are still serving. Delete app refuses while this isn't empty.
[]
Was this page helpful?