curl --request POST \
--url https://app.flextell.ai/api/v1/files/bulk-delete \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'X-Tenant: <x-tenant>' \
--data '
{
"file_ids": [
2
],
"select_all": true,
"filters": {
"search": "<string>",
"fileable_id": 2,
"customer_id": 123,
"lead_id": 123,
"recently_sent": true,
"favorite": true,
"created_at_from": "2023-11-07T05:31:56Z",
"created_at_to": "2023-11-07T05:31:56Z"
},
"except_ids": [
2
]
}
'import requests
url = "https://app.flextell.ai/api/v1/files/bulk-delete"
payload = {
"file_ids": [2],
"select_all": True,
"filters": {
"search": "<string>",
"fileable_id": 2,
"customer_id": 123,
"lead_id": 123,
"recently_sent": True,
"favorite": True,
"created_at_from": "2023-11-07T05:31:56Z",
"created_at_to": "2023-11-07T05:31:56Z"
},
"except_ids": [2]
}
headers = {
"X-Tenant": "<x-tenant>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'X-Tenant': '<x-tenant>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
file_ids: [2],
select_all: true,
filters: {
search: '<string>',
fileable_id: 2,
customer_id: 123,
lead_id: 123,
recently_sent: true,
favorite: true,
created_at_from: '2023-11-07T05:31:56Z',
created_at_to: '2023-11-07T05:31:56Z'
},
except_ids: [2]
})
};
fetch('https://app.flextell.ai/api/v1/files/bulk-delete', 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.flextell.ai/api/v1/files/bulk-delete",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'file_ids' => [
2
],
'select_all' => true,
'filters' => [
'search' => '<string>',
'fileable_id' => 2,
'customer_id' => 123,
'lead_id' => 123,
'recently_sent' => true,
'favorite' => true,
'created_at_from' => '2023-11-07T05:31:56Z',
'created_at_to' => '2023-11-07T05:31:56Z'
],
'except_ids' => [
2
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"X-Tenant: <x-tenant>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://app.flextell.ai/api/v1/files/bulk-delete"
payload := strings.NewReader("{\n \"file_ids\": [\n 2\n ],\n \"select_all\": true,\n \"filters\": {\n \"search\": \"<string>\",\n \"fileable_id\": 2,\n \"customer_id\": 123,\n \"lead_id\": 123,\n \"recently_sent\": true,\n \"favorite\": true,\n \"created_at_from\": \"2023-11-07T05:31:56Z\",\n \"created_at_to\": \"2023-11-07T05:31:56Z\"\n },\n \"except_ids\": [\n 2\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Tenant", "<x-tenant>")
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://app.flextell.ai/api/v1/files/bulk-delete")
.header("X-Tenant", "<x-tenant>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"file_ids\": [\n 2\n ],\n \"select_all\": true,\n \"filters\": {\n \"search\": \"<string>\",\n \"fileable_id\": 2,\n \"customer_id\": 123,\n \"lead_id\": 123,\n \"recently_sent\": true,\n \"favorite\": true,\n \"created_at_from\": \"2023-11-07T05:31:56Z\",\n \"created_at_to\": \"2023-11-07T05:31:56Z\"\n },\n \"except_ids\": [\n 2\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.flextell.ai/api/v1/files/bulk-delete")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Tenant"] = '<x-tenant>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"file_ids\": [\n 2\n ],\n \"select_all\": true,\n \"filters\": {\n \"search\": \"<string>\",\n \"fileable_id\": 2,\n \"customer_id\": 123,\n \"lead_id\": 123,\n \"recently_sent\": true,\n \"favorite\": true,\n \"created_at_from\": \"2023-11-07T05:31:56Z\",\n \"created_at_to\": \"2023-11-07T05:31:56Z\"\n },\n \"except_ids\": [\n 2\n ]\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"success_count": 123,
"failed_count": 123,
"results": [
{
"file_id": 123,
"success": true,
"error_code": "<string>",
"message": "<string>"
}
]
}
}{
"message": "<string>"
}{
"message": "<string>"
}{
"message": "<string>",
"errors": {}
}Delete multiple files
Send either file_ids or select_all with the file list’s filters in filters (the parameters of
GET /files) and optional except_ids.
With file_ids each file is checked and deleted on its own and the response reports a result per file: a
missing file fails with RESOURCE_NOT_FOUND, an erased patient with CUSTOMER_ERASED, another rep’s lead
with LEAD_NOT_ASSIGNED, a gallery image the caller may not edit, or chat media whose message the caller
may not delete, with FORBIDDEN. Deleting chat media also marks its message deleted in the conversation.
With select_all the files are deleted in the background with the same checks: the response carries queued
and the number of files, and the caller gets an inventory_bulk_operation notification with how many were
deleted and how many were skipped, by error code. Files added after the request are left out.
curl --request POST \
--url https://app.flextell.ai/api/v1/files/bulk-delete \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'X-Tenant: <x-tenant>' \
--data '
{
"file_ids": [
2
],
"select_all": true,
"filters": {
"search": "<string>",
"fileable_id": 2,
"customer_id": 123,
"lead_id": 123,
"recently_sent": true,
"favorite": true,
"created_at_from": "2023-11-07T05:31:56Z",
"created_at_to": "2023-11-07T05:31:56Z"
},
"except_ids": [
2
]
}
'import requests
url = "https://app.flextell.ai/api/v1/files/bulk-delete"
payload = {
"file_ids": [2],
"select_all": True,
"filters": {
"search": "<string>",
"fileable_id": 2,
"customer_id": 123,
"lead_id": 123,
"recently_sent": True,
"favorite": True,
"created_at_from": "2023-11-07T05:31:56Z",
"created_at_to": "2023-11-07T05:31:56Z"
},
"except_ids": [2]
}
headers = {
"X-Tenant": "<x-tenant>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'X-Tenant': '<x-tenant>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
file_ids: [2],
select_all: true,
filters: {
search: '<string>',
fileable_id: 2,
customer_id: 123,
lead_id: 123,
recently_sent: true,
favorite: true,
created_at_from: '2023-11-07T05:31:56Z',
created_at_to: '2023-11-07T05:31:56Z'
},
except_ids: [2]
})
};
fetch('https://app.flextell.ai/api/v1/files/bulk-delete', 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.flextell.ai/api/v1/files/bulk-delete",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'file_ids' => [
2
],
'select_all' => true,
'filters' => [
'search' => '<string>',
'fileable_id' => 2,
'customer_id' => 123,
'lead_id' => 123,
'recently_sent' => true,
'favorite' => true,
'created_at_from' => '2023-11-07T05:31:56Z',
'created_at_to' => '2023-11-07T05:31:56Z'
],
'except_ids' => [
2
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"X-Tenant: <x-tenant>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://app.flextell.ai/api/v1/files/bulk-delete"
payload := strings.NewReader("{\n \"file_ids\": [\n 2\n ],\n \"select_all\": true,\n \"filters\": {\n \"search\": \"<string>\",\n \"fileable_id\": 2,\n \"customer_id\": 123,\n \"lead_id\": 123,\n \"recently_sent\": true,\n \"favorite\": true,\n \"created_at_from\": \"2023-11-07T05:31:56Z\",\n \"created_at_to\": \"2023-11-07T05:31:56Z\"\n },\n \"except_ids\": [\n 2\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Tenant", "<x-tenant>")
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://app.flextell.ai/api/v1/files/bulk-delete")
.header("X-Tenant", "<x-tenant>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"file_ids\": [\n 2\n ],\n \"select_all\": true,\n \"filters\": {\n \"search\": \"<string>\",\n \"fileable_id\": 2,\n \"customer_id\": 123,\n \"lead_id\": 123,\n \"recently_sent\": true,\n \"favorite\": true,\n \"created_at_from\": \"2023-11-07T05:31:56Z\",\n \"created_at_to\": \"2023-11-07T05:31:56Z\"\n },\n \"except_ids\": [\n 2\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.flextell.ai/api/v1/files/bulk-delete")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Tenant"] = '<x-tenant>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"file_ids\": [\n 2\n ],\n \"select_all\": true,\n \"filters\": {\n \"search\": \"<string>\",\n \"fileable_id\": 2,\n \"customer_id\": 123,\n \"lead_id\": 123,\n \"recently_sent\": true,\n \"favorite\": true,\n \"created_at_from\": \"2023-11-07T05:31:56Z\",\n \"created_at_to\": \"2023-11-07T05:31:56Z\"\n },\n \"except_ids\": [\n 2\n ]\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"success_count": 123,
"failed_count": 123,
"results": [
{
"file_id": 123,
"success": true,
"error_code": "<string>",
"message": "<string>"
}
]
}
}{
"message": "<string>"
}{
"message": "<string>"
}{
"message": "<string>",
"errors": {}
}Yetkilendirmeler
Başlıklar
Gövde
The selection is either file_ids or select_all with the file list's filters in filters
(the parameters of GET /files).