curl --request POST \
--url https://api.egp.scale.com/v5/files/cloud_imports \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"files": [
{
"container": "<string>",
"filename": "<string>",
"filepath": "<string>",
"file_type": "<string>"
}
]
}
'import requests
url = "https://api.egp.scale.com/v5/files/cloud_imports"
payload = { "files": [
{
"container": "<string>",
"filename": "<string>",
"filepath": "<string>",
"file_type": "<string>"
}
] }
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
files: [
{
container: '<string>',
filename: '<string>',
filepath: '<string>',
file_type: '<string>'
}
]
})
};
fetch('https://api.egp.scale.com/v5/files/cloud_imports', 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.egp.scale.com/v5/files/cloud_imports",
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([
'files' => [
[
'container' => '<string>',
'filename' => '<string>',
'filepath' => '<string>',
'file_type' => '<string>'
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"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"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.egp.scale.com/v5/files/cloud_imports"
payload := strings.NewReader("{\n \"files\": [\n {\n \"container\": \"<string>\",\n \"filename\": \"<string>\",\n \"filepath\": \"<string>\",\n \"file_type\": \"<string>\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
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://api.egp.scale.com/v5/files/cloud_imports")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"files\": [\n {\n \"container\": \"<string>\",\n \"filename\": \"<string>\",\n \"filepath\": \"<string>\",\n \"file_type\": \"<string>\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.egp.scale.com/v5/files/cloud_imports")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"files\": [\n {\n \"container\": \"<string>\",\n \"filename\": \"<string>\",\n \"filepath\": \"<string>\",\n \"file_type\": \"<string>\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"results": [
{
"status": "SUCCESS",
"file": {
"id": "<string>",
"size": 123,
"md5_checksum": "<string>",
"filename": "<string>",
"mime_type": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"created_by": {
"id": "<string>",
"type": "user",
"object": "identity"
},
"object": "file",
"tags": {},
"duration_seconds": 123
}
}
]
}{
"results": [
{
"status": "SUCCESS",
"file": {
"id": "<string>",
"size": 123,
"md5_checksum": "<string>",
"filename": "<string>",
"mime_type": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"created_by": {
"id": "<string>",
"type": "user",
"object": "identity"
},
"object": "file",
"tags": {},
"duration_seconds": 123
}
}
]
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Import files from cloud storage
Register files that already exist in cloud blob storage as file records, in one batch.
Unlike upload, this transfers no bytes: each entry references an existing object by its container/bucket, filepath, filename, and MIME type, and only a metadata record pointing at that object is created. Files are imported independently and the response reports a per-file status. The response is 200 when every import succeeds and 207 when results are mixed, with each result marked SUCCESS or a failure reason (file does not exist, invalid permissions, or unknown error). Failed entries carry only the submitted filename and MIME type rather than a full file record.
curl --request POST \
--url https://api.egp.scale.com/v5/files/cloud_imports \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"files": [
{
"container": "<string>",
"filename": "<string>",
"filepath": "<string>",
"file_type": "<string>"
}
]
}
'import requests
url = "https://api.egp.scale.com/v5/files/cloud_imports"
payload = { "files": [
{
"container": "<string>",
"filename": "<string>",
"filepath": "<string>",
"file_type": "<string>"
}
] }
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
files: [
{
container: '<string>',
filename: '<string>',
filepath: '<string>',
file_type: '<string>'
}
]
})
};
fetch('https://api.egp.scale.com/v5/files/cloud_imports', 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.egp.scale.com/v5/files/cloud_imports",
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([
'files' => [
[
'container' => '<string>',
'filename' => '<string>',
'filepath' => '<string>',
'file_type' => '<string>'
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"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"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.egp.scale.com/v5/files/cloud_imports"
payload := strings.NewReader("{\n \"files\": [\n {\n \"container\": \"<string>\",\n \"filename\": \"<string>\",\n \"filepath\": \"<string>\",\n \"file_type\": \"<string>\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
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://api.egp.scale.com/v5/files/cloud_imports")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"files\": [\n {\n \"container\": \"<string>\",\n \"filename\": \"<string>\",\n \"filepath\": \"<string>\",\n \"file_type\": \"<string>\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.egp.scale.com/v5/files/cloud_imports")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"files\": [\n {\n \"container\": \"<string>\",\n \"filename\": \"<string>\",\n \"filepath\": \"<string>\",\n \"file_type\": \"<string>\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"results": [
{
"status": "SUCCESS",
"file": {
"id": "<string>",
"size": 123,
"md5_checksum": "<string>",
"filename": "<string>",
"mime_type": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"created_by": {
"id": "<string>",
"type": "user",
"object": "identity"
},
"object": "file",
"tags": {},
"duration_seconds": 123
}
}
]
}{
"results": [
{
"status": "SUCCESS",
"file": {
"id": "<string>",
"size": 123,
"md5_checksum": "<string>",
"filename": "<string>",
"mime_type": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"created_by": {
"id": "<string>",
"type": "user",
"object": "identity"
},
"object": "file",
"tags": {},
"duration_seconds": 123
}
}
]
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Authorizations
Headers
Body
List of files to import from cloud storage
Show child attributes
Show child attributes
Response
All files imported successfully
Results for each file import attempt
Show child attributes
Show child attributes

