Create New Datasource
Endpoint Name: insertdatasource
Request type : POST
Authorization: Bearer token as header
Endpoint Details: The insertdatasource endpoint will be used to create new datasource.
Method
URL
POST
URL/access/klearstack/insertdatasource
Request Body
Params
Values
Required
Description
datasource_name
string
Yes
Name of the datasource
company_name
string
Yes
Name of the company for which the user is logging in
data
string(JSON)
Yes
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"
}]
}
dataset(file)
Binary
Yes
Excel or CSV file containing data for datasource.
Shell (cURL)
Request Body
curl --location "URL/access/klearstack/insertdatasource" \
--header "Authorization: Bearer your_token_here" \
--form "datasource_name=Replace_Datasource_Name_Here" \
--form "company_name=Replace_Company_Name_Here" \
--form 'data={
"DataSourceName": "test",
"DataSourceType": "excel_or_csv",
"DataSourceStatus": true,
"fields": [
{"name": "USER_FIRST_NAME", "datatype": "string"},
{"name": "email", "datatype": "string"}
]
}' \
--form "dataset=@/path/to/your/file.csv"Python
Request Body
import requests
url = "URL/access/klearstack/insertdatasource"
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"}
]
}'}
files=[
('dataset',('file.csv',open('/path/to/your/file.csv','rb'),'text/csv'))
]
headers = {
'Authorization': 'Bearer your_token_here'
}
response = requests.request("POST", url, headers=headers, data=payload, files=files)
print(response.text)
Java (OkHttp)
Request Body
OkHttpClient client = new OkHttpClient().newBuilder()
.build();
MediaType mediaType = MediaType.parse("text/plain");
RequestBody body = new MultipartBody.Builder().setType(MultipartBody.FORM)
.addFormDataPart("datasource_name", "Replace_Your_Datasource_Name_Here")
.addFormDataPart("company_name", "Replace_Your_Company_Name_Here")
.addFormDataPart("data", "{\n" +
" \"DataSourceName\": \"Replace_Your_DataSource_Name_Here\",\n" +
" \"DataSourceType\": \"excel_or_csv\",\n" +
" \"DataSourceStatus\": true,\n" +
" \"fields\": [\n" +
" {\"name\": \"Replace_Field_Name_1\", \"datatype\": \"string\"},\n" +
" {\"name\": \"Replace_Field_Name_2\", \"datatype\": \"string\"}\n" +
" ]\n" +
" }")
.addFormDataPart("dataset", "Replace_Your_File_Name.csv",
RequestBody.create(MediaType.parse("application/octet-stream"),
new File("Replace_Your_File_Path_Here/Replace_Your_File_Name.csv")))
.build();
Request request = new Request.Builder()
.url("URL/access/klearstack/insertdatasource")
.method("POST", body)
.addHeader("Authorization", "Bearer Replace_Your_Token_Here")
.build();
Response response = client.newCall(request).execute();
Node.js (Axios)
Request Body
const axios = require('axios');
const FormData = require('form-data');
const fs = require('fs');
let formData = new FormData();
formData.append('datasource_name', 'Replace_Your_Datasource_Name_Here');
formData.append('company_name', 'Replace_Your_Company_Name_Here');
formData.append('data', '{\r\n "DataSourceName": "Replace_Your_DataSource_Name_Here",\r\n "DataSourceType": "excel_or_csv",\r\n "DataSourceStatus": true,\r\n "fields": [\r\n {"name": "Replace_Field_Name_1", "datatype": "string"},\r\n {"name": "Replace_Field_Name_2", "datatype": "string"}\r\n ]\r\n }');
formData.append('dataset', fs.createReadStream('Replace_Your_File_Path_Here/Replace_Your_File_Name.csv'));
let config = {
method: 'post',
maxBodyLength: Infinity,
url: 'URL/access/klearstack/insertdatasource',
headers: {
'Authorization': 'Bearer Replace_Your_Token_Here',
...formData.getHeaders()
},
data: formData
};
axios.request(config)
.then((response) => {
console.log(JSON.stringify(response.data));
})
.catch((error) => {
console.log(error);
});
JavaScript (XHR)
Request Body
// WARNING: For POST requests, body is set to null by browsers.
var formData = new FormData();
formData.append("datasource_name", "Replace_Your_Datasource_Name_Here");
formData.append("company_name", "Replace_Your_Company_Name_Here");
formData.append("data", "{\r\n \"DataSourceName\": \"Replace_Your_DataSource_Name_Here\",\r\n \"DataSourceType\": \"excel_or_csv\",\r\n \"DataSourceStatus\": true,\r\n \"fields\": [\r\n {\"name\": \"Replace_Field_Name_1\", \"datatype\": \"string\"},\r\n {\"name\": \"Replace_Field_Name_2\", \"datatype\": \"string\"}\r\n ]\r\n }");
formData.append("dataset", fileInput.files[0], "Replace_Your_File_Name.csv");
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
xhr.addEventListener("readystatechange", function() {
if(this.readyState === 4) {
console.log(this.responseText);
}
});
xhr.open("POST", "URL/access/klearstack/insertdatasource");
xhr.setRequestHeader("Authorization", "Bearer Replace_Your_Token_Here");
xhr.send(formData);API Response
Status code
Example Response
200
{
"success": true,
“release_version”:”7.8.9”
}
400
{
"error": "Datasource Name already exists"
}
Last updated