Explore data
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.
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.
The request body is an ExploreContext object: {"values": [<MLContext>, ...]} —
one MLContext entry per exploration to run in this call.
Authorization
SymetryMLAuth 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/Customer identifier
Project identifier
Query Parameters
Type of statistical analysis to perform. ztestmu/ttestmu/ftestsigma are the
known-mean/known-sigma variants (require a matching extraParameters key — see the
ztest_with_known_mean example); gain is information gain (its response groups
results by base attribute name, not one entry per values[] item — see the
gain_result example). chi2 has two modes: with targets non-empty, it's a
rows×cols contingency-table test over indices/names (chi2_test/chi2_by_name);
with targets empty, it's a goodness-of-fit test reading literal category names
directly from inputAttributes (chi2_goodness_of_fit).
Value in
- "uni"
- "bi"
- "gain"
- "anova"
- "ztest"
- "ztestp"
- "ztestmu"
- "ttest"
- "ttestmu"
- "ftest"
- "ftestsigma"
- "chi2"
For a federated project, use the local project instead of resolving a peer
Include the project's ProjectInfo (values.smlInfo) alongside the result
trueExecute analysis asynchronously (returns 202 with sym-job-id instead of the result)
falseRequest Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
curl -X POST "https://example.com/c1/projects/nbra_prj_iris/explore?metric=uni&useLocal=true" \ -H "Content-Type: application/json" \ -d '{ "values": [ { "inputAttributes": [ "0" ], "targets": [], "extraParameters": {} } ] }'{ "statusCode": 200, "statusString": "OK", "values": { "smlInfo": { "pid": "nbra_prj_iris", "attributeNames": [ "sepal_length", "sepal_width", "petal_length", "petal_width" ], "type": "cpu" }, "KSVDMap": { "values": [ { "min": 4.3, "median": 5.800000000000001, "variance": 0.6811, "max": 7.9, "mean": 5.8433, "count": 150, "skewness": 0.3181, "meanMarginErrorC95": 0.1332, "stddev": 0.8253, "stderr": 0.0674 } ] } }}{ "statusCode": 202, "statusString": "Job Created", "values": {}}{ "statusCode": 400, "statusString": "bad metric:[bogus]", "values": {}}Estimate density distribution POST
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.
PCA exploration POST
Perform Principal Component Analysis (PCA) on 2+ project attributes. This endpoint is always asynchronous — it schedules a job and returns `202`; fetch the result from [Get job information](/docs/api-reference/jobs/jobs-jobid-get) using the `sym-job-id` response header. The request body is an **ExploreContext** object: `{"values": [<MLContext>, ...]}` — one `MLContext` entry per exploration to run in this call.