curl --request POST \
--url 'https://api.usedatabrain.com/api/v2/dataApp/datamart/delete' \
--header 'Authorization: Bearer dbn_live_abc123...' \
--header 'Content-Type: application/json' \
--data '{
"datamartName": "sales-analytics"
}'
const response = await fetch('https://api.usedatabrain.com/api/v2/dataApp/datamart/delete', {
method: 'POST',
headers: {
'Authorization': 'Bearer dbn_live_abc123...',
'Content-Type': 'application/json'
},
body: JSON.stringify({
datamartName: 'sales-analytics'
})
});
const data = await response.json();
console.log('Deleted datamart:', data.id);
import requests
url = "https://api.usedatabrain.com/api/v2/dataApp/datamart/delete"
headers = {
"Authorization": "Bearer dbn_live_abc123...",
"Content-Type": "application/json"
}
data = {
"datamartName": "sales-analytics"
}
response = requests.post(url, headers=headers, json=data)
result = response.json()
print(f"Deleted datamart: {result['id']}")
require 'net/http'
require 'json'
uri = URI('https://api.usedatabrain.com/api/v2/dataApp/datamart/delete')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Post.new(uri)
request['Authorization'] = 'Bearer dbn_live_abc123...'
request['Content-Type'] = 'application/json'
request.body = {
datamartName: 'sales-analytics'
}.to_json
response = http.request(request)
data = JSON.parse(response.body)
puts "Deleted datamart: #{data['id']}"
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;
public class DataBrainDeleteDatamartAPI {
public static void main(String[] args) throws Exception {
HttpClient client = HttpClient.newHttpClient();
String requestBody = """
{
"datamartName": "sales-analytics"
}""";
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://api.usedatabrain.com/api/v2/dataApp/datamart/delete"))
.header("Authorization", "Bearer dbn_live_abc123...")
.header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.ofString(requestBody))
.build();
HttpResponse<String> response = client.send(request,
HttpResponse.BodyHandlers.ofString());
System.out.println("Response: " + response.body());
}
}
package main
import (
"bytes"
"encoding/json"
"fmt"
"net/http"
)
type DeleteDatamartRequest struct {
DatamartName string `json:"datamartName"`
}
type DeleteDatamartResponse struct {
Id string `json:"id"`
Error interface{} `json:"error"`
}
func main() {
reqData := DeleteDatamartRequest{
DatamartName: "sales-analytics",
}
jsonData, _ := json.Marshal(reqData)
req, _ := http.NewRequest("POST", "https://api.usedatabrain.com/api/v2/dataApp/datamart/delete", bytes.NewBuffer(jsonData))
req.Header.Set("Authorization", "Bearer dbn_live_abc123...")
req.Header.Set("Content-Type", "application/json")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
var datamartResp DeleteDatamartResponse
json.NewDecoder(resp.Body).Decode(&datamartResp)
fmt.Printf("Deleted datamart: %s\n", datamartResp.Id)
}
<?php
$url = 'https://api.usedatabrain.com/api/v2/dataApp/datamart/delete';
$data = [
'datamartName' => 'sales-analytics'
];
$options = [
'http' => [
'header' => [
'Authorization: Bearer dbn_live_abc123...',
'Content-Type: application/json'
],
'method' => 'POST',
'content' => json_encode($data)
]
];
$context = stream_context_create($options);
$result = file_get_contents($url, false, $context);
$response = json_decode($result, true);
echo "Deleted datamart: " . $response['id'];
?>
{
"id": "sales-analytics",
"error": null
}
{
"error": {
"code": "INVALID_REQUEST_BODY",
"message": "Datamart not found",
"status": 400
}
}
curl --request POST \
--url 'https://api.usedatabrain.com/api/v2/dataApp/datamart/delete' \
--header 'Authorization: Bearer dbn_live_abc123...' \
--header 'Content-Type: application/json' \
--data '{
"datamartName": "sales-analytics"
}'
const response = await fetch('https://api.usedatabrain.com/api/v2/dataApp/datamart/delete', {
method: 'POST',
headers: {
'Authorization': 'Bearer dbn_live_abc123...',
'Content-Type': 'application/json'
},
body: JSON.stringify({
datamartName: 'sales-analytics'
})
});
const data = await response.json();
console.log('Deleted datamart:', data.id);
import requests
url = "https://api.usedatabrain.com/api/v2/dataApp/datamart/delete"
headers = {
"Authorization": "Bearer dbn_live_abc123...",
"Content-Type": "application/json"
}
data = {
"datamartName": "sales-analytics"
}
response = requests.post(url, headers=headers, json=data)
result = response.json()
print(f"Deleted datamart: {result['id']}")
require 'net/http'
require 'json'
uri = URI('https://api.usedatabrain.com/api/v2/dataApp/datamart/delete')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Post.new(uri)
request['Authorization'] = 'Bearer dbn_live_abc123...'
request['Content-Type'] = 'application/json'
request.body = {
datamartName: 'sales-analytics'
}.to_json
response = http.request(request)
data = JSON.parse(response.body)
puts "Deleted datamart: #{data['id']}"
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;
public class DataBrainDeleteDatamartAPI {
public static void main(String[] args) throws Exception {
HttpClient client = HttpClient.newHttpClient();
String requestBody = """
{
"datamartName": "sales-analytics"
}""";
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://api.usedatabrain.com/api/v2/dataApp/datamart/delete"))
.header("Authorization", "Bearer dbn_live_abc123...")
.header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.ofString(requestBody))
.build();
HttpResponse<String> response = client.send(request,
HttpResponse.BodyHandlers.ofString());
System.out.println("Response: " + response.body());
}
}
package main
import (
"bytes"
"encoding/json"
"fmt"
"net/http"
)
type DeleteDatamartRequest struct {
DatamartName string `json:"datamartName"`
}
type DeleteDatamartResponse struct {
Id string `json:"id"`
Error interface{} `json:"error"`
}
func main() {
reqData := DeleteDatamartRequest{
DatamartName: "sales-analytics",
}
jsonData, _ := json.Marshal(reqData)
req, _ := http.NewRequest("POST", "https://api.usedatabrain.com/api/v2/dataApp/datamart/delete", bytes.NewBuffer(jsonData))
req.Header.Set("Authorization", "Bearer dbn_live_abc123...")
req.Header.Set("Content-Type", "application/json")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
var datamartResp DeleteDatamartResponse
json.NewDecoder(resp.Body).Decode(&datamartResp)
fmt.Printf("Deleted datamart: %s\n", datamartResp.Id)
}
<?php
$url = 'https://api.usedatabrain.com/api/v2/dataApp/datamart/delete';
$data = [
'datamartName' => 'sales-analytics'
];
$options = [
'http' => [
'header' => [
'Authorization: Bearer dbn_live_abc123...',
'Content-Type: application/json'
],
'method' => 'POST',
'content' => json_encode($data)
]
];
$context = stream_context_create($options);
$result = file_get_contents($url, false, $context);
$response = json_decode($result, true);
echo "Deleted datamart: " . $response['id'];
?>
{
"id": "sales-analytics",
"error": null
}
{
"error": {
"code": "INVALID_REQUEST_BODY",
"message": "Datamart not found",
"status": 400
}
}
Datamart APIs
Delete Datamart
Delete a datamart from your organization. This action cannot be undone.
curl --request POST \
--url 'https://api.usedatabrain.com/api/v2/dataApp/datamart/delete' \
--header 'Authorization: Bearer dbn_live_abc123...' \
--header 'Content-Type: application/json' \
--data '{
"datamartName": "sales-analytics"
}'
const response = await fetch('https://api.usedatabrain.com/api/v2/dataApp/datamart/delete', {
method: 'POST',
headers: {
'Authorization': 'Bearer dbn_live_abc123...',
'Content-Type': 'application/json'
},
body: JSON.stringify({
datamartName: 'sales-analytics'
})
});
const data = await response.json();
console.log('Deleted datamart:', data.id);
import requests
url = "https://api.usedatabrain.com/api/v2/dataApp/datamart/delete"
headers = {
"Authorization": "Bearer dbn_live_abc123...",
"Content-Type": "application/json"
}
data = {
"datamartName": "sales-analytics"
}
response = requests.post(url, headers=headers, json=data)
result = response.json()
print(f"Deleted datamart: {result['id']}")
require 'net/http'
require 'json'
uri = URI('https://api.usedatabrain.com/api/v2/dataApp/datamart/delete')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Post.new(uri)
request['Authorization'] = 'Bearer dbn_live_abc123...'
request['Content-Type'] = 'application/json'
request.body = {
datamartName: 'sales-analytics'
}.to_json
response = http.request(request)
data = JSON.parse(response.body)
puts "Deleted datamart: #{data['id']}"
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;
public class DataBrainDeleteDatamartAPI {
public static void main(String[] args) throws Exception {
HttpClient client = HttpClient.newHttpClient();
String requestBody = """
{
"datamartName": "sales-analytics"
}""";
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://api.usedatabrain.com/api/v2/dataApp/datamart/delete"))
.header("Authorization", "Bearer dbn_live_abc123...")
.header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.ofString(requestBody))
.build();
HttpResponse<String> response = client.send(request,
HttpResponse.BodyHandlers.ofString());
System.out.println("Response: " + response.body());
}
}
package main
import (
"bytes"
"encoding/json"
"fmt"
"net/http"
)
type DeleteDatamartRequest struct {
DatamartName string `json:"datamartName"`
}
type DeleteDatamartResponse struct {
Id string `json:"id"`
Error interface{} `json:"error"`
}
func main() {
reqData := DeleteDatamartRequest{
DatamartName: "sales-analytics",
}
jsonData, _ := json.Marshal(reqData)
req, _ := http.NewRequest("POST", "https://api.usedatabrain.com/api/v2/dataApp/datamart/delete", bytes.NewBuffer(jsonData))
req.Header.Set("Authorization", "Bearer dbn_live_abc123...")
req.Header.Set("Content-Type", "application/json")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
var datamartResp DeleteDatamartResponse
json.NewDecoder(resp.Body).Decode(&datamartResp)
fmt.Printf("Deleted datamart: %s\n", datamartResp.Id)
}
<?php
$url = 'https://api.usedatabrain.com/api/v2/dataApp/datamart/delete';
$data = [
'datamartName' => 'sales-analytics'
];
$options = [
'http' => [
'header' => [
'Authorization: Bearer dbn_live_abc123...',
'Content-Type: application/json'
],
'method' => 'POST',
'content' => json_encode($data)
]
];
$context = stream_context_create($options);
$result = file_get_contents($url, false, $context);
$response = json_decode($result, true);
echo "Deleted datamart: " . $response['id'];
?>
{
"id": "sales-analytics",
"error": null
}
{
"error": {
"code": "INVALID_REQUEST_BODY",
"message": "Datamart not found",
"status": 400
}
}
DELETE
/
api
/
v2
/
data-app
/
datamart
curl --request POST \
--url 'https://api.usedatabrain.com/api/v2/dataApp/datamart/delete' \
--header 'Authorization: Bearer dbn_live_abc123...' \
--header 'Content-Type: application/json' \
--data '{
"datamartName": "sales-analytics"
}'
const response = await fetch('https://api.usedatabrain.com/api/v2/dataApp/datamart/delete', {
method: 'POST',
headers: {
'Authorization': 'Bearer dbn_live_abc123...',
'Content-Type': 'application/json'
},
body: JSON.stringify({
datamartName: 'sales-analytics'
})
});
const data = await response.json();
console.log('Deleted datamart:', data.id);
import requests
url = "https://api.usedatabrain.com/api/v2/dataApp/datamart/delete"
headers = {
"Authorization": "Bearer dbn_live_abc123...",
"Content-Type": "application/json"
}
data = {
"datamartName": "sales-analytics"
}
response = requests.post(url, headers=headers, json=data)
result = response.json()
print(f"Deleted datamart: {result['id']}")
require 'net/http'
require 'json'
uri = URI('https://api.usedatabrain.com/api/v2/dataApp/datamart/delete')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Post.new(uri)
request['Authorization'] = 'Bearer dbn_live_abc123...'
request['Content-Type'] = 'application/json'
request.body = {
datamartName: 'sales-analytics'
}.to_json
response = http.request(request)
data = JSON.parse(response.body)
puts "Deleted datamart: #{data['id']}"
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;
public class DataBrainDeleteDatamartAPI {
public static void main(String[] args) throws Exception {
HttpClient client = HttpClient.newHttpClient();
String requestBody = """
{
"datamartName": "sales-analytics"
}""";
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://api.usedatabrain.com/api/v2/dataApp/datamart/delete"))
.header("Authorization", "Bearer dbn_live_abc123...")
.header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.ofString(requestBody))
.build();
HttpResponse<String> response = client.send(request,
HttpResponse.BodyHandlers.ofString());
System.out.println("Response: " + response.body());
}
}
package main
import (
"bytes"
"encoding/json"
"fmt"
"net/http"
)
type DeleteDatamartRequest struct {
DatamartName string `json:"datamartName"`
}
type DeleteDatamartResponse struct {
Id string `json:"id"`
Error interface{} `json:"error"`
}
func main() {
reqData := DeleteDatamartRequest{
DatamartName: "sales-analytics",
}
jsonData, _ := json.Marshal(reqData)
req, _ := http.NewRequest("POST", "https://api.usedatabrain.com/api/v2/dataApp/datamart/delete", bytes.NewBuffer(jsonData))
req.Header.Set("Authorization", "Bearer dbn_live_abc123...")
req.Header.Set("Content-Type", "application/json")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
var datamartResp DeleteDatamartResponse
json.NewDecoder(resp.Body).Decode(&datamartResp)
fmt.Printf("Deleted datamart: %s\n", datamartResp.Id)
}
<?php
$url = 'https://api.usedatabrain.com/api/v2/dataApp/datamart/delete';
$data = [
'datamartName' => 'sales-analytics'
];
$options = [
'http' => [
'header' => [
'Authorization: Bearer dbn_live_abc123...',
'Content-Type: application/json'
],
'method' => 'POST',
'content' => json_encode($data)
]
];
$context = stream_context_create($options);
$result = file_get_contents($url, false, $context);
$response = json_decode($result, true);
echo "Deleted datamart: " . $response['id'];
?>
{
"id": "sales-analytics",
"error": null
}
{
"error": {
"code": "INVALID_REQUEST_BODY",
"message": "Datamart not found",
"status": 400
}
}
Permanently delete a datamart from your organization. This will remove the datamart and all its associated configurations.
Use this endpoint for all new integrations. Uses REST-ful DELETE method with query parameters.This endpoint still works but will be deprecated. Uses POST method with JSON body.
Endpoint Migration Notice: We’re transitioning to kebab-case endpoints. The new endpoint is
/api/v2/data-app/datamart. The old endpoint /api/v2/dataApp/datamart will be deprecated soon. Please update your integrations to use the new endpoint format.This action is irreversible. Once a datamart is deleted, all its data configurations and associated embed configurations will be permanently removed.
Endpoint Formats
- New Endpoint (Recommended)
- Legacy Endpoint (Deprecated Soon)
DELETE https://api.usedatabrain.com/api/v2/data-app/datamart?datamartName={name}
POST https://api.usedatabrain.com/api/v2/dataApp/datamart/delete
Content-Type: application/json
{
"datamartName": "sales-analytics"
}
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.
Authorization: Bearer dbn_live_abc123...
Query Parameters
string
required
The name of the datamart to delete. Must match an existing datamart name in your organization.
Show Finding datamart names
Show Finding datamart names
- Use the List Datamarts API to get all datamart names
- Check the response from datamart creation
- Available in the DataBrain dashboard when viewing datamarts
Response
string
The name of the deleted datamart for confirmation.
null
Error field, null when successful.
Examples
Legacy Endpoint Examples
The following examples use the deprecated POST endpoint. These are provided for reference only. Please use the DELETE endpoint examples above for all new integrations.
Error Codes
string
Invalid request body - Check that datamartName is provided and valid
string
Unexpected failure - Internal server error occurred
HTTP Status Code Summary
| Status Code | Description |
|---|---|
| 200 | OK - Datamart deleted successfully |
| 400 | Bad Request - Invalid request parameters or datamart not found |
| 401 | Unauthorized - Invalid or expired API token |
| 500 | Internal Server Error - Unexpected server error |
Possible Errors
| Code | Message | HTTP Status |
|---|---|---|
| INVALID_REQUEST_BODY | Datamart not found | 400 |
| INTERNAL_SERVER_ERROR | Unexpected failure | 500 |
Best Practices
Check Dependencies
Before deleting, verify no embed configurations depend on this datamart
Backup Data
Consider exporting important configurations before deletion
Test Environment
Test deletion process in a non-production environment first
Documentation
Document the deletion for audit and compliance purposes
Quick Start Guide
1
List your datamarts
First, see which datamarts you have available to identify the one to delete:
curl --request GET \
--url https://api.usedatabrain.com/api/v2/data-app/datamarts \
--header 'Authorization: Bearer dbn_live_abc123...'
2
Check dependencies
Before deleting, ensure no embed configurations are using this datamart. Use the List Embeds API to verify.
3
Delete the datamart
Make the deletion request with the exact datamart name as a query parameter:
curl --request DELETE \
--url 'https://api.usedatabrain.com/api/v2/data-app/datamart?datamartName=sales-analytics' \
--header 'Authorization: Bearer dbn_live_abc123...'
4
Update dependent configurations
Update any embed configurations that were using this datamart to reference a different datamart:
// Update embeds that used the deleted datamart
await updateEmbed({
embedId: 'embed_123',
accessSettings: {
datamartName: 'replacement-datamart'
}
});
Critical: This action permanently deletes the datamart and cannot be undone. Ensure all dependent configurations are updated before deletion.
Next Steps
Create Datamart
Create a new datamart to replace the deleted one
List Datamarts
View all remaining datamarts in your organization
Embed a Pre-built Dashboard/Metric
Create new embed configurations for your remaining datamarts
Guest Token API
Generate tokens for your updated configurations
⌘I

