curl --request DELETE \
--url 'https://api.usedatabrain.com/api/v2/data-app?name=Customer%20Portal%20Analytics' \
--header 'Authorization: Bearer service_token_xyz...'
const dataAppName = 'Customer Portal Analytics';
const response = await fetch(`https://api.usedatabrain.com/api/v2/data-app?name=${encodeURIComponent(dataAppName)}`, {
method: 'DELETE',
headers: {
'Authorization': 'Bearer service_token_xyz...'
}
});
const data = await response.json();
console.log('Deleted Data App:', data.name);
import requests
from urllib.parse import quote
url = "https://api.usedatabrain.com/api/v2/data-app"
headers = {
"Authorization": "Bearer service_token_xyz..."
}
params = {
"name": "Customer Portal Analytics"
}
response = requests.delete(url, headers=headers, params=params)
data = response.json()
print(f"Deleted Data App: {data['name']}")
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
public class DeleteDataApp {
public static void main(String[] args) throws Exception {
HttpClient client = HttpClient.newHttpClient();
String name = URLEncoder.encode("Customer Portal Analytics", StandardCharsets.UTF_8);
String url = String.format(
"https://api.usedatabrain.com/api/v2/data-app?name=%s",
name
);
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(url))
.header("Authorization", "Bearer service_token_xyz...")
.DELETE()
.build();
HttpResponse<String> response = client.send(request,
HttpResponse.BodyHandlers.ofString());
System.out.println("Response: " + response.body());
}
}
package main
import (
"encoding/json"
"fmt"
"net/http"
"net/url"
)
type DeleteDataAppResponse struct {
Name string `json:"name"`
Error interface{} `json:"error"`
}
func main() {
baseURL := "https://api.usedatabrain.com/api/v2/data-app"
params := url.Values{}
params.Add("name", "Customer Portal Analytics")
fullURL := fmt.Sprintf("%s?%s", baseURL, params.Encode())
req, _ := http.NewRequest("DELETE", fullURL, nil)
req.Header.Set("Authorization", "Bearer service_token_xyz...")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
var result DeleteDataAppResponse
json.NewDecoder(resp.Body).Decode(&result)
fmt.Printf("Deleted Data App: %s\n", result.Name)
}
<?php
$params = http_build_query([
'name' => 'Customer Portal Analytics'
]);
$url = 'https://api.usedatabrain.com/api/v2/data-app?' . $params;
$options = [
'http' => [
'header' => 'Authorization: Bearer service_token_xyz...',
'method' => 'DELETE'
]
];
$context = stream_context_create($options);
$result = file_get_contents($url, false, $context);
$response = json_decode($result, true);
echo "Deleted Data App: " . $response['name'];
?>
require 'net/http'
require 'json'
uri = URI('https://api.usedatabrain.com/api/v2/data-app')
params = { name: 'Customer Portal Analytics' }
uri.query = URI.encode_www_form(params)
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Delete.new(uri)
request['Authorization'] = 'Bearer service_token_xyz...'
response = http.request(request)
result = JSON.parse(response.body)
puts "Deleted Data App: #{result['name']}"
{
"name": "Customer Portal Analytics"
}
{
"error": {
"code": "INVALID_REQUEST_BODY",
"message": "\"name\" is required"
}
}
{
"error": {
"code": "DATA_APP_NOT_FOUND",
"message": "Data app not found"
}
}
{
"error": {
"code": "AUTHENTICATION_ERROR",
"message": "Invalid Service Token"
}
}
{
"error": {
"code": "INTERNAL_SERVER_ERROR",
"message": "Data app not found"
}
}
curl --request DELETE \
--url 'https://api.usedatabrain.com/api/v2/data-app?name=Customer%20Portal%20Analytics' \
--header 'Authorization: Bearer service_token_xyz...'
const dataAppName = 'Customer Portal Analytics';
const response = await fetch(`https://api.usedatabrain.com/api/v2/data-app?name=${encodeURIComponent(dataAppName)}`, {
method: 'DELETE',
headers: {
'Authorization': 'Bearer service_token_xyz...'
}
});
const data = await response.json();
console.log('Deleted Data App:', data.name);
import requests
from urllib.parse import quote
url = "https://api.usedatabrain.com/api/v2/data-app"
headers = {
"Authorization": "Bearer service_token_xyz..."
}
params = {
"name": "Customer Portal Analytics"
}
response = requests.delete(url, headers=headers, params=params)
data = response.json()
print(f"Deleted Data App: {data['name']}")
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
public class DeleteDataApp {
public static void main(String[] args) throws Exception {
HttpClient client = HttpClient.newHttpClient();
String name = URLEncoder.encode("Customer Portal Analytics", StandardCharsets.UTF_8);
String url = String.format(
"https://api.usedatabrain.com/api/v2/data-app?name=%s",
name
);
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(url))
.header("Authorization", "Bearer service_token_xyz...")
.DELETE()
.build();
HttpResponse<String> response = client.send(request,
HttpResponse.BodyHandlers.ofString());
System.out.println("Response: " + response.body());
}
}
package main
import (
"encoding/json"
"fmt"
"net/http"
"net/url"
)
type DeleteDataAppResponse struct {
Name string `json:"name"`
Error interface{} `json:"error"`
}
func main() {
baseURL := "https://api.usedatabrain.com/api/v2/data-app"
params := url.Values{}
params.Add("name", "Customer Portal Analytics")
fullURL := fmt.Sprintf("%s?%s", baseURL, params.Encode())
req, _ := http.NewRequest("DELETE", fullURL, nil)
req.Header.Set("Authorization", "Bearer service_token_xyz...")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
var result DeleteDataAppResponse
json.NewDecoder(resp.Body).Decode(&result)
fmt.Printf("Deleted Data App: %s\n", result.Name)
}
<?php
$params = http_build_query([
'name' => 'Customer Portal Analytics'
]);
$url = 'https://api.usedatabrain.com/api/v2/data-app?' . $params;
$options = [
'http' => [
'header' => 'Authorization: Bearer service_token_xyz...',
'method' => 'DELETE'
]
];
$context = stream_context_create($options);
$result = file_get_contents($url, false, $context);
$response = json_decode($result, true);
echo "Deleted Data App: " . $response['name'];
?>
require 'net/http'
require 'json'
uri = URI('https://api.usedatabrain.com/api/v2/data-app')
params = { name: 'Customer Portal Analytics' }
uri.query = URI.encode_www_form(params)
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Delete.new(uri)
request['Authorization'] = 'Bearer service_token_xyz...'
response = http.request(request)
result = JSON.parse(response.body)
puts "Deleted Data App: #{result['name']}"
{
"name": "Customer Portal Analytics"
}
{
"error": {
"code": "INVALID_REQUEST_BODY",
"message": "\"name\" is required"
}
}
{
"error": {
"code": "DATA_APP_NOT_FOUND",
"message": "Data app not found"
}
}
{
"error": {
"code": "AUTHENTICATION_ERROR",
"message": "Invalid Service Token"
}
}
{
"error": {
"code": "INTERNAL_SERVER_ERROR",
"message": "Data app not found"
}
}
Data App CRUD
Delete Data App
Permanently delete a Data App and all its associated resources.
curl --request DELETE \
--url 'https://api.usedatabrain.com/api/v2/data-app?name=Customer%20Portal%20Analytics' \
--header 'Authorization: Bearer service_token_xyz...'
const dataAppName = 'Customer Portal Analytics';
const response = await fetch(`https://api.usedatabrain.com/api/v2/data-app?name=${encodeURIComponent(dataAppName)}`, {
method: 'DELETE',
headers: {
'Authorization': 'Bearer service_token_xyz...'
}
});
const data = await response.json();
console.log('Deleted Data App:', data.name);
import requests
from urllib.parse import quote
url = "https://api.usedatabrain.com/api/v2/data-app"
headers = {
"Authorization": "Bearer service_token_xyz..."
}
params = {
"name": "Customer Portal Analytics"
}
response = requests.delete(url, headers=headers, params=params)
data = response.json()
print(f"Deleted Data App: {data['name']}")
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
public class DeleteDataApp {
public static void main(String[] args) throws Exception {
HttpClient client = HttpClient.newHttpClient();
String name = URLEncoder.encode("Customer Portal Analytics", StandardCharsets.UTF_8);
String url = String.format(
"https://api.usedatabrain.com/api/v2/data-app?name=%s",
name
);
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(url))
.header("Authorization", "Bearer service_token_xyz...")
.DELETE()
.build();
HttpResponse<String> response = client.send(request,
HttpResponse.BodyHandlers.ofString());
System.out.println("Response: " + response.body());
}
}
package main
import (
"encoding/json"
"fmt"
"net/http"
"net/url"
)
type DeleteDataAppResponse struct {
Name string `json:"name"`
Error interface{} `json:"error"`
}
func main() {
baseURL := "https://api.usedatabrain.com/api/v2/data-app"
params := url.Values{}
params.Add("name", "Customer Portal Analytics")
fullURL := fmt.Sprintf("%s?%s", baseURL, params.Encode())
req, _ := http.NewRequest("DELETE", fullURL, nil)
req.Header.Set("Authorization", "Bearer service_token_xyz...")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
var result DeleteDataAppResponse
json.NewDecoder(resp.Body).Decode(&result)
fmt.Printf("Deleted Data App: %s\n", result.Name)
}
<?php
$params = http_build_query([
'name' => 'Customer Portal Analytics'
]);
$url = 'https://api.usedatabrain.com/api/v2/data-app?' . $params;
$options = [
'http' => [
'header' => 'Authorization: Bearer service_token_xyz...',
'method' => 'DELETE'
]
];
$context = stream_context_create($options);
$result = file_get_contents($url, false, $context);
$response = json_decode($result, true);
echo "Deleted Data App: " . $response['name'];
?>
require 'net/http'
require 'json'
uri = URI('https://api.usedatabrain.com/api/v2/data-app')
params = { name: 'Customer Portal Analytics' }
uri.query = URI.encode_www_form(params)
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Delete.new(uri)
request['Authorization'] = 'Bearer service_token_xyz...'
response = http.request(request)
result = JSON.parse(response.body)
puts "Deleted Data App: #{result['name']}"
{
"name": "Customer Portal Analytics"
}
{
"error": {
"code": "INVALID_REQUEST_BODY",
"message": "\"name\" is required"
}
}
{
"error": {
"code": "DATA_APP_NOT_FOUND",
"message": "Data app not found"
}
}
{
"error": {
"code": "AUTHENTICATION_ERROR",
"message": "Invalid Service Token"
}
}
{
"error": {
"code": "INTERNAL_SERVER_ERROR",
"message": "Data app not found"
}
}
DELETE
/
api
/
v2
/
data-app
curl --request DELETE \
--url 'https://api.usedatabrain.com/api/v2/data-app?name=Customer%20Portal%20Analytics' \
--header 'Authorization: Bearer service_token_xyz...'
const dataAppName = 'Customer Portal Analytics';
const response = await fetch(`https://api.usedatabrain.com/api/v2/data-app?name=${encodeURIComponent(dataAppName)}`, {
method: 'DELETE',
headers: {
'Authorization': 'Bearer service_token_xyz...'
}
});
const data = await response.json();
console.log('Deleted Data App:', data.name);
import requests
from urllib.parse import quote
url = "https://api.usedatabrain.com/api/v2/data-app"
headers = {
"Authorization": "Bearer service_token_xyz..."
}
params = {
"name": "Customer Portal Analytics"
}
response = requests.delete(url, headers=headers, params=params)
data = response.json()
print(f"Deleted Data App: {data['name']}")
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
public class DeleteDataApp {
public static void main(String[] args) throws Exception {
HttpClient client = HttpClient.newHttpClient();
String name = URLEncoder.encode("Customer Portal Analytics", StandardCharsets.UTF_8);
String url = String.format(
"https://api.usedatabrain.com/api/v2/data-app?name=%s",
name
);
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(url))
.header("Authorization", "Bearer service_token_xyz...")
.DELETE()
.build();
HttpResponse<String> response = client.send(request,
HttpResponse.BodyHandlers.ofString());
System.out.println("Response: " + response.body());
}
}
package main
import (
"encoding/json"
"fmt"
"net/http"
"net/url"
)
type DeleteDataAppResponse struct {
Name string `json:"name"`
Error interface{} `json:"error"`
}
func main() {
baseURL := "https://api.usedatabrain.com/api/v2/data-app"
params := url.Values{}
params.Add("name", "Customer Portal Analytics")
fullURL := fmt.Sprintf("%s?%s", baseURL, params.Encode())
req, _ := http.NewRequest("DELETE", fullURL, nil)
req.Header.Set("Authorization", "Bearer service_token_xyz...")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
var result DeleteDataAppResponse
json.NewDecoder(resp.Body).Decode(&result)
fmt.Printf("Deleted Data App: %s\n", result.Name)
}
<?php
$params = http_build_query([
'name' => 'Customer Portal Analytics'
]);
$url = 'https://api.usedatabrain.com/api/v2/data-app?' . $params;
$options = [
'http' => [
'header' => 'Authorization: Bearer service_token_xyz...',
'method' => 'DELETE'
]
];
$context = stream_context_create($options);
$result = file_get_contents($url, false, $context);
$response = json_decode($result, true);
echo "Deleted Data App: " . $response['name'];
?>
require 'net/http'
require 'json'
uri = URI('https://api.usedatabrain.com/api/v2/data-app')
params = { name: 'Customer Portal Analytics' }
uri.query = URI.encode_www_form(params)
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Delete.new(uri)
request['Authorization'] = 'Bearer service_token_xyz...'
response = http.request(request)
result = JSON.parse(response.body)
puts "Deleted Data App: #{result['name']}"
{
"name": "Customer Portal Analytics"
}
{
"error": {
"code": "INVALID_REQUEST_BODY",
"message": "\"name\" is required"
}
}
{
"error": {
"code": "DATA_APP_NOT_FOUND",
"message": "Data app not found"
}
}
{
"error": {
"code": "AUTHENTICATION_ERROR",
"message": "Invalid Service Token"
}
}
{
"error": {
"code": "INTERNAL_SERVER_ERROR",
"message": "Data app not found"
}
}
Permanently delete a Data App from your organization. This action removes the Data App along with all associated embed configurations and API tokens.
Use this endpoint for all new integrations. This is the recommended endpoint format.This endpoint still works but will be deprecated. Please migrate to the new endpoint format.
Destructive Operation: This action is irreversible. Deleting a Data App will:
- Remove all embed configurations associated with this Data App
- Invalidate all API tokens for this Data App
- Break any embedded dashboards using this Data App’s tokens
Authentication Requirement: This endpoint requires a service token (not a data app API key). Service tokens have elevated permissions to manage Data Apps across your organization.
Endpoint Formats
- New Endpoint (Recommended)
- Legacy Endpoint (Deprecated Soon)
DELETE https://api.usedatabrain.com/api/v2/data-app?name={name}
DELETE https://api.usedatabrain.com/api/v2/dataApp?name={name}
Authentication
This endpoint requires a service token in the Authorization header. Service tokens differ from data app API keys and provide organization-level permissions. To access your service token:- In Settings page, navigate to the Service Tokens section.
- Click the “Generate Token” button to create a new service token if you don’t have one already.
Headers
string
required
Bearer token for API authentication. Use your service token (not data app API key).
Authorization: Bearer service_token_xyz...
Query Parameters
string
required
The name of the Data App to delete. This must exactly match the Data App name.
Show Finding Data App names
Show Finding Data App names
- Use the List Data Apps API to get all Data App names
- Check your Databrain dashboard for Data App configurations
- The name is case-sensitive
Response
string
The name of the deleted Data App for confirmation.
object
Examples
HTTP Status Code Summary
| Status Code | Description |
|---|---|
200 | OK - Data App deleted successfully |
400 | Bad Request - Invalid request parameters |
500 | Internal Server Error - Server error occurred |
Possible Errors
| Error Code | HTTP Status | Description |
|---|---|---|
INVALID_REQUEST_BODY | 400 | Missing or invalid name parameter |
DATA_APP_NOT_FOUND | 400 | Data App with given name not found |
AUTHENTICATION_ERROR | 400 | Invalid or missing service token |
INTERNAL_SERVER_ERROR | 500 | Server error |
Quick Start Guide
1
Verify the Data App exists
Before deleting, confirm the Data App exists using the List Data Apps API:
curl --request GET \
--url 'https://api.usedatabrain.com/api/v2/data-app' \
--header 'Authorization: Bearer service_token_xyz...'
2
Update your applications
Before deletion, update your applications to remove any references to this Data App’s API tokens and embed configurations.
3
Delete the Data App
Make a DELETE request with the Data App name:
curl --request DELETE \
--url 'https://api.usedatabrain.com/api/v2/data-app?name=My%20Data%20App' \
--header 'Authorization: Bearer service_token_xyz...'
4
Verify deletion
Confirm the Data App was deleted by listing Data Apps again:
curl --request GET \
--url 'https://api.usedatabrain.com/api/v2/data-app' \
--header 'Authorization: Bearer service_token_xyz...'
Best Practices
Verify Before Delete
Always verify the Data App exists and check its embeds before deletion
Update Applications First
Update your applications to remove Data App references before deletion
Handle Errors
Implement proper error handling for failed deletions
Monitor Impact
Monitor for any broken embedded dashboards after deletion
Next Steps
Create Data App
Create new Data Apps to replace deleted ones
List Data Apps
View all remaining Data Apps
Create API Token
Generate API tokens for your Data Apps
List Embeds
View embed configurations for your Data Apps
⌘I

