List all files
curl --request GET \
--url https://api.uk.veridox.ai/files \
--header 'x-api-key: <api-key>'import requests
url = "https://api.uk.veridox.ai/files"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.uk.veridox.ai/files', 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.uk.veridox.ai/files",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <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.uk.veridox.ai/files"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.uk.veridox.ai/files")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.uk.veridox.ai/files")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"files": [
{
"file_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"case_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"case_label": "<string>",
"label": "<string>",
"mime_type": "<string>",
"thumbnail_url": "<string>",
"current_risk_score": "<string>",
"analysis_status": "waiting_for_upload",
"analysis_outcome": "success",
"current_analysis_phase": "<string>",
"uploaded_at": "2023-11-07T05:31:56Z",
"created_at": "2023-11-07T05:31:56Z",
"team_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"team_name": "<string>"
}
],
"total": 123
}{
"error_code": "request.cases.file.missing-risk-score",
"error_message": "User tried to perform an invalid operation on a file without a risk score.",
"error_details": {
"field": "email_address"
}
}{
"error_code": "request.cases.file.missing-risk-score",
"error_message": "User tried to perform an invalid operation on a file without a risk score.",
"error_details": {
"field": "email_address"
}
}{
"error_code": "request.cases.file.missing-risk-score",
"error_message": "User tried to perform an invalid operation on a file without a risk score.",
"error_details": {
"field": "email_address"
}
}Files
List Files
Retrieve a paginated list of the files you can reach, across all cases.
GET
/
files
List all files
curl --request GET \
--url https://api.uk.veridox.ai/files \
--header 'x-api-key: <api-key>'import requests
url = "https://api.uk.veridox.ai/files"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.uk.veridox.ai/files', 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.uk.veridox.ai/files",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <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.uk.veridox.ai/files"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.uk.veridox.ai/files")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.uk.veridox.ai/files")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"files": [
{
"file_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"case_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"case_label": "<string>",
"label": "<string>",
"mime_type": "<string>",
"thumbnail_url": "<string>",
"current_risk_score": "<string>",
"analysis_status": "waiting_for_upload",
"analysis_outcome": "success",
"current_analysis_phase": "<string>",
"uploaded_at": "2023-11-07T05:31:56Z",
"created_at": "2023-11-07T05:31:56Z",
"team_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"team_name": "<string>"
}
],
"total": 123
}{
"error_code": "request.cases.file.missing-risk-score",
"error_message": "User tried to perform an invalid operation on a file without a risk score.",
"error_details": {
"field": "email_address"
}
}{
"error_code": "request.cases.file.missing-risk-score",
"error_message": "User tried to perform an invalid operation on a file without a risk score.",
"error_details": {
"field": "email_address"
}
}{
"error_code": "request.cases.file.missing-risk-score",
"error_message": "User tried to perform an invalid operation on a file without a risk score.",
"error_details": {
"field": "email_address"
}
}Retrieve a paginated list of files across all cases, with their metadata, analysis status and risk scores.
Permission
You see the files you uploaded and the files recipients uploaded through document requests into cases you created, or every file in your organisation if you haveorganisation_files:read or your organisation has shared cases enabled. An API key without organisation_files:read receives an empty list, unless your organisation has shared cases enabled. See Permissions and API Keys.
Pass scope=own to see only your own files, or scope=org to ask for every file in the organisation. If you cannot see every file, scope=org returns 400 with request.cases.case-file.org-scope-not-permitted.
Key Features
- Pagination: Use
limitandoffsetquery parameters for large result sets. - Reverse Chronological: Files are returned newest first.
- Unified View: See files regardless of which case they belong to.
Best Practices
- Batch Processing: Use a
limitof 100 for batch background processing. - UI Display: Use a
limitof 20-50 for optimal UI performance and loading speed. - Status Filtering: Check the
analysis_statusto determine which files have completed forensic review.
Authorizations
Query Parameters
Maximum number of files to return
Required range:
1 <= x <= 100Number of files to skip for pagination
Required range:
0 <= x <= 9007199254740991Field to sort by
Available options:
date_created, risk_score Sort order: asc (ascending) or desc (descending)
Available options:
asc, desc Explicitly request a visibility scope. "own" forces the result to only files the caller created, even if they can view the whole organisation. "org" explicitly requests every file in the organisation — rejected with 400 if the caller cannot view org-wide. Omitted (default): today's behaviour is unchanged — the caller's resolved org-wide visibility decides the result set, with no rejection.
Available options:
own, org Was this page helpful?
⌘I