curl
curl -X POST "https://sandbox-api.sannos.ai/v2/documents/upload/start" \
-H "X-API-Key: $EVE_COMPANY_KEY" \
-H "Content-Type: application/json" \
-d '{"auditLanguageId":"string","complianceFrameworkId":"string","complianceReviewId":"string","controlId":"string","files":[],"isConsolidated":true,"organizationUnitId":"string","selectedControlClusterIds":"string","selectedControlItemIds":"string"}'const res = await fetch("https://sandbox-api.sannos.ai/v2/documents/upload/start", {
method: "POST",
headers: { "X-API-Key": process.env.EVE_COMPANY_KEY, "Content-Type": "application/json" },
body: JSON.stringify({
"auditLanguageId": "string",
"complianceFrameworkId": "string",
"complianceReviewId": "string",
"controlId": "string",
"files": [],
"isConsolidated": true,
"organizationUnitId": "string",
"selectedControlClusterIds": "string",
"selectedControlItemIds": "string"
}),
});
const data = await res.json();import os, requests
res = requests.post(
"https://sandbox-api.sannos.ai/v2/documents/upload/start",
headers={"X-API-Key": os.environ["EVE_COMPANY_KEY"]},
json={
"auditLanguageId": "string",
"complianceFrameworkId": "string",
"complianceReviewId": "string",
"controlId": "string",
"files": [],
"isConsolidated": True,
"organizationUnitId": "string",
"selectedControlClusterIds": "string",
"selectedControlItemIds": "string"
},
)
data = res.json()<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://sandbox-api.sannos.ai/v2/documents/upload/start",
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([
'auditLanguageId' => '<string>',
'complianceFrameworkId' => '<string>',
'complianceReviewId' => '<string>',
'controlId' => '<string>',
'files' => [
[
'fileName' => '<string>',
'fileSize' => 123
]
],
'isConsolidated' => false,
'organizationUnitId' => '<string>',
'selectedControlClusterIds' => '<string>',
'selectedControlItemIds' => '<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://sandbox-api.sannos.ai/v2/documents/upload/start"
payload := strings.NewReader("{\n \"auditLanguageId\": \"<string>\",\n \"complianceFrameworkId\": \"<string>\",\n \"complianceReviewId\": \"<string>\",\n \"controlId\": \"<string>\",\n \"files\": [\n {\n \"fileName\": \"<string>\",\n \"fileSize\": 123\n }\n ],\n \"isConsolidated\": false,\n \"organizationUnitId\": \"<string>\",\n \"selectedControlClusterIds\": \"<string>\",\n \"selectedControlItemIds\": \"<string>\"\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://sandbox-api.sannos.ai/v2/documents/upload/start")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"auditLanguageId\": \"<string>\",\n \"complianceFrameworkId\": \"<string>\",\n \"complianceReviewId\": \"<string>\",\n \"controlId\": \"<string>\",\n \"files\": [\n {\n \"fileName\": \"<string>\",\n \"fileSize\": 123\n }\n ],\n \"isConsolidated\": false,\n \"organizationUnitId\": \"<string>\",\n \"selectedControlClusterIds\": \"<string>\",\n \"selectedControlItemIds\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox-api.sannos.ai/v2/documents/upload/start")
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 \"auditLanguageId\": \"<string>\",\n \"complianceFrameworkId\": \"<string>\",\n \"complianceReviewId\": \"<string>\",\n \"controlId\": \"<string>\",\n \"files\": [\n {\n \"fileName\": \"<string>\",\n \"fileSize\": 123\n }\n ],\n \"isConsolidated\": false,\n \"organizationUnitId\": \"<string>\",\n \"selectedControlClusterIds\": \"<string>\",\n \"selectedControlItemIds\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"expiresAt": "2023-11-07T05:31:56Z",
"files": [
{
"chunkSizeBytes": 123,
"fileId": "<string>",
"fileName": "<string>",
"totalChunks": 123
}
],
"sessionId": "<string>"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Documents
Start a chunked upload session for documents under an organization unit of any type.
Start a chunked upload session for one or more large documents.
Returns a session ID and per-file upload metadata (file ID, chunk size, total chunk count) to be used with the chunk upload endpoint.
Compliance Review Resolution: Provide exactly one of:
complianceReviewId- Append documents to an existing ComplianceRevieworganizationUnitId- Create a new ComplianceReview under an organization unit of any type. RequirescomplianceFrameworkIdandcontrolId.
Difference from v1:
POST /v1/documents/upload/start takes businessEntityId and completes only for
organization units of type business_entity. A session started here completes for
an active, unarchived organization unit of any type, whichever chunk path uploads its last chunk.
The organization unit is checked when the last chunk arrives, not at start.
Access Control: The session is scoped to the authenticated partner’s company.
POST
/
v2
/
documents
/
upload
/
start
curl
curl -X POST "https://sandbox-api.sannos.ai/v2/documents/upload/start" \
-H "X-API-Key: $EVE_COMPANY_KEY" \
-H "Content-Type: application/json" \
-d '{"auditLanguageId":"string","complianceFrameworkId":"string","complianceReviewId":"string","controlId":"string","files":[],"isConsolidated":true,"organizationUnitId":"string","selectedControlClusterIds":"string","selectedControlItemIds":"string"}'const res = await fetch("https://sandbox-api.sannos.ai/v2/documents/upload/start", {
method: "POST",
headers: { "X-API-Key": process.env.EVE_COMPANY_KEY, "Content-Type": "application/json" },
body: JSON.stringify({
"auditLanguageId": "string",
"complianceFrameworkId": "string",
"complianceReviewId": "string",
"controlId": "string",
"files": [],
"isConsolidated": true,
"organizationUnitId": "string",
"selectedControlClusterIds": "string",
"selectedControlItemIds": "string"
}),
});
const data = await res.json();import os, requests
res = requests.post(
"https://sandbox-api.sannos.ai/v2/documents/upload/start",
headers={"X-API-Key": os.environ["EVE_COMPANY_KEY"]},
json={
"auditLanguageId": "string",
"complianceFrameworkId": "string",
"complianceReviewId": "string",
"controlId": "string",
"files": [],
"isConsolidated": True,
"organizationUnitId": "string",
"selectedControlClusterIds": "string",
"selectedControlItemIds": "string"
},
)
data = res.json()<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://sandbox-api.sannos.ai/v2/documents/upload/start",
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([
'auditLanguageId' => '<string>',
'complianceFrameworkId' => '<string>',
'complianceReviewId' => '<string>',
'controlId' => '<string>',
'files' => [
[
'fileName' => '<string>',
'fileSize' => 123
]
],
'isConsolidated' => false,
'organizationUnitId' => '<string>',
'selectedControlClusterIds' => '<string>',
'selectedControlItemIds' => '<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://sandbox-api.sannos.ai/v2/documents/upload/start"
payload := strings.NewReader("{\n \"auditLanguageId\": \"<string>\",\n \"complianceFrameworkId\": \"<string>\",\n \"complianceReviewId\": \"<string>\",\n \"controlId\": \"<string>\",\n \"files\": [\n {\n \"fileName\": \"<string>\",\n \"fileSize\": 123\n }\n ],\n \"isConsolidated\": false,\n \"organizationUnitId\": \"<string>\",\n \"selectedControlClusterIds\": \"<string>\",\n \"selectedControlItemIds\": \"<string>\"\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://sandbox-api.sannos.ai/v2/documents/upload/start")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"auditLanguageId\": \"<string>\",\n \"complianceFrameworkId\": \"<string>\",\n \"complianceReviewId\": \"<string>\",\n \"controlId\": \"<string>\",\n \"files\": [\n {\n \"fileName\": \"<string>\",\n \"fileSize\": 123\n }\n ],\n \"isConsolidated\": false,\n \"organizationUnitId\": \"<string>\",\n \"selectedControlClusterIds\": \"<string>\",\n \"selectedControlItemIds\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox-api.sannos.ai/v2/documents/upload/start")
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 \"auditLanguageId\": \"<string>\",\n \"complianceFrameworkId\": \"<string>\",\n \"complianceReviewId\": \"<string>\",\n \"controlId\": \"<string>\",\n \"files\": [\n {\n \"fileName\": \"<string>\",\n \"fileSize\": 123\n }\n ],\n \"isConsolidated\": false,\n \"organizationUnitId\": \"<string>\",\n \"selectedControlClusterIds\": \"<string>\",\n \"selectedControlItemIds\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"expiresAt": "2023-11-07T05:31:56Z",
"files": [
{
"chunkSizeBytes": 123,
"fileId": "<string>",
"fileName": "<string>",
"totalChunks": 123
}
],
"sessionId": "<string>"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Authorizations
Body
application/json
Show child attributes
Show child attributes