SymetryML Documentation
Exploration

Estimate density distribution

Compute a histogram-based density estimate for one attribute per `values[]` entry. - **Synchronous** — the result is returned directly in this response, not via a job. - **Exactly one `inputAttributeNames` value per entry** (by name only — `inputAttributes`/index is not supported here); more than one raises a `500`. - **Histograms must be enabled on the project** (`histogramEnabled`/`buildHistogram`), or every entry fails with a `400`. A request body missing the top-level `values` array entirely (e.g. sending the `extraParameters` object directly as the body) is **not** an error — it silently returns `200` with an empty `densityList.values`. The request body is an **ExploreContext** object: `{"values": [<MLContext>, ...]}` — one `MLContext` entry per attribute to estimate.

POST
/{user}/projects/{project}/densityEstimate

Compute a histogram-based density estimate for one attribute per values[] entry.

  • Synchronous — the result is returned directly in this response, not via a job.
  • Exactly one inputAttributeNames value per entry (by name only — inputAttributes/index is not supported here); more than one raises a 500.
  • Histograms must be enabled on the project (histogramEnabled/buildHistogram), or every entry fails with a 400.

A request body missing the top-level values array entirely (e.g. sending the extraParameters object directly as the body) is not an error — it silently returns 200 with an empty densityList.values.

The request body is an ExploreContext object: {"values": [<MLContext>, ...]} — one MLContext entry per attribute to estimate.

Authorization

SymetryMLAuth
AuthorizationBearer <token>

HMAC-SHA256 signature-based authentication: requests are signed with your secret key and sent with the Customer-ID, Sym-date, Authorization, Content-MD5 and sym-version headers. See SymetryML REST API Security for the signature algorithm and a complete example.

In: header

Path Parameters

user*string

User/Customer identifier

project*string

Project identifier

Query Parameters

tps?integer

Thread pool size for parallel histogram computation

Default10
useLocal?boolean

For a federated project, use the local project instead of resolving a peer

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

curl -X POST "https://example.com/c1/projects/nbra_prj_iris/densityEstimate?useLocal=true" \  -H "Content-Type: application/json" \  -d '{    "values": [      {        "inputAttributeNames": [          "sepal_length"        ],        "targets": [],        "extraParameters": {          "hist_bins": "10",          "hist_is_normalized": "true"        }      },      {        "inputAttributeNames": [          "sepal_width"        ],        "targets": [],        "extraParameters": {          "hist_bins": "10",          "hist_is_normalized": "true"        }      }    ]  }'

{  "statusCode": 200,  "statusString": "OK",  "values": {    "densityList": {      "values": [        {          "attrName": "sepal_length",          "min": 5.800000000000001,          "max": 7.7,          "width": 0.18999999999999995,          "histogram": [            0.75,            1,            1,            1,            0.8333333333333334,            0.5833333333333334,            0.16666666666666666,            0.3333333333333333,            0.08333333333333333,            0.4166666666666667          ],          "valueForMissing": -1        }      ]    }  }}

{  "statusCode": 400,  "statusString": "Histograms for project id[nbra_prj_iris] for Customer id [c1] are not enabled",  "values": {}}

Estimate conditional density distribution POST

Compute a histogram-based conditional density estimate — the distribution of a target attribute given a conditioning attribute — for one attribute pair per `values[]` entry. Synchronous — the result is returned directly in this response, not via a job. - **Exactly 2 `inputAttributeNames` values per entry, in order**: `[conditionalAttribute, targetAttribute]`. Any count other than 2 raises a `500` (an uncaught exception, not a clean validation error). - **Histograms must be enabled on the project** (`histogramEnabled`/`buildHistogram`, e.g. via `enableHistogram=true` on project creation), or every entry fails with a `400`. The request body is an **ExploreContext** object: `{"values": [<MLContext>, ...]}` — one `MLContext` entry per attribute pair to estimate.

Explore data POST

Perform various statistical analyses and data exploration including univariate, bivariate, chi-square tests, z-tests (including known-mean/proportion variants), t-tests, F-tests, ANOVA, and information gain. Supports both attribute indices and names. Unlike VIF/SVD/PCA/SVD-feature-selection, this endpoint can run **synchronously**: when `async` is omitted or `false`, the result is returned directly in this response, wrapped the same way a Job Status Response would be (`values.KSVDMap`, plus `values.smlInfo` when `returnProjectInfo` is true). When `async=true`, this call instead returns `202` and the result must be fetched from [Get job information](/docs/api-reference/jobs/jobs-jobid-get). The request body is an **ExploreContext** object: `{"values": [<MLContext>, ...]}` — one `MLContext` entry per exploration to run in this call.