curl --request DELETE \
--url https://api.extole.io/v6/report-types/{id} \
--header 'Authorization: <api-key>'import requests
url = "https://api.extole.io/v6/report-types/{id}"
headers = {"Authorization": "<api-key>"}
response = requests.delete(url, headers=headers)
print(response.text)const options = {method: 'DELETE', headers: {Authorization: '<api-key>'}};
fetch('https://api.extole.io/v6/report-types/{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://api.extole.io/v6/report-types/{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 => [
"Authorization: <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://api.extole.io/v6/report-types/{id}"
req, _ := http.NewRequest("DELETE", url, nil)
req.Header.Add("Authorization", "<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://api.extole.io/v6/report-types/{id}")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.extole.io/v6/report-types/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Delete.new(url)
request["Authorization"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"allowed_scopes": [
"CLIENT_ADMIN"
],
"categories": [
"<string>"
],
"component_ids": [
"<string>"
],
"component_references": [
{
"component_id": "<string>",
"socket_names": [
"<string>"
]
}
],
"data_sources": [
"AUDIT_EMAIL"
],
"data_start": "2025-10-24T02:00:00-07:00",
"description": "<string>",
"display_name": "<string>",
"executor_type": "DASHBOARD",
"formats": [
"CSV"
],
"name": "<string>",
"parameters": [
{
"category": "<string>",
"default_value": "<string>",
"description": "<string>",
"display_name": "<string>",
"is_required": true,
"name": "<string>",
"order": 123,
"type": {
"name": "AUDIENCE_ID",
"value_type": "DYNAMIC",
"values": [
"<string>"
]
}
}
],
"preview_columns": [
{
"name": "<string>",
"note": "<string>",
"sample_value": "<string>"
}
],
"scopes": [
"CLIENT_ADMIN"
],
"tags": [
{
"name": "<string>",
"type": "GLOBAL"
}
],
"type": "CONFIGURED",
"visibility": "EXTOLE_ONLY",
"created_date": "2025-10-24T02:00:00-07:00",
"updated_date": "2025-10-24T02:00:00-07:00"
}Delete a report type
Deletes the supplied report type. Returns the deleted record on success. Fails with 400 report_type_has_dependent_types if other report types depend on it; delete or detach the dependents first.
curl --request DELETE \
--url https://api.extole.io/v6/report-types/{id} \
--header 'Authorization: <api-key>'import requests
url = "https://api.extole.io/v6/report-types/{id}"
headers = {"Authorization": "<api-key>"}
response = requests.delete(url, headers=headers)
print(response.text)const options = {method: 'DELETE', headers: {Authorization: '<api-key>'}};
fetch('https://api.extole.io/v6/report-types/{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://api.extole.io/v6/report-types/{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 => [
"Authorization: <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://api.extole.io/v6/report-types/{id}"
req, _ := http.NewRequest("DELETE", url, nil)
req.Header.Add("Authorization", "<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://api.extole.io/v6/report-types/{id}")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.extole.io/v6/report-types/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Delete.new(url)
request["Authorization"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"allowed_scopes": [
"CLIENT_ADMIN"
],
"categories": [
"<string>"
],
"component_ids": [
"<string>"
],
"component_references": [
{
"component_id": "<string>",
"socket_names": [
"<string>"
]
}
],
"data_sources": [
"AUDIT_EMAIL"
],
"data_start": "2025-10-24T02:00:00-07:00",
"description": "<string>",
"display_name": "<string>",
"executor_type": "DASHBOARD",
"formats": [
"CSV"
],
"name": "<string>",
"parameters": [
{
"category": "<string>",
"default_value": "<string>",
"description": "<string>",
"display_name": "<string>",
"is_required": true,
"name": "<string>",
"order": 123,
"type": {
"name": "AUDIENCE_ID",
"value_type": "DYNAMIC",
"values": [
"<string>"
]
}
}
],
"preview_columns": [
{
"name": "<string>",
"note": "<string>",
"sample_value": "<string>"
}
],
"scopes": [
"CLIENT_ADMIN"
],
"tags": [
{
"name": "<string>",
"type": "GLOBAL"
}
],
"type": "CONFIGURED",
"visibility": "EXTOLE_ONLY",
"created_date": "2025-10-24T02:00:00-07:00",
"updated_date": "2025-10-24T02:00:00-07:00"
}Authorizations
Path Parameters
The Extole unique report type identifier.
Response
Deleted report type definition.
- Option 1
- Option 2
- Option 3
- Option 4
Report type definition. Polymorphic on type: SQL, SPARK, DASHBOARD, and CONFIGURED share the common metadata below (display name, description, scopes, parameters, formats, tags, data sources) and add their own type-specific fields.
Scopes the report type may be configured for. Superset of scopes.
Scopes the report type may be configured for. Superset of scopes.
CLIENT_ADMIN, CLIENT_SUPERUSER, CONSUMER_PUBLIC, USER_SUPPORT Categories used to group report types in the dashboard report builder.
Categories used to group report types in the dashboard report builder.
Show child attributes
Show child attributes
Underlying data sources the report type reads from.
Underlying data sources the report type reads from.
AUDIT_EMAIL, BATCH, CLIENT, CLIENT_CHANGE, CONSUMER, CONSUMER_PROFILE, DASHBOARD, DATA_INTELLIGENCE, MESSAGE, NOTIFICATION, PROFILE, REWARD, REWARD_COMMAND, WEBHOOK, WEBHOOK_DISPATCH_RESULT RFC 3339 or RFC 9557 date-time with a numeric UTC offset and an optional IANA time-zone suffix in square brackets. Precision up to milliseconds.
^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d{1,3})?(Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])(\[[^\]]+\])?$"2025-10-24T02:00:00-07:00"
Short description shown alongside the report type in the dashboard.
Human-readable name shown in the dashboard.
Engine that executes the report (e.g. SQL, Spark).
DASHBOARD, SPARK, SQL Output formats the report type can produce (e.g. CSV, JSON).
Output formats the report type can produce (e.g. CSV, JSON).
CSV, HEADLESS_CSV, HEADLESS_PSV, JSON, JSONL, PSV, XLSX Stable internal name. Use display_name for UI; name for programmatic lookup.
Declared parameters (static + dynamic) the report type accepts.
Show child attributes
Show child attributes
Column metadata for the report type's preview output.
Show child attributes
Show child attributes
Scopes the report type currently applies to (e.g. CLIENT, CAMPAIGN).
Scopes the report type currently applies to (e.g. CLIENT, CAMPAIGN).
CLIENT_ADMIN, CLIENT_SUPERUSER, CONSUMER_PUBLIC, USER_SUPPORT Tags attached to the report type, used for filtering and grouping.
Show child attributes
Show child attributes
Discriminator selecting the report-type shape.
CONFIGURED Whether the report type is PUBLIC, PRIVATE, or restricted.
EXTOLE_ONLY, PRIVATE, PUBLIC RFC 3339 or RFC 9557 date-time with a numeric UTC offset and an optional IANA time-zone suffix in square brackets. Precision up to milliseconds.
^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d{1,3})?(Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])(\[[^\]]+\])?$"2025-10-24T02:00:00-07:00"
RFC 3339 or RFC 9557 date-time with a numeric UTC offset and an optional IANA time-zone suffix in square brackets. Precision up to milliseconds.
^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d{1,3})?(Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])(\[[^\]]+\])?$"2025-10-24T02:00:00-07:00"
