Append in Datasource

Endpoint Name: appenddatasource

Request type : POST

Authorization: Bearer token as header

Endpoint Details: The appenddatasourceendpoint will be used to append new data in datasource.

Method

URL

POST

URL/access/klearstack/appenddatasource

Request Body

Params

Values

Description

datasource_name

string

Name of the datasource

company_name

string

Name of the company for which the user is logging in

data

string(JSON)

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

Binary

Excel or CSV file containing data for datasource.

Shell (cURL)

  • Request Body

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

  • Request Body

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

  • Request Body

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

  • Request Body

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)

  • Request Body

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

Status code

Example Response

200

{

"success": true,

“release_version”:”7.8.9”

}

Last updated