Back to API List
File Upload API
The API uploads a file to the local server for seamless usage in multimodal nodes and across the Agent Platform. The API returns a unique file URL and file ID for further action on the file.
The following file extensions are currently supported:
M4a
Mp3
Webm
Mp4
Mpga
Wav
Mpeg
PNG (.png)
JPEG (.jpeg and .jpg)
WEBP (.webp)
GIF (.gif)
Where can I find the API key?
To use the API, you will need an API key. Learn more .
The following file upload modes are supported:
Mode 1: Upload a Single File As Is
This method directly calls the endpoint and returns the fileId and fileURL in the response.
Method
POST
Endpoint
https://{host}/api/public/files
Content Type
application/json
Authorization
X-api-key - The API key used for authentication.
Path Parameters
PARAMETER
DESCRIPTION
TYPE
REQUIRED/OPTIONAL
host
The environment URL. For example, https://agent-platform.domain.ai/.
String
Required
Sample Request
curl -- location 'https://{host}/api/public/files'
-- header 'x-api-key: xxxxx'
-- form 'file=@"postman-cloud:///1efxxxxe-bxx9-4xx0-bxx3-14xxxxxxxxx9"'
-- form 'fileContext="bulkImport"'
Body Parameters
PARAMETER
DESCRIPTION
TYPE
REQUIRED/OPTIONAL
file
The file being uploaded.
File
Required
fileContext
The context of the file (e.g., bulkImport).
String
Required
Sample Response
{
"url" : "http://{host}/api/getMediaStream/orgFiles/f-e1xxxxx3-4xxc-5xx6-bxx2-cxxxxxxxxxx7.wav?e=173xxxxx36&n=13xxxx7188&del=false&s=IkJyODZMM3V6K1I3UkYraERHSHVuOWY1M08xYjJoN3NLMmVTR0FMbWtiK2M9Ig%24%24&fileName=sample4.wav" ,
"fileId" : "657xxxxxxxxxxxxxxxxxxxx6"
}
Response Parameters
PARAMETER
DESCRIPTION
TYPE
url
The URL to access the uploaded file.
String
fileId
Unique identifier for the uploaded file
String
Mode 2: Upload a File in Chunks
This method requires the following three APIs to upload a large file:
Start the file upload session .
Upload in chunks , and
Merge the chunks to complete the process .
Start Session API
This API starts the upload process, returning a session ID. The file is split into chunks linked to this ID, which are then merged and uploaded through other APIs.
Method
POST
Endpoint
http://{host}/api/public/files/session/start
Content Type
application/json
Authorization
X-api-key - The API key used for authentication.
Path Parameters
PARAMETER
DESCRIPTION
TYPE
REQUIRED/OPTIONAL
host
The environment URL. For example, https://agent-platform.domain.ai
String
Required
Sample Request
curl -- location 'https://{host}/api/public/files/session/start'
-- header 'x-api-key: kg-b9xxxxxc-cxxf-5xxf-8xxe-6xxxxxxxxxx8-3xxxxx2a-exxa-4xx8-8xx5-exxxx1axxxxxd'
-- header 'Content-Type: application/json'
-- data '{
"fileContext": "bulkImport",
"totalChunks": 1,
"fileExtension": "jpg",
"fileName": "Rent.jpg",
"fileSize": 291
}'
Body Parameters
PARAMETER
DESCRIPTION
TYPE
REQUIRED/OPTIONAL
fileContext
The context of the file (e.g., bulkImport).
String
Required
totalChunks
The total number of chunks created for the file upload.
Number
Required
fileExtension
The file extension based on the file type.
String
Required
fileName
The file name.
String
Required
fileSize
The size of the file.
Number
Required
Sample Response
{
"sessionId" : "14xxxxxd-0xx4-4xxf-axx1-69xxxxxxxxx8" ,
"expirationDate" : "2025-02-06T16:01:44.285Z"
}
Response Parameters
PARAMETER
DESCRIPTION
TYPE
sessionId
The file upload session id.
String
expirationDate
The date and time of the session expiration.
Date
Chunk Upload API
The API uploads the file in multiple chunks. The session ID from the Start Session API must be used in this step.
Method
POST
Endpoint
https://{host}/api/public/files/session/{sessionId}
Content Type
application/json
Authorization
X-api-key - The API key used for authentication.
Path Parameters
PARAMETER
DESCRIPTION
TYPE
REQUIRED/OPTIONAL
host
The environment URL. For example, https://agent-platform.domain.ai
String
Required
sessionId
The file upload session id fetched from the Start Session API.
String
Required
Sample Request
curl -- location 'https://{host}/api/public/files/session/14xxxxxd-0xx4-4xxf-axx1-69xxxxxxxxx8'
-- header 'x-api-key: {{apikey}}'
-- header 'Content-Type: application/json'
-- form 'file=@"postman-cloud:///1exxxxxc-9xxd-4xx0-8xxa-3xxxxxxxxxxa"'
-- form 'chunkNumber="0"'
Body Parameters
PARAMETER
DESCRIPTION
TYPE
REQUIRED/OPTIONAL
file
The file being uploaded.
File
Required
chunkNumber
The uploaded chunk number.
Number
Required
Sample Response
{
"chunkNumber" : "0" ,
"sessionId" : "14xxxxxd-xxx4-4xxf-axx1-69xxxxxxxxx8"
}
Response Parameters
PARAMETER
DESCRIPTION
TYPE
chunkNumber
The uploaded chunk number.
Number
sessionId
The file upload session id.
String
Complete The Process
This API merges the uploaded chunks and finalizes the process using the session Id from the Start Session API. It returns the file URL and file ID. Missing chunk numbers are identified after the merge.
Method
POST
Endpoint
https://{host}/api/public/files/session/{sessionid}/complete
Content Type
application/json
Authorization
X-api-key - The API key used for authentication.
Path Parameters
PARAMETER
DESCRIPTION
TYPE
REQUIRED/OPTIONAL
host
The environment URL. For example, https://agent-pxxxxxxxm.kxxe.ai
String
Required
sessionID
The file upload session ID.
String
Required
Sample Request
curl -- location -- request POST 'https://localhost/api/public/files/session/6exxxxx9-4xx7-4xx1-bxx9-ef2xxxxxxx78/complete'
-- header 'x-api-key: kg-a3xxxxxe-0xx6-5xx1-axxc-d4xxxxxxxxx0-a8xxxxxc-bxx4-4xxe-axxd-dxxxxxxxxxxf'
Body Parameters
No parameters are passed.
Sample Response
{
"url" : "http://{host}/api/getMediaStream/orgFiles/f-e1xxxxx3-4xxc-5xx6-bxx2-c8xxxxxxxxx7.wav?e=1736922836&n=1357527188&del=false&s=IkJyODZMM3V6K1I3UkYraERHSHVuOWY1M08xYjJoN3NLMmVTR0FMbWtiK2M9Ig%24%24&fileName=sample4.wav" ,
"fileId" : "657xxxxxxxxxxxxxxxxxxxx6"
}
Response Parameters
PARAMETER
DESCRIPTION
TYPE
url
The uploaded file’s URL.
String
fileId
The file ID of the uploaded file.
String