Endpoint Name: appenddatasource
Request type : POST
Authorization: Bearer token as header
Endpoint Details: The appenddatasourceendpoint
will be used to append new data in datasource.
URL/access/klearstack/appenddatasource
Request Body
Name of the company for which the user is logging in
A valid JSON string containing info about Datasource to be created. It contains info about which columns to create and datatype of those columns
Example:
{
"DataSourceName": "test ",
"DataSourceType": "excel_or_csv",
"DataSourceStatus": true,
"fields": [{
"name": "USER_FIRST_NAME",
"datatype": "string"
}, {
"name": "email",
"datatype": "string"
}]
}
Excel or CSV file containing data for datasource.
Shell (cURL)
curl -X POST "URL/access/klearstack/appenddatasource" \
-H "Authorization: Bearer your_token_here" \
-H "Content-Type: multipart/form-data" \
-F 'datasource_name=Replace_Datasource_Name_Here' \
-F 'company_name=Replace_Company_Name_Here' \
-F 'data={
"DataSourceName": "test",
"DataSourceType": "excel_or_csv",
"DataSourceStatus": true,
"fields": [
{"name": "USER_FIRST_NAME", "datatype": "string"},
{"name": "email", "datatype": "string"}
]
}' \
-F 'dataset=@path/to/your/file.csv'
Python
import requests
# API URL
url = "URL/access/klearstack/appenddatasource"
# Request payload
data_payload = {
"datasource_name": "Replace_Datasource_Name_Here",
"company_name": "Replace_Company_Name_Here",
"data": '''{
"DataSourceName": "test",
"DataSourceType": "excel_or_csv",
"DataSourceStatus": true,
"fields": [
{"name": "USER_FIRST_NAME", "datatype": "string"},
{"name": "email", "datatype": "string"}
]
}'''
}
# File path
file_path = "path/to/your/file.csv"
# Headers
headers = {
"Authorization": "Bearer your_token_here"
}
# Make the POST request
with open(file_path, 'rb') as file:
files = {'dataset': file}
response = requests.post(url, data=data_payload, files=files, headers=headers)
# Print the response
if response.status_code == 200:
print(response.json())
else:
print("Error:", response.text)
Java
import okhttp3.*;
import java.io.File;
import java.io.IOException;
public class AppendDatasourceAPI {
public static void main(String[] args) {
OkHttpClient client = new OkHttpClient();
// JSON payload
String jsonPayload = "{ \"DataSourceName\": \"test\", " +
"\"DataSourceType\": \"excel_or_csv\", " +
"\"DataSourceStatus\": true, " +
"\"fields\": [ " +
"{ \"name\": \"USER_FIRST_NAME\", \"datatype\": \"string\" }, " +
"{ \"name\": \"email\", \"datatype\": \"string\" } ] }";
// File to be uploaded
File file = new File("path/to/your/file.csv");
// Multipart request body
RequestBody requestBody = new MultipartBody.Builder()
.setType(MultipartBody.FORM)
.addFormDataPart("datasource_name", "Replace_Datasource_Name_Here")
.addFormDataPart("company_name", "Replace_Company_Name_Here")
.addFormDataPart("data", jsonPayload)
.addFormDataPart("dataset", file.getName(),
RequestBody.create(file, MediaType.parse("text/csv")))
.build();
Request request = new Request.Builder()
.url("URL/access/klearstack/appenddatasource")
.post(requestBody)
.addHeader("Authorization", "Bearer your_token_here")
.build();
try (Response response = client.newCall(request).execute()) {
if (response.isSuccessful()) {
System.out.println("Response: " + response.body().string());
} else {
System.out.println("Error: " + response.body().string());
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
Node.js
var request = require('request');
var fs = require('fs');
const options = {
url: 'URL/access/klearstack/appenddatasource',
headers: {
'Authorization': 'Bearer your_token_here'
},
formData: {
'datasource_name': 'Replace_Datasource_Name_Here',
'company_name': 'Replace_Company_Name_Here',
'data': JSON.stringify({
"DataSourceName": "test",
"DataSourceType": "excel_or_csv",
"DataSourceStatus": true,
"fields": [
{"name": "USER_FIRST_NAME", "datatype": "string"},
{"name": "email", "datatype": "string"}
]
}),
'dataset': {
value: fs.createReadStream('path/to/your/file.csv'),
options: {
filename: 'file.csv',
contentType: 'text/csv'
}
}
}
};
request.post(options, function(err, httpResponse, body) {
if (err) {
console.error('Request failed:', err);
return;
}
console.log('Response:', body);
});
JavaScript (XMLHttpRequest)
var formData = new FormData();
formData.append("datasource_name", "Replace_Datasource_Name_Here");
formData.append("company_name", "Replace_Company_Name_Here");
formData.append("data", JSON.stringify({
"DataSourceName": "test",
"DataSourceType": "excel_or_csv",
"DataSourceStatus": true,
"fields": [
{"name": "USER_FIRST_NAME", "datatype": "string"},
{"name": "email", "datatype": "string"}
]
}));
var fileInput = document.createElement("input");
fileInput.type = "file";
fileInput.accept = ".csv";
fileInput.onchange = function(event) {
var file = event.target.files[0];
formData.append("dataset", file, file.name);
var xhr = new XMLHttpRequest();
xhr.open("POST", "URL/access/klearstack/appenddatasource", true);
xhr.setRequestHeader("Authorization", "Bearer your_token_here");
// Handle response
xhr.onreadystatechange = function () {
if (xhr.readyState === XMLHttpRequest.DONE) {
if (xhr.status === 200) {
console.log("Response:", xhr.responseText);
} else {
console.error("Error:", xhr.responseText);
}
}
};
xhr.send(formData);
};
// Trigger file selection
fileInput.click();
API Response
{
"success": true,
“release_version”:”7.8.9”
}