Endpoints
In order to test the endpoints, you will need to assign your API channel to an agent. Once assigned, head back to the API channel page and click Test to view the testing window. VIVI provides five endpoints:- Stream Messages
- Invoke Messages
- Batch Messages
- Files
https://api-prod-d1d739d4-c24f-59dc-865b-e630d70bf11b.vivi.bot/channelsApi/{channelId}/stream This endpoint allows you to stream a single message in a conversation channel.
string
required
The API key given to you when creating your API channel.
string
required
The Channel ID given to you when creating your API channel.
string
required
The test message that you’d like to send to the agent.
UUID
required
The custom thread ID to use for the conversation.
UUID
The custom user ID that will be associated with this user.
string
The URL you received from the
Upload Conversation Files endpoint.import requests
channelId = "channelId"
apiKey = "apiKey"
url = f"https://api-prod-d1d739d4-c24f-59dc-865b-e630d70bf11b.vivi.bot/channelsApi/{channelId}/stream"
headers = {
"Content-Type": "application/json",
"vivi-api-key": apiKey
}
data = {
"message": "your sample message",
"threadId": "conversationId",
"userId": None, # optional
"attachedFiles": None # alternatively, if you uploaded files, insert the Uploaded Files URL here, ex: ['https://urlpath']
}
response = requests.post(url, headers=headers, json=data, stream=True)
for line in response.iter_lines():
if line:
print(line.decode("utf-8"))
const channelId = "channelId";
const apiKey = "apiKey";
const url = `https://api-prod-d1d739d4-c24f-59dc-865b-e630d70bf11b.vivi.bot/channelsApi/${channelId}/stream`;
const options = {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'vivi-api-key': apiKey
},
body: JSON.stringify({
message: "your sample message",
threadId: "conversationId",
userId: null, // optional
attachedFiles: null // alternatively, if you uploaded files, insert the Uploaded Files URL here, ex: ['https://urlpath']
})
};
async function main() {
try {
const response = await fetch(url, options);
const reader = response.body.getReader();
const decoder = new TextDecoder();
while (true) {
const { done, value } = await reader.read();
if (done) break;
const chunk = decoder.decode(value);
console.log(chunk);
}
} catch (error) {
console.error(error);
}
}
main();
using System;
using System.Net.Http;
using System.Text;
using System.Text.Json;
using System.Threading.Tasks;
class Program
{
static async Task Main()
{
string channelId = "channelId";
string apiKey = "apiKey";
string url = $"https://api-prod-d1d739d4-c24f-59dc-865b-e630d70bf11b.vivi.bot/channelsApi/{channelId}/stream";
using var client = new HttpClient();
client.DefaultRequestHeaders.Add("vivi-api-key", apiKey);
var requestBody = new
{
message = "your sample message",
threadId = "conversationId",
userId = (string)null, // optional
attachedFiles = (string)null // alternatively, if you uploaded files, insert the Uploaded Files URL here, ex: ['https://urlpath']
};
var json = JsonSerializer.Serialize(requestBody);
var content = new StringContent(json, Encoding.UTF8, "application/json");
try
{
var response = await client.PostAsync(url, content);
response.EnsureSuccessStatusCode();
using var stream = await response.Content.ReadAsStreamAsync();
using var reader = new System.IO.StreamReader(stream);
while (!reader.EndOfStream)
{
string line = await reader.ReadLineAsync();
if (!string.IsNullOrEmpty(line))
{
Console.WriteLine(line);
}
}
}
catch (HttpRequestException e)
{
Console.WriteLine($"Request error: {e.Message}");
}
}
}
Don’t forget to swap the apiKey and channelId with your credentials.
data: {"message": "", "event": "on_chat_model_start"}
data: {"message": "Hello", "event": "on_chat_model_stream"}
data: {"message":"","event":"on_chat_model_end"}
data: {"message":"","event":"on_chat_model_start"}
data: {"message":"Hello","event":"on_chat_model_stream"}
data: {"message":"","event":"on_chat_model_end"}
data: {"message":"","event":"on_chat_model_start"}
data: {"message":"Hello","event":"on_chat_model_stream"}
data: {"message":"","event":"on_chat_model_end"}
https://api-prod-d1d739d4-c24f-59dc-865b-e630d70bf11b.vivi.bot/channelsApi/{channelId}/invoke This endpoint allows you to receive the full message at one time instead of streaming it incrementally.
string
required
The API key given to you when creating your API channel.
string
required
The Channel ID given to you when creating your API channel.
string
required
The test message that you’d like to send to the agent.
UUID
required
The custom thread ID to use for the conversation.
UUID
The custom user ID that will be associated with this user.
string
The URL you received from the
Upload Conversation Files endpoint.import requests
channelId = "channelId"
apiKey = "apiKey"
url = f"https://api-prod-d1d739d4-c24f-59dc-865b-e630d70bf11b.vivi.bot/channelsApi/{channelId}/invoke"
headers = {
"Content-Type": "application/json",
"vivi-api-key": apiKey
}
data = {
"message": "your sample message",
"threadId": "conversationId",
"userId": None, # optional
"attachedFiles": None # alternatively, if you uploaded files, insert the Uploaded Files URL here, ex: ['https://urlpath']
}
response = requests.post(url, headers=headers, json=data)
try:
print(response.json())
except Exception:
print(response.text)
const channelId = "channelId";
const apiKey = "apiKey";
const url = `https://api-prod-d1d739d4-c24f-59dc-865b-e630d70bf11b.vivi.bot/channelsApi/${channelId}/invoke`;
const options = {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'vivi-api-key': apiKey
},
body: JSON.stringify({
message: "your sample message",
threadId: "conversationId",
userId: null, // optional
attachedFiles: null // alternatively, if you uploaded files, insert the Uploaded Files URL here, ex: ['https://urlpath']
})
};
async function main() {
try {
const response = await fetch(url, options);
const reader = response.body.getReader();
const decoder = new TextDecoder();
while (true) {
const { done, value } = await reader.read();
if (done) break;
const chunk = decoder.decode(value);
console.log(chunk);
}
} catch (error) {
console.error(error);
}
}
main();
using System;
using System.Net.Http;
using System.Text;
using System.Text.Json;
using System.Threading.Tasks;
class Program
{
static async Task Main()
{
string channelId = "channelId";
string apiKey = "apiKey";
string url = $"https://api-prod-d1d739d4-c24f-59dc-865b-e630d70bf11b.vivi.bot/channelsApi/{channelId}/invoke";
using var client = new HttpClient();
client.DefaultRequestHeaders.Add("vivi-api-key", apiKey);
var requestBody = new
{
message = "your sample message",
threadId = "conversationId",
userId = (string)null, // optional
attachedFiles = (string)null // alternatively, if you uploaded files, insert the Uploaded Files URL here, ex: ['https://urlpath']
};
var json = JsonSerializer.Serialize(requestBody);
var content = new StringContent(json, Encoding.UTF8, "application/json");
try
{
var response = await client.PostAsync(url, content);
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
Console.WriteLine(responseBody);
}
catch (HttpRequestException e)
{
Console.WriteLine($"Request error: {e.Message}");
}
}
}
Don’t forget to swap the apiKey and channelId with your credentials.
{'message': "Hello world!",'event': None}
{"message": "Hello world!", "event": null}
{"message":"Hello world!","event":null}
https://api-prod-d1d739d4-c24f-59dc-865b-e630d70bf11b.vivi.bot/channelsApi/{channelId}/batch This endpoint allows you to send multiple messages at one time.
string
required
The API key given to you when creating your API channel.
string
required
The Channel ID given to you when creating your API channel.
string
required
The test message that you’d like to send to the agent.
UUID
required
The custom thread ID to use for the conversation.
UUID
The custom user ID that will be associated with this user.
string
The URL you received from the
Upload Conversation Files endpoint.import requests
channelId = "channelId"
apiKey = "apiKey"
url = f"https://api-prod-d1d739d4-c24f-59dc-865b-e630d70bf11b.vivi.bot/channelsApi/{channelId}/batch"
headers = {
"Content-Type": "application/json",
"vivi-api-key": apiKey
}
data = [{
"message": "your sample message",
"threadId": "conversationId",
"userId": None, # optional
"attachedFiles": None # alternatively, if you uploaded files, insert the Uploaded Files URL here, ex: ['https://urlpath']
}]
response = requests.post(url, headers=headers, json=data)
for line in response.iter_lines():
if line:
print(line.decode("utf-8"))
const channelId = "channelId";
const apiKey = "apiKey";
const url = `https://api-prod-d1d739d4-c24f-59dc-865b-e630d70bf11b.vivi.bot/channelsApi/${channelId}/batch`;
const body = [
{
message: "your sample message",
threadId: "conversationId",
userId: null, // optional
attachedFiles: null // alternatively, if you uploaded files, insert the Uploaded Files URL here, ex: ['https://urlpath']
}
];
const options = {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'vivi-api-key': apiKey
},
body: JSON.stringify(body)
};
async function main() {
try {
const response = await fetch(url, options);
const json = await response.json();
console.log(json);
} catch (error) {
console.error(error);
}
}
main();
using System;
using System.Net.Http;
using System.Text;
using System.Text.Json;
using System.Threading.Tasks;
class Program
{
static async Task Main()
{
string channelId = "channelId";
string apiKey = "apiKey";
string url = $"https://api-prod-d1d739d4-c24f-59dc-865b-e630d70bf11b.vivi.bot/channelsApi/{channelId}/batch";
using var client = new HttpClient();
client.DefaultRequestHeaders.Add("vivi-api-key", apiKey);
var requestBody = new[]
{
new
{
message = "your sample message",
threadId = "conversationId",
userId = (string)null, // optional
attachedFiles = (string)null // alternatively, if you uploaded files, insert the Uploaded Files URL here, ex: ['https://urlpath']
}
};
var json = JsonSerializer.Serialize(requestBody);
var content = new StringContent(json, Encoding.UTF8, "application/json");
try
{
var response = await client.PostAsync(url, content);
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
Console.WriteLine(responseBody);
}
catch (HttpRequestException e)
{
Console.WriteLine($"Request error: {e.Message}");
}
}
}
Don’t forget to swap the apiKey and channelId with your credentials.
[{"message":"Hello world!","event":null},
{"message":"Hello world again!","event":null}]
[{message: 'Hello world!', event: null},
{message: 'Hello world again!',event: null}]
[{"message": "Hello world!","event": null},
{"message": "Hello world again!","event": null}]
Upload Conversation Files
https://api-prod-d1d739d4-c24f-59dc-865b-e630d70bf11b.vivi.bot/channelsApi/{channelId}/files This endpoint allows you to upload files to use during your conversation.
string
required
The API key given to you when creating your API channel.
string
required
The Channel ID given to you when creating your API channel.
import requests
channelId = "channelId"
apiKey = "apiKey"
url = f"https://api-prod-d1d739d4-c24f-59dc-865b-e630d70bf11b.vivi.bot/channelsApi/{channelId}/files"
headers = {
"vivi-api-key": apiKey
}
# Replace 'test_document.pdf' with actual file path
files = {'files': open('test_document.pdf', 'rb')}
response = requests.post(url, headers=headers, files=files)
print(f"Status Code: {response.status_code}")
if response.status_code == 201:
data = response.json()
print("Uploaded Files:", data.get("uploadedFiles", []))
else:
print("Error:", response.text)
files['files'].close()
import fs from "fs";
import FormData from "form-data";
import fetch from "node-fetch";
const channelId = "channelId";
const apiKey = "apiKey";
const url = `https://api-prod-d1d739d4-c24f-59dc-865b-e630d70bf11b.vivi.bot/channelsApi/${channelId}/files`;
const formData = new FormData();
formData.append("files", fs.createReadStream("test_document.pdf")); // Replace "test_document.pdf" with actual file path
const options = {
method: "POST",
headers: {
"vivi-api-key": apiKey,
...formData.getHeaders(),
},
body: formData,
};
async function main() {
try {
const response = await fetch(url, options);
console.log(`Status Code: ${response.status}`);
if (response.status === 201) {
const data = await response.json();
console.log("Uploaded Files:", data.uploadedFiles || []);
} else {
const errorText = await response.text();
console.error("Error:", errorText);
}
} catch (error) {
console.error("Request failed:", error);
}
}
main();
using System;
using System.IO;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Threading.Tasks;
class Program
{
static async Task Main()
{
string channelId = "channelId";
string apiKey = "apiKey";
string url = $"https://api-prod-d1d739d4-c24f-59dc-865b-e630d70bf11b.vivi.bot/channelsApi/{channelId}/files";
string filePath = "test_document.pdf"; // Replace "test_document.pdf" with actual file path
using (var httpClient = new HttpClient())
using (var form = new MultipartFormDataContent())
{
httpClient.DefaultRequestHeaders.Add("vivi-api-key", apiKey);
var fileStream = File.OpenRead(filePath);
var fileContent = new StreamContent(fileStream);
fileContent.Headers.ContentType = MediaTypeHeaderValue.Parse("application/pdf");
form.Add(fileContent, "files", Path.GetFileName(filePath));
Console.WriteLine("Uploading file...");
var response = await httpClient.PostAsync(url, form);
Console.WriteLine($"Status Code: {(int)response.StatusCode}");
if (response.IsSuccessStatusCode)
{
string json = await response.Content.ReadAsStringAsync();
Console.WriteLine("Uploaded Files Response:");
Console.WriteLine(json);
}
else
{
string error = await response.Content.ReadAsStringAsync();
Console.WriteLine("Error:");
Console.WriteLine(error);
}
fileStream.Close();
}
}
}
Don’t forget to swap the apiKey and channelId with your credentials.
Status Code: 201
Uploaded Files: [fileURL]
Status Code: 201
Uploaded Files: [fileURL]
Uploading file...
Status Code: 201
Uploaded Files Response:
{"uploadedFiles":[fileURL]}
Get Files Extensions
https://api-prod-d1d739d4-c24f-59dc-865b-e630d70bf11b.vivi.bot/channelsApi/{channelId}/files/extensions This endpoint allows you to verify available file extensions.
string
required
The API key given to you when creating your API channel.
string
required
The Channel ID given to you when creating your API channel.
import requests
channelId = "channelId"
apiKey = "apiKey"
url = f"https://api-prod-d1d739d4-c24f-59dc-865b-e630d70bf11b.vivi.bot/channelsApi/{channelId}/files/extensions"
headers = {
"vivi-api-key": apiKey
}
response = requests.get(url, headers=headers)
print(f"Status Code: {response.status_code}")
if response.status_code == 200:
data = response.json()
print("Supported Extensions:", data.get("supportedFileExtensions", []))
else:
print("Error:", response.text)
const channelId = "channelId";
const apiKey = "apiKey";
const url = `https://api-prod-d1d739d4-c24f-59dc-865b-e630d70bf11b.vivi.bot/channelsApi/${channelId}/files/extensions`;
const options = {
method: "GET",
headers: {
"vivi-api-key": apiKey
}
};
async function main() {
try {
const response = await fetch(url, options);
console.log(`Status Code: ${response.status}`);
if (response.status === 200) {
const data = await response.json();
console.log("Supported Extensions:", data.supportedFileExtensions || []);
} else {
const errorText = await response.text();
console.error("Error:", errorText);
}
} catch (error) {
console.error("Request failed:", error);
}
}
main();
using System;
using System.Net.Http;
using System.Threading.Tasks;
class Program
{
static async Task Main()
{
string channelId = "channelId";
string apiKey = "apiKey";
string url = $"https://api-prod-d1d739d4-c24f-59dc-865b-e630d70bf11b.vivi.bot/channelsApi/{channelId}/files/extensions";
using (var httpClient = new HttpClient())
{
httpClient.DefaultRequestHeaders.Add("vivi-api-key", apiKey);
Console.WriteLine("Fetching supported file extensions...");
var response = await httpClient.GetAsync(url);
Console.WriteLine($"Status Code: {(int)response.StatusCode}");
if (response.IsSuccessStatusCode)
{
string json = await response.Content.ReadAsStringAsync();
Console.WriteLine("Supported Extensions:");
Console.WriteLine(json);
}
else
{
string error = await response.Content.ReadAsStringAsync();
Console.WriteLine("Error:");
Console.WriteLine(error);
}
}
}
}
Don’t forget to swap the apiKey and channelId with your credentials.
Status Code: 200
Supported Extensions: [{'extension': '.mp3', 'maxFileSizeInMb': 20, 'mimeType': 'audio/mpeg', 'category': 'audio'}, {'extension': '.wav', 'maxFileSizeInMb': 20, 'mimeType': 'audio/x-wav', 'category': 'audio'}, {'extension': '.pdf', 'maxFileSizeInMb': 10, 'mimeType': 'application/pdf', 'category': 'formatted_docs'}, {'extension': '.xls', 'maxFileSizeInMb': 10, 'mimeType': 'application/vnd.ms-excel', 'category': 'formatted_docs'}, {'extension': '.xlsx', 'maxFileSizeInMb': 10, 'mimeType': 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', 'category': 'formatted_docs'}, {'extension': '.docx', 'maxFileSizeInMb': 10, 'mimeType': 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', 'category': 'formatted_docs'}, {'extension': '.pptx', 'maxFileSizeInMb': 10, 'mimeType': 'application/vnd.openxmlformats-officedocument.presentationml.presentation', 'category': 'formatted_docs'}, {'extension': '.bmp', 'maxFileSizeInMb': 20, 'mimeType': 'image/bmp', 'category': 'image'}, {'extension': '.gif', 'maxFileSizeInMb': 20, 'mimeType': 'image/gif', 'category': 'image'}, {'extension': '.jpeg', 'maxFileSizeInMb': 20, 'mimeType': 'image/jpeg', 'category': 'image'}, {'extension': '.jpg', 'maxFileSizeInMb': 20, 'mimeType': 'image/jpeg', 'category': 'image'}, {'extension': '.png', 'maxFileSizeInMb': 20, 'mimeType': 'image/png', 'category': 'image'}, {'extension': '.svg', 'maxFileSizeInMb': 20, 'mimeType': 'image/svg+xml', 'category': 'image'}, {'extension': '.tiff', 'maxFileSizeInMb': 20, 'mimeType': 'image/tiff', 'category': 'image'}, {'extension': '.webp', 'maxFileSizeInMb': 20, 'mimeType': 'image/webp', 'category': 'image'}, {'extension': '.heif', 'maxFileSizeInMb': 20, 'mimeType': 'image/heif', 'category': 'image'}, {'extension': '.txt', 'maxFileSizeInMb': 3, 'mimeType': 'text/plain', 'category': 'lightweight_text'}, {'extension': '.md', 'maxFileSizeInMb': 3, 'mimeType': 'text/markdown', 'category': 'lightweight_text'}, {'extension': '.py', 'maxFileSizeInMb': 3, 'mimeType': 'text/x-python', 'category': 'lightweight_text'}, {'extension': '.go', 'maxFileSizeInMb': 3, 'mimeType': 'text/x-go', 'category': 'lightweight_text'}, {'extension': '.csv', 'maxFileSizeInMb': 3, 'mimeType': 'text/csv', 'category': 'lightweight_text'}, {'extension': '.tsv', 'maxFileSizeInMb': 3, 'mimeType': 'text/tab-separated-values', 'category': 'lightweight_text'}, {'extension': '.html', 'maxFileSizeInMb': 3, 'mimeType': 'text/html', 'category': 'lightweight_text'}, {'extension': '.htm', 'maxFileSizeInMb': 3, 'mimeType': 'text/html', 'category': 'lightweight_text'}, {'extension': '.xml', 'maxFileSizeInMb': 3, 'mimeType': 'application/xml', 'category': 'lightweight_text'}, {'extension': '.json', 'maxFileSizeInMb': 3, 'mimeType': 'application/json', 'category': 'lightweight_text'}, {'extension': '.ndjson', 'maxFileSizeInMb': 3, 'mimeType': 'application/x-ndjson', 'category': 'lightweight_text'}, {'extension': '.yaml', 'maxFileSizeInMb': 3, 'mimeType': 'application/yaml', 'category': 'lightweight_text'}, {'extension': '.yml', 'maxFileSizeInMb': 3, 'mimeType': 'application/yaml', 'category': 'lightweight_text'}, {'extension': '.epub', 'maxFileSizeInMb': 3, 'mimeType': 'application/epub+zip', 'category': 'lightweight_text'}, {'extension': '.eml', 'maxFileSizeInMb': 3, 'mimeType': 'message/rfc822', 'category': 'lightweight_text'}, {'extension': '.p7s', 'maxFileSizeInMb': 3, 'mimeType': 'application/pkcs7-signature', 'category': 'lightweight_text'}, {'extension': '.msg', 'maxFileSizeInMb': 3, 'mimeType': 'application/vnd.ms-outlook', 'category': 'lightweight_text'}, {'extension': '.pst', 'maxFileSizeInMb': 3, 'mimeType': 'application/vnd.ms-outlook-pst', 'category': 'lightweight_text'}, {'extension': '.ipynb', 'maxFileSizeInMb': 3, 'mimeType': 'application/x-ipynb+json', 'category': 'lightweight_text'}]
Status Code: 200
Supported Extensions: [
{
extension: '.mp3',
maxFileSizeInMb: 20,
mimeType: 'audio/mpeg',
category: 'audio'
},
{
extension: '.wav',
maxFileSizeInMb: 20,
mimeType: 'audio/x-wav',
category: 'audio'
},
{
extension: '.pdf',
maxFileSizeInMb: 10,
mimeType: 'application/pdf',
category: 'formatted_docs'
},
{
extension: '.xls',
maxFileSizeInMb: 10,
mimeType: 'application/vnd.ms-excel',
category: 'formatted_docs'
},
{
extension: '.xlsx',
maxFileSizeInMb: 10,
mimeType: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
category: 'formatted_docs'
},
{
extension: '.docx',
maxFileSizeInMb: 10,
mimeType: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
category: 'formatted_docs'
},
{
extension: '.pptx',
maxFileSizeInMb: 10,
mimeType: 'application/vnd.openxmlformats-officedocument.presentationml.presentation',
category: 'formatted_docs'
},
{
extension: '.bmp',
maxFileSizeInMb: 20,
mimeType: 'image/bmp',
category: 'image'
},
{
extension: '.gif',
maxFileSizeInMb: 20,
mimeType: 'image/gif',
category: 'image'
},
{
extension: '.jpeg',
maxFileSizeInMb: 20,
mimeType: 'image/jpeg',
category: 'image'
},
{
extension: '.jpg',
maxFileSizeInMb: 20,
mimeType: 'image/jpeg',
category: 'image'
},
{
extension: '.png',
maxFileSizeInMb: 20,
mimeType: 'image/png',
category: 'image'
},
{
extension: '.svg',
maxFileSizeInMb: 20,
mimeType: 'image/svg+xml',
category: 'image'
},
{
extension: '.tiff',
maxFileSizeInMb: 20,
mimeType: 'image/tiff',
category: 'image'
},
{
extension: '.webp',
maxFileSizeInMb: 20,
mimeType: 'image/webp',
category: 'image'
},
{
extension: '.heif',
maxFileSizeInMb: 20,
mimeType: 'image/heif',
category: 'image'
},
{
extension: '.txt',
maxFileSizeInMb: 3,
mimeType: 'text/plain',
category: 'lightweight_text'
},
{
extension: '.md',
maxFileSizeInMb: 3,
mimeType: 'text/markdown',
category: 'lightweight_text'
},
{
extension: '.py',
maxFileSizeInMb: 3,
mimeType: 'text/x-python',
category: 'lightweight_text'
},
{
extension: '.go',
maxFileSizeInMb: 3,
mimeType: 'text/x-go',
category: 'lightweight_text'
},
{
extension: '.csv',
maxFileSizeInMb: 3,
mimeType: 'text/csv',
category: 'lightweight_text'
},
{
extension: '.tsv',
maxFileSizeInMb: 3,
mimeType: 'text/tab-separated-values',
category: 'lightweight_text'
},
{
extension: '.html',
maxFileSizeInMb: 3,
mimeType: 'text/html',
category: 'lightweight_text'
},
{
extension: '.htm',
maxFileSizeInMb: 3,
mimeType: 'text/html',
category: 'lightweight_text'
},
{
extension: '.xml',
maxFileSizeInMb: 3,
mimeType: 'application/xml',
category: 'lightweight_text'
},
{
extension: '.json',
maxFileSizeInMb: 3,
mimeType: 'application/json',
category: 'lightweight_text'
},
{
extension: '.ndjson',
maxFileSizeInMb: 3,
mimeType: 'application/x-ndjson',
category: 'lightweight_text'
},
{
extension: '.yaml',
maxFileSizeInMb: 3,
mimeType: 'application/yaml',
category: 'lightweight_text'
},
{
extension: '.yml',
maxFileSizeInMb: 3,
mimeType: 'application/yaml',
category: 'lightweight_text'
},
{
extension: '.epub',
maxFileSizeInMb: 3,
mimeType: 'application/epub+zip',
category: 'lightweight_text'
},
{
extension: '.eml',
maxFileSizeInMb: 3,
mimeType: 'message/rfc822',
category: 'lightweight_text'
},
{
extension: '.p7s',
maxFileSizeInMb: 3,
mimeType: 'application/pkcs7-signature',
category: 'lightweight_text'
},
{
extension: '.msg',
maxFileSizeInMb: 3,
mimeType: 'application/vnd.ms-outlook',
category: 'lightweight_text'
},
{
extension: '.pst',
maxFileSizeInMb: 3,
mimeType: 'application/vnd.ms-outlook-pst',
category: 'lightweight_text'
},
{
extension: '.ipynb',
maxFileSizeInMb: 3,
mimeType: 'application/x-ipynb+json',
category: 'lightweight_text'
}
]
Fetching supported file extensions...
Status Code: 200
Supported Extensions:
{"supportedFileExtensions":[{"extension":".mp3","maxFileSizeInMb":20,"mimeType":"audio/mpeg","category":"audio"},{"extension":".wav","maxFileSizeInMb":20,"mimeType":"audio/x-wav","category":"audio"},{"extension":".pdf","maxFileSizeInMb":10,"mimeType":"application/pdf","category":"formatted_docs"},{"extension":".xls","maxFileSizeInMb":10,"mimeType":"application/vnd.ms-excel","category":"formatted_docs"},{"extension":".xlsx","maxFileSizeInMb":10,"mimeType":"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet","category":"formatted_docs"},{"extension":".docx","maxFileSizeInMb":10,"mimeType":"application/vnd.openxmlformats-officedocument.wordprocessingml.document","category":"formatted_docs"},{"extension":".pptx","maxFileSizeInMb":10,"mimeType":"application/vnd.openxmlformats-officedocument.presentationml.presentation","category":"formatted_docs"},{"extension":".bmp","maxFileSizeInMb":20,"mimeType":"image/bmp","category":"image"},{"extension":".gif","maxFileSizeInMb":20,"mimeType":"image/gif","category":"image"},{"extension":".jpeg","maxFileSizeInMb":20,"mimeType":"image/jpeg","category":"image"},{"extension":".jpg","maxFileSizeInMb":20,"mimeType":"image/jpeg","category":"image"},{"extension":".png","maxFileSizeInMb":20,"mimeType":"image/png","category":"image"},{"extension":".svg","maxFileSizeInMb":20,"mimeType":"image/svg+xml","category":"image"},{"extension":".tiff","maxFileSizeInMb":20,"mimeType":"image/tiff","category":"image"},{"extension":".webp","maxFileSizeInMb":20,"mimeType":"image/webp","category":"image"},{"extension":".heif","maxFileSizeInMb":20,"mimeType":"image/heif","category":"image"},{"extension":".txt","maxFileSizeInMb":3,"mimeType":"text/plain","category":"lightweight_text"},{"extension":".md","maxFileSizeInMb":3,"mimeType":"text/markdown","category":"lightweight_text"},{"extension":".py","maxFileSizeInMb":3,"mimeType":"text/x-python","category":"lightweight_text"},{"extension":".go","maxFileSizeInMb":3,"mimeType":"text/x-go","category":"lightweight_text"},{"extension":".csv","maxFileSizeInMb":3,"mimeType":"text/csv","category":"lightweight_text"},{"extension":".tsv","maxFileSizeInMb":3,"mimeType":"text/tab-separated-values","category":"lightweight_text"},{"extension":".html","maxFileSizeInMb":3,"mimeType":"text/html","category":"lightweight_text"},{"extension":".htm","maxFileSizeInMb":3,"mimeType":"text/html","category":"lightweight_text"},{"extension":".xml","maxFileSizeInMb":3,"mimeType":"application/xml","category":"lightweight_text"},{"extension":".json","maxFileSizeInMb":3,"mimeType":"application/json","category":"lightweight_text"},{"extension":".ndjson","maxFileSizeInMb":3,"mimeType":"application/x-ndjson","category":"lightweight_text"},{"extension":".yaml","maxFileSizeInMb":3,"mimeType":"application/yaml","category":"lightweight_text"},{"extension":".yml","maxFileSizeInMb":3,"mimeType":"application/yaml","category":"lightweight_text"},{"extension":".epub","maxFileSizeInMb":3,"mimeType":"application/epub+zip","category":"lightweight_text"},{"extension":".eml","maxFileSizeInMb":3,"mimeType":"message/rfc822","category":"lightweight_text"},{"extension":".p7s","maxFileSizeInMb":3,"mimeType":"application/pkcs7-signature","category":"lightweight_text"},{"extension":".msg","maxFileSizeInMb":3,"mimeType":"application/vnd.ms-outlook","category":"lightweight_text"},{"extension":".pst","maxFileSizeInMb":3,"mimeType":"application/vnd.ms-outlook-pst","category":"lightweight_text"},{"extension":".ipynb","maxFileSizeInMb":3,"mimeType":"application/x-ipynb+json","category":"lightweight_text"}]}
Best Practices
- Keep your API key secret and rotate it if you suspect exposure.
- Always test endpoints using the provided tools before connecting production systems.

