// this is how you can call clientAPI.setClientData function
alanBtnInstance.callProjectApi("setClientData", {value:"your data"}, function (error, result){
    // handle error and result here
});
            

[alanBtnInstance callProjectApi:@"setClientData" withData:@{@"value": @"your data"} callback:^(NSError *error, NSString *object) {
    // handle error and result here
}];
                

alanBtnInstance.callProjectApi("setClientData", withData: ["value": "your data"]) { (_, _) in
    // handle error and result here
}
                

JSONObject callParameters = new JSONObject("{\"value\":\"your data\"}");
alanBtnInstance.callProjectApi("setClientData", callParameters.toString(), new ScriptMethodCallback() {
            @Override
            public void onResponse(String methodName, String body, String error) {
                // handle error and result here
            }
        });
            

void _callProjectApi() {
    /// Provide any params with json
    var params = jsonEncode({"apiParams": "paramsValue"});
    AlanVoice.callProjectApi("projectAPI", params);
}
            

var myAlanBtn = document.getElementById('myAlanBtn');
myAlanBtn.componentOnReady().then(function () {
	myAlanBtn.callProjectApi("myFunc", {myData: 123}, function (error, result) {
		console.log("cb from myFunc was received", error, result);
	});
});
            
	
AlanManager.callProjectApi(
	'customScript',
    {text: this.state.apiValue},
    (error, result) => {
        if (error) {
            console.error(error);
        } else {
             console.log(result);
        }
    },
)