Create AutoML Analysis

Creates a new AutoML analysis within the workspace.

REQUEST URI

https://<ZohoAnalytics_Server_URI>/restapi/v2/automl/workspaces/<workspace-id>/analysis

Post

oauthscopeZohoAnalytics.modeling.create

QUERY PARAMETERS

 

Parameter Name

Description
CONFIGJSONObject

Config parameter specifications are available in the below section.

FIELDS FOR CONFIG JSON

KeyDescription
name *

String

Name of the analysis template.

Constraints: Maximum length is 60 characters.

description

String

Detailed description of the analysis template.

Constraints: Maximum length is 1000 characters.

trainingTableId *

Long

Unique ID of the training table that will be used to build the analysis model.

targetColumn

String

Name of the target column from the training table that the model will predict.

predictionType *

String

Type of prediction to be performed by the model.

Allowed values:REGRESSION | CLASSIFICATION | CLUSTERING

features *

JSONArray

List of column names from the training table that will be used as input features for model training.

Sample:["Region","Product Category","Sales"]

Structure: Each value should be a valid column name (String).
Constraints: Minimum 1 and Maximum 100 features.

serverOption *

Integer

Specifies the server option/environment where the analysis will be executed.

Allowed Values: (1 → 8GB, 2 → 16GB, 3 → 32GB).

algorithms *

JSONObject

Configuration details for machine learning algorithms to be used for training the model.

To learn more about Algorithm Structure, click here.

Algorithm Structure

1. decisiontreeRegression (JSONObject)

Configuration for a Decision Tree regression model.

KeyDescription
minimumSampleSplit

Integer

The minimum number of data points required to split a node; higher values make the tree simpler and help avoid overfitting.

maximumDepth

Integer

Maximum depth of the tree. smaller values prevent the model from becoming too complex and overfitting the data.

2. randomForestRegression (JSONObject)

Configuration for a Random Forest regression model.

KeyDescription
minimumSampleSplit

Integer

The minimum number of data points needed to split a node in each tree; larger values make the trees more conservative and reduce overfitting.

maximumDepth

Integer

Maximum depth of the tree; limiting depth keeps the trees simpler and improves generalization.

numberOfTrees

Integer

The number of decision trees built in the forest; more trees usually improve accuracy but increase training time.

3. olsRegression (JSONObject)

Configuration for an Ordinary Least Squares regression model.

KeyDescription
intercept

Boolean

If true, the model learns a constant term (bias) so the regression line doesn’t have to pass through the origin; if false, the line is forced through zero.

allowAlternateModel

Boolean

If true, the system may switch to a numerically stable alternative when standard OLS fails due to multicollinearity or singular matrices.

4. lassoRegression (JSONObject)

Configuration for a Lasso regression model.

KeyDescription
tolerance

Decimal

Sets how small the improvement must be before training stops; smaller values make the model train longer but more precisely.

shrinkage

Integer

Controls how strongly coefficients are pushed toward zero; higher values increase feature selection but can reduce model flexibility.

maximumIterations

Integer

The maximum number of training steps allowed; higher values help the model converge when the data is complex.


5. ridgeRegression (JSONObject)

Configuration for a Ridge regression model.

KeyDescription
shrinkage

Integer

Controls how strongly coefficients are pushed toward zero; higher values increase feature selection but can reduce model flexibility.

6. svmRegressor (JSONObject)

Configuration for a Support Vector Machine regression model.

KeyDescription
epsilon

Decimal

Defines a “no-penalty” zone where small prediction errors are ignored, helping the model focus on larger mistakes.

softMargin

Decimal

Controls how strictly the model fits the data; higher values force closer fitting, while lower values allow more flexibility to generalize better.

tolerance

Decimal

Sets how small the change must be before training stops, balancing training time and precision.

epochs

Integer

The number of times the model goes through the training data; more epochs can improve learning but may increase training time.

7. gradientBoostingRegression (JSONObject)

Configuration for a Gradient Boosting regression model.

KeyDescription
lossFunction

String

Defines what kind of error the model tries to minimize.
Allowed values:"LEASTSQUARES", "QUANTILE", "LEASTABSOLUTEDEVIATION", "HUBER"

maximumDepth

Integer

Depth of tree; smaller depths keep trees simple and reduce overfitting.

maximumNodes

Integer

Sets the maximum number of leaf nodes in a tree, controlling how complex each tree can become.

nodeSize

Integer

The minimum number of data points required in a leaf node; larger values make the model smoother and less sensitive to noise.

numberOfTrees

Integer

The total number of trees added to the model; more trees usually improve accuracy but increase training time.

shrinkage

Decimal

Controls the learning rate, deciding how much each tree contributes to the final prediction; smaller values learn more slowly but more reliably.

subSample

Decimal

The fraction of data used to train each tree; smaller values add randomness and help reduce overfitting.

8. gradientBoostingClassification (JSONObject)

Configuration for a Gradient Boosting classification model.

KeyDescription
lossFunction

String

Defines what kind of error the model tries to minimize.
Allowed values:"LEASTSQUARES", "QUANTILE", "LEASTABSOLUTEDEVIATION", "HUBER"

maximumDepth

Integer

Depth of tree; smaller depths keep trees simple and reduce overfitting.

maximumNodes

Integer

Sets the maximum number of leaf nodes in a tree, controlling how complex each tree can become.

nodeSize

Integer

The minimum number of data points required in a leaf node; larger values make the model smoother and less sensitive to noise.

numberOfTrees

Integer

The total number of trees added to the model; more trees usually improve accuracy but increase training time.

shrinkage

Decimal

Controls the learning rate, deciding how much each tree contributes to the final prediction; smaller values learn more slowly but more reliably.

subSample

Decimal

The fraction of data used to train each tree; smaller values add randomness and help reduce overfitting.

9. adaptiveBoost (JSONObject)

Configuration for an Adaptive Boost (AdaBoost) classification model.

KeyDescription
maximumDepth

Integer

Depth of tree; smaller depths keep trees simple and reduce overfitting.

maximumNodes

Integer

Sets the maximum number of leaf nodes in a tree, controlling how complex each tree can become.

nodeSize

Integer

The minimum number of data points required in a leaf node; larger values make the model smoother and less sensitive to noise.

numberOfTrees

Integer

The total number of trees added to the model; more trees usually improve accuracy but increase training time.

10. decisiontreeClassification (JSONObject)

Configuration for a Decision Tree classification model.

KeyDescription
minimumSampleSplit

Integer

The minimum number of data points required to split a node; higher values make the tree simpler and help avoid overfitting.

maximumDepth

Integer

Maximum depth of the tree. smaller values prevent the model from becoming too complex and overfitting the data.

11. randomForestClassification (JSONObject)

Configuration for a Random Forest classification model.

KeyDescription
minimumSampleSplit

Integer

The minimum number of data points needed to split a node in each tree; larger values make the trees more conservative and reduce overfitting.

maximumDepth

Integer

Maximum depth of the tree; limiting depth keeps the trees simpler and improves generalization.

numberOfTrees

Integer

The number of decision trees built in the forest; more trees usually improve accuracy but increase training time.

12. logisticRegression (JSONObject)

Configuration for a Logistic Regression classification model.

KeyDescription
lambda

Decimal

Controls the strength of regularization, helping prevent overfitting by penalizing very large coefficient values.

maximumIterations

Integer

The maximum number of training steps the model can take to find the best parameters.

tolerance

Decimal

Sets how small the improvement must be before training stops, balancing accuracy and training time.

13. linearDiscriminantAnalysis (JSONObject)

Configuration for a Linear Discriminant Analysis classification model.

KeyDescription
tolerance

Decimal

Sets how small the improvement must be before training stops, balancing accuracy and training time.

14. maxEntropy (JSONObject)

Configuration for a Max Entropy (Multinomial Logistic Regression) classification model.

KeyDescription
lambda

Decimal

Controls the strength of regularization, helping prevent overfitting by penalizing very large coefficient values.

maximumIterations

Integer

The maximum number of training steps the model can take to find the best parameters.

tolerance

Decimal

Sets how small the improvement must be before training stops, balancing accuracy and training time.

15. kMeansPP (JSONObject)

Configuration for a K-Means++ clustering model.

KeyDescription
clustersCount

Integer

The number of clusters the algorithm will form when a fixed value of k is provided.

kMax

Integer

The maximum number of clusters to try when the algorithm is allowed to search for an optimal k.

chIndexBasedOptimalK

Boolean

If enabled, the model automatically selects the best number of clusters using the Calinski–Harabasz index.

calculatePerformanceMetrics

Boolean

Determines whether clustering quality metrics are computed after training, which helps evaluate how good the clusters are.

16. kModes (JSONObject)

Configuration for a K-Modes clustering model (for categorical data).

KeyDescription
clustersCount

Integer

The fixed number of clusters the algorithm will create.

minimumClusterCount

Integer

The smallest number of clusters to consider when searching for the best clustering.

maximumClusterCount

Integer

The largest number of clusters to consider when searching for the best clustering.

dissimilarityMeasure

String

Defines how difference between categorical data points is calculated (for example, simple matching vs. frequency-based methods).
Allowed values:"BINARY", "GLOBAL_FREQUENCY", "RELATIVE_FREQUENCY", "JARO_WINKLER", "LEVENSHTEIN", "JACCARD"

17. kPrototypes (JSONObject)

Configuration for a K-Prototypes clustering model (for mixed numerical and categorical data).

KeyDescription
clustersCount

Integer

The number of clusters the algorithm will form when a fixed value of k is provided.

kMax

Integer

The maximum number of clusters to try when the algorithm is allowed to search for an optimal k.

chIndexBasedOptimalK

Boolean

If enabled, the model automatically selects the best number of clusters using the Calinski–Harabasz index.

gamma

Decimal

Controls the balance between numerical and categorical features; higher values give more importance to categorical data when forming clusters.

18. xMeans (JSONObject)

Configuration for an X-Means clustering model (an extension of K-Means).

KeyDescription
kMax

Integer

The maximum number of clusters to try when the algorithm is allowed to search for an optimal k.

maximumIterations

Integer

The maximum number of training steps the model can take to find the best parameters.

tolerance

Decimal

Sets how small the improvement must be before training stops, balancing accuracy and training time.

19. gMeans (JSONObject)

Configuration for a G-Means clustering model (which determines k based on a statistical test).

KeyDescription
kMax

Integer

The maximum number of clusters to try when the algorithm is allowed to search for an optimal k.

maximumIterations

Integer

The maximum number of training steps the model can take to find the best parameters.

tolerance

Decimal

Sets how small the improvement must be before training stops, balancing accuracy and training time.

Sample Request:

Copiedcurl https://analyticsapi.zoho.com/restapi/v2/automl/workspaces/<workspace-id>/analysis --data-urlencode 'CONFIG={"name":"Analysis-1","trainingTableId":"466206000000061002","targetColumn":"Product","predictionType":"Classification","features":["Region","Product Category","Sales"],"serverOption":1,"algorithms":{"decisionTreeClassification":{"minimumSampleSplit":"2","maximumDepth":"6"},"randomForestClassification":{"minimumSampleSplit":"2","maximumDepth":"6","numberOfTrees":"25"}}}'
-X 'POST'
-H 'ZANALYTICS-ORGID: <org-id>'
-H 'Authorization: Zoho-oauthtoken <access_token>'
CopiedorgId = "55522777";
workspaceId = "<workspace-id>";

headersMap = Map();
headersMap.put("ZANALYTICS-ORGID", orgId);

config = Map();
config.put("name", "Analysis-1");
config.put("trainingTableId", "466206000000061002");
config.put("targetColumn", "Product");
config.put("predictionType", "Classification");

featuresList = {};
featuresList.add("Region");
featuresList.add("Product Category");
featuresList.add("Sales");
config.put("features", featuresList);

config.put("serverOption", 1);

algorithmsMap = Map();

dtMap = Map();
dtMap.put("minimumSampleSplit", "2");
dtMap.put("maximumDepth", "6");
algorithmsMap.put("decisionTreeClassification", dtMap);

rfMap = Map();
rfMap.put("minimumSampleSplit", "2");
rfMap.put("maximumDepth", "6");
rfMap.put("numberOfTrees", "25");
algorithmsMap.put("randomForestClassification", rfMap);

config.put("algorithms", algorithmsMap);

paramsMap = Map();
paramsMap.put("CONFIG", config.toString());

response = invokeurl
[
  url :"https://analyticsapi.zoho.com/restapi/v2/automl/workspaces/" + workspaceId + "/analysis"
  type :POST
  parameters:paramsMap
  headers:headersMap
  connection:"analytics_oauth_connection"
];

info response;
Copiedusing System;
using System.Collections.Generic;
using ZohoAnalytics;
using System.Text.Json;

namespace ZohoAnalyticsTest
{
    class Program
    {
        long orgId = 55522777;
        long workspaceId = 35130000001055707;

        public void CreateAutomlAnalysis(IAnalyticsClient ac)
        {
            string automlName = "Sales Analysis - CSharp SDK";
            long trainingTableId = 466206000000061002;
            string predictionType = "CLASSIFICATION";

            List<string> features = new List<string>
            {
                "Region",
                "Product Category",
                "Sales"
            };

            int serverOption = 1;

            Dictionary<string, object> algorithms = new Dictionary<string, object>
            {
                {
                    "decisionTreeClassification",
                    new Dictionary<string, object>
                    {
                        { "minimumSampleSplit", "2" },
                        { "maximumDepth", "100" }
                    }
                },
                {
                    "randomForestClassification",
                    new Dictionary<string, object>
                    {
                        { "minimumSampleSplit", "2" },
                        { "maximumDepth", "100" },
                        { "numberOfTrees", "25" }
                    }
                }
            };

            Dictionary<string, object> config = new Dictionary<string, object>
            {
                { "description", "Sales Table Analysis..." },
                { "targetColumn", "Product" }
            };

            IWorkspaceAPI workspace = ac.GetWorkspaceInstance(orgId, workspaceId);

            long automlId = workspace.CreateAutomlAnalysis(
                automlName,
                trainingTableId,
                predictionType,
                features,
                serverOption,
                algorithms,
                config
            );

            Console.WriteLine("Created AutoML Analysis ID: " + automlId);
        }

        static void Main(string[] args)
        {
            string clientId = "1000.xxxxxxx";
            string clientSecret = "xxxxxxx";
            string refreshToken = "1000.xxxxxxx.xxxxxxx";

            try
            {
                IAnalyticsClient ac = new AnalyticsClient(clientId, clientSecret, refreshToken);
                Program obj = new Program();
                obj.CreateAutomlAnalysis(ac);
            }
            catch (ServerException ex)
            {
                Console.WriteLine("Server exception - " + ex.GetErrorMessage());
            }
            catch (Exception ex)
            {
                Console.WriteLine("Other exception - " + ex.Message);
            }
        }
    }
}
Copiedpackage main

import (
    "fmt"
    ZAnalytics "zoho/pkg/analyticsclient"
)

var (
    clientId     = "1000.xxxxxxx"
    clientSecret = "xxxxxxx"
    refreshToken = "1000.xxxxxxx.xxxxxxx"

    orgId       = "55522777"
    workspaceId = "35130000001055707"
)

func CreateAutoMLAnalysis(ac ZAnalytics.Client) {
    automlName := "Sales Analysis - Go SDK"
    trainingTableID := "466206000000061002"
    predictionType := "CLASSIFICATION"

    features := []interface{}{
        "Region",
        "Product Category",
        "Sales",
    }

    serverOption := 1

    algorithms := map[string]interface{}{
        "decisionTreeClassification": map[string]interface{}{
            "minimumSampleSplit": "2",
            "maximumDepth":       "100",
        },
        "randomForestClassification": map[string]interface{}{
            "minimumSampleSplit": "2",
            "maximumDepth":       "100",
            "numberOfTrees":      "25",
        },
    }

    config := map[string]interface{}{
        "description":  "Sales Table Analysis...",
        "targetColumn": "Product",
    }

    workspace := ZAnalytics.GetWorkspaceInstance(&ac, orgId, workspaceId)

    automlID, exception := workspace.CreateAutoMLAnalysis(
        automlName,
        trainingTableID,
        predictionType,
        features,
        serverOption,
        algorithms,
        config,
    )

    if exception != nil {
        fmt.Println("Error:", exception)
        return
    }

    fmt.Println("Created AutoML Analysis ID:", automlID)
}

func main() {
    ac := ZAnalytics.GetAnalyticsClient(clientId, clientSecret, refreshToken)
    CreateAutoMLAnalysis(ac)
}
Copiedimport com.zoho.analytics.client.*;
import org.json.*;

public class Test {

    private long orgId = 55522777l;
    private long workspaceId = 35130000001055707l;

    public static void main(String args[]) {

        String clientId = "1000.xxxxxxx";
        String clientSecret = "xxxxxxx";
        String refreshToken = "1000.xxxxxxx.xxxxxxx";

        Test tObj = new Test();
        AnalyticsClient ac = new AnalyticsClient(clientId, clientSecret, refreshToken);

        try {
            tObj.createAutoMLAnalysis(ac);
        }
        catch (ServerException ex) {
            System.out.println("Server exception - ErrorCode : " + ex.getErrorCode()
                    + ", ErrorMessage : " + ex.getErrorMessage());
        }
        catch (ParseException ex) {
            System.out.println("Parser exception - ErrorMessage : " + ex.getResponseMessage());
        }
        catch (Exception ex) {
            System.out.println("Other exception - ");
            ex.printStackTrace();
        }
    }

    public void createAutoMLAnalysis(AnalyticsClient ac) throws Exception {

        String automlName = "Sales Analysis Java SDk";
        String trainingTableId = "466206000000061002";
        String predictionType = "CLASSIFICATION";

        JSONArray features = new JSONArray();
        features.put("Region");
        features.put("Product Category");
        features.put("Sales");

        int serverOption = 1;

        JSONObject decisionTree = new JSONObject();
        decisionTree.put("minimumSampleSplit", "2");
        decisionTree.put("maximumDepth", "100");

        JSONObject randomForest = new JSONObject();
        randomForest.put("minimumSampleSplit", "2");
        randomForest.put("maximumDepth", "100");
        randomForest.put("numberOfTrees", "25");

        JSONObject algorithms = new JSONObject();
        algorithms.put("decisionTreeClassification", decisionTree);
        algorithms.put("randomForestClassification", randomForest);

        JSONObject config = new JSONObject();
        config.put("description", "Sales Table Analysis...");
        config.put("targetColumn", "Product");

        WorkspaceAPI workspace = ac.getWorkspaceInstance(orgId, workspaceId);

        String automlId = workspace.createAutoMLAnalysis(
                automlName,
                trainingTableId,
                predictionType,
                features,
                serverOption,
                algorithms,
                config
        );

        System.out.println("Created AutoML Analysis ID: " + automlId);
    }
}
Copied<?php

require 'AnalyticsClient.php';

class Test
{
    public $ac = NULL;
    public $client_id = "1000.xxxxxxx";
    public $client_secret = "xxxxxxx";
    public $refresh_token = "1000.xxxxxxx.xxxxxxx";

    public $org_id = "55522777";
    public $workspace_id = "35130000001055707";

    function __construct() {
        $this->ac = new AnalyticsClient($this->client_id, $this->client_secret, $this->refresh_token);
    }

    function createAutoMLAnalysis() {
        $automl_name = "Sales Analysis";
        $training_table_id = "466206000000061002";
        $prediction_type = "CLASSIFICATION";

        $features = array("Region", "Product Category", "Sales");
        $server_option = 1;

        $algorithms = array(
            "decisionTreeClassification" => array(
                "minimumSampleSplit" => "2",
                "maximumDepth" => "100"
            ),
            "randomForestClassification" => array(
                "minimumSampleSplit" => "2",
                "maximumDepth" => "100",
                "numberOfTrees" => "25"
            )
        );

        $config = array(
            "description" => "Sales Table Analysis...",
            "targetColumn" => "Product"
        );

        $workspace = $this->ac->getWorkspaceInstance($this->org_id, $this->workspace_id);
        $automl_id = $workspace->createAutoMLAnalysis(
            $automl_name,
            $training_table_id,
            $prediction_type,
            $features,
            $server_option,
            $algorithms,
            $config
        );

        echo "Created AutoML Analysis ID: " . $automl_id . PHP_EOL;
    }
}

$test_obj = new Test();

try {
Copiedfrom __future__ import with_statement
from AnalyticsClient import AnalyticsClient
import sys
import json

class Config:
    CLIENTID = "1000.xxxxxxx"
    CLIENTSECRET = "xxxxxxx"
    REFRESHTOKEN = "1000.xxxxxxx.xxxxxxx"

    ORGID = "55522777"
    WORKSPACEID = "35130000001055707"

class Sample:

    ac = AnalyticsClient(Config.CLIENTID, Config.CLIENTSECRET, Config.REFRESHTOKEN)

    def create_automl_analysis(self, ac):
        automl_name = "Sales Analysis"
        training_table_id = "466206000000061002"
        prediction_type = "CLASSIFICATION"

        features = ["Region", "Product Category", "Sales"]

        server_option = 1

        algorithms = {
            "decisionTreeClassification": {
                "minimumSampleSplit": "2",
                "maximumDepth": "100"
            },
            "randomForestClassification": {
                "minimumSampleSplit": "2",
                "maximumDepth": "100",
                "numberOfTrees": "25"
            }
        }

        config = {
            "description": "Sales Table Analysis...",
            "targetColumn": "Product"
        }

        workspace = ac.get_workspace_instance(Config.ORGID, Config.WORKSPACEID)

        automl_id = workspace.create_automl_analysis(
            automl_name,
            training_table_id,
            prediction_type,
            features,
            server_option,
            algorithms,
            config
        )
        print("Created AutoML Analysis ID:", automl_id)

try:
    obj = Sample()
    obj.create_automl_analysis(obj.ac)

except Exception as e:
    print(str(e))
Copiedvar analyticsClient = require('./AnalyticsClient');

var clientId = '';
var clientSecret = '';
var refreshToken = '';
var orgId = '';
var workspaceId = '';
var automlName = "Sales Analysis";
var trainingTableId = "466206000000061002";
var predictionType = "CLASSIFICATION";

var features = [];
features.push("Region");
features.push("Product Category");
features.push("Sales");

var serverOption = 1;

var algorithms = {
    decisionTreeClassification: {
        minimumSampleSplit: "2",
        maximumDepth: "100"
    },
    randomForestClassification: {
        minimumSampleSplit: "2",
        maximumDepth: "100",
        numberOfTrees: "25"
    }
};

var config = {};
config.description = "Sales Table Analysis";
config.targetColumn = "Product";
var ac = new analyticsClient(clientId, clientSecret, refreshToken);

var workspace = ac.getWorkspaceInstance(orgId, workspaceId);

workspace.createAutomlAnalysis(
    automlName,
    trainingTableId,
    predictionType,
    features,
    serverOption,
    algorithms,
    config
)
.then((automlId) => {
    console.log("Created AutoML Analysis ID:", automlId);
})
.catch((error) => {
    console.log('errorCode : ' + error.errorCode);
    console.log('errorMessage : ' + error.errorMessage);
});
Copiedrequire 'zoho_analytics_client'

class Config
  CLIENT_ID     = "1000.xxxxxxx"
  CLIENT_SECRET = "xxxxxxx"
  REFRESH_TOKEN = "1000.xxxxxxx.xxxxxxx"

  ORG_ID        = "55522777"
  WORKSPACE_ID  = "35130000001055707"
end

class Sample
  def initialize
    @ac = AnalyticsClient.new
           .with_data_center("US")
           .with_oauth({
             "clientId"     => Config::CLIENT_ID,
             "clientSecret" => Config::CLIENT_SECRET,
             "refreshToken" => Config::REFRESH_TOKEN
           })
           #.with_token_store_path("/home/admin/analytics_ruby_sdk/tokens") # Optional – specify a directory path to securely store the encrypted access token
           .build
  end

  def create_automl_analysis
    automl_name       = "Sales Analysis - Ruby SDK"
    training_table_id = "466206000000061002"
    prediction_type   = "CLASSIFICATION"

    features = ["Region", "Product Category", "Sales"]
    server_option = 1

    algorithms = {
      "decisionTreeClassification" => {
        "minimumSampleSplit" => "2",
        "maximumDepth"       => "100"
      },
      "randomForestClassification" => {
        "minimumSampleSplit" => "2",
        "maximumDepth"       => "100",
        "numberOfTrees"      => "25"
      }
    }

    config = {
      "description"  => "Sales Table Analysis...",
      "targetColumn" => "Product"
    }

    workspace = @ac.get_workspace_instance(Config::ORG_ID, Config::WORKSPACE_ID)

    automl_id = workspace.create_automl_analysis(
      automl_name,
      training_table_id,
      prediction_type,
      features,
      server_option,
      algorithms,
      config
    )

    puts "Created AutoML Analysis ID: #{automl_id}"
  end
end

begin
  obj = Sample.new
  obj.create_automl_analysis
rescue ServerError => e
  puts "Server Error: #{e.response_content}"
rescue StandardError => e
  puts e.message
  puts e.backtrace.join("\n")
end

Download SDKs:  C# | GO | JAVA | PHP | PYTHON | NodeJS | Ruby

Sample value for CONFIG parameter:

Copied{
  "name": "Analysis-1",
  "trainingTableId": 2531676000011845000,
  "targetColumn": "Sales",
  "predictionType": "CLASSIFICATION",
  "features": [
    "Cost",
    "Region",
    "Product"
  ],
  "serverOption": 1,
  "algorithms": {
    "decisionTreeClassification": {
      "minimumSampleSplit": "2",
      "maximumDepth": "2"
    },
    "randomForestClassification": {
      "minimumSampleSplit": "2",
      "maximumDepth": "2",
      "numberOfTrees": "25"
    }
  }
}

Sample Response:

CopiedHTTP/1.1 200 OK
Content-Type:application/json;charset=UTF-8

{
    "status": "success",
    "summary": "Create autoML analysis",
    "data": {
        "id": "466206000000178110"
    }
}