Upload an asset
curl --request POST \
--url https://{customer-tenant}.nuwacom.ai/api/kb/assets/upload \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: multipart/form-data' \
--form 'spaceId=<string>' \
--form 'file=<unknown>' \
--form connectorId=123 \
--form 'metadata={}' \
--form 'path=<string>'const form = new FormData();
form.append('spaceId', '<string>');
form.append('file', '<unknown>');
form.append('connectorId', '123');
form.append('metadata', '{}');
form.append('path', '<string>');
const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
options.body = form;
fetch('https://{customer-tenant}.nuwacom.ai/api/kb/assets/upload', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://{customer-tenant}.nuwacom.ai/api/kb/assets/upload"
payload = "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"spaceId\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"file\"\r\n\r\n<unknown>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"connectorId\"\r\n\r\n123\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"metadata\"\r\n\r\n{}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"path\"\r\n\r\n<string>\r\n-----011000010111000001101001--"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, data=payload, headers=headers)
print(response.text)package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://{customer-tenant}.nuwacom.ai/api/kb/assets/upload"
payload := strings.NewReader("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"spaceId\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"file\"\r\n\r\n<unknown>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"connectorId\"\r\n\r\n123\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"metadata\"\r\n\r\n{}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"path\"\r\n\r\n<string>\r\n-----011000010111000001101001--")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://{customer-tenant}.nuwacom.ai/api/kb/assets/upload",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"spaceId\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"file\"\r\n\r\n<unknown>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"connectorId\"\r\n\r\n123\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"metadata\"\r\n\r\n{}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"path\"\r\n\r\n<string>\r\n-----011000010111000001101001--",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: multipart/form-data"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}HttpResponse<String> response = Unirest.post("https://{customer-tenant}.nuwacom.ai/api/kb/assets/upload")
.header("Authorization", "Bearer <token>")
.body("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"spaceId\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"file\"\r\n\r\n<unknown>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"connectorId\"\r\n\r\n123\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"metadata\"\r\n\r\n{}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"path\"\r\n\r\n<string>\r\n-----011000010111000001101001--")
.asString();{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}Assets
Upload an asset
Upload an asset to the system
POST
/
api
/
kb
/
assets
/
upload
Upload an asset
curl --request POST \
--url https://{customer-tenant}.nuwacom.ai/api/kb/assets/upload \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: multipart/form-data' \
--form 'spaceId=<string>' \
--form 'file=<unknown>' \
--form connectorId=123 \
--form 'metadata={}' \
--form 'path=<string>'const form = new FormData();
form.append('spaceId', '<string>');
form.append('file', '<unknown>');
form.append('connectorId', '123');
form.append('metadata', '{}');
form.append('path', '<string>');
const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
options.body = form;
fetch('https://{customer-tenant}.nuwacom.ai/api/kb/assets/upload', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://{customer-tenant}.nuwacom.ai/api/kb/assets/upload"
payload = "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"spaceId\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"file\"\r\n\r\n<unknown>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"connectorId\"\r\n\r\n123\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"metadata\"\r\n\r\n{}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"path\"\r\n\r\n<string>\r\n-----011000010111000001101001--"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, data=payload, headers=headers)
print(response.text)package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://{customer-tenant}.nuwacom.ai/api/kb/assets/upload"
payload := strings.NewReader("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"spaceId\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"file\"\r\n\r\n<unknown>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"connectorId\"\r\n\r\n123\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"metadata\"\r\n\r\n{}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"path\"\r\n\r\n<string>\r\n-----011000010111000001101001--")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://{customer-tenant}.nuwacom.ai/api/kb/assets/upload",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"spaceId\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"file\"\r\n\r\n<unknown>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"connectorId\"\r\n\r\n123\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"metadata\"\r\n\r\n{}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"path\"\r\n\r\n<string>\r\n-----011000010111000001101001--",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: multipart/form-data"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}HttpResponse<String> response = Unirest.post("https://{customer-tenant}.nuwacom.ai/api/kb/assets/upload")
.header("Authorization", "Bearer <token>")
.body("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"spaceId\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"file\"\r\n\r\n<unknown>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"connectorId\"\r\n\r\n123\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"metadata\"\r\n\r\n{}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"path\"\r\n\r\n<string>\r\n-----011000010111000001101001--")
.asString();{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
multipart/form-data
Unique ID of the space the asset should be added to.
Required string length:
2 - 6The file to upload. This contains the name, MIME type, and data.
Identifier of the connector (e.g., SharePoint, Google Drive) the asset belongs to.
JSON metadata string that will be stored alongside the asset (e.g., author, custom tags).
Show child attributes
Show child attributes
Hierarchical path (array of folder names) describing where the asset lives in the connector.
Response
Asset already exists
⌘I