SymetryML Documentation
Encoders

Get encoder statistics

Get an Encoder's aggregate statistics, returned in two parts: - **`dataframe`**: one row per categorical/binary key value seen so far, with its observation count, mean, standard deviation, and variance against the target. - **`encoderInfo`**: the encoder's own target attribute name and `minTrimSize`.

GET
/{user}/encoders/{encodername}/stats

Get an Encoder's aggregate statistics, returned in two parts:

  • dataframe: one row per categorical/binary key value seen so far, with its observation count, mean, standard deviation, and variance against the target.
  • encoderInfo: the encoder's own target attribute name and minTrimSize.

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

encodername*string

Response Body

application/json

application/json

curl -X GET "https://example.com/c1/encoders/superenc0/stats"
{  "statusCode": 200,  "statusString": "OK",  "values": {    "dataframe": {      "attributeNames": [        "key",        "type",        "count",        "mean",        "stddev",        "variance"      ],      "data": [        [          "iris_setosa",          "S",          "2.0",          "75.0",          "35.35533905932738",          "1250.0"        ],        [          "petal_length",          "S",          "43.0",          "3.4883720930232553",          "2.889818687863733",          "8.35105204872647"        ]      ],      "errorHandling": 1    },    "encoderInfo": {      "target": "Iris_versicolor",      "minTrimSize": "10.0"    }  }}

{  "statusCode": 400,  "statusString": "Cannot Find Encoder[nosuchenc] for Customer[c1].",  "values": {}}

Update encoder from a data source (async job) POST

Schedule an async job that updates an Encoder's key statistics from a data source, rather than an inline DataFrame (see [Update encoder from an inline DataFrame](/docs/api-reference/encoders/encoders-encodername-learn-post) for the synchronous inline-DataFrame equivalent). The request body is the same encrypted `DSInfo` payload used by the Data Sources CREATE endpoint: - A **non-Spark DS** carries its attribute types via the DSInfo `extra` field. - A **Spark-backed DS** instead carries a serialized attribute-type `DataFrame` under the `sparkdf` key inside `info` (alongside the other Spark connection keys, e.g. `sparkmaster`/`spark_version`). Whether the encoder's target column gets checked before or after scheduling depends on the same distinction: - **Non-Spark DS**: the job is always scheduled (`202`) regardless of whether the target column is actually present. If it's missing, the job itself fails and the error only surfaces via `GET /{user}/jobs/{jobId}` as a `500`, not from this endpoint's own response. - **Spark-backed DS**: the attribute DataFrame is validated against the encoder's target, and against a maximum column-count limit, *before* scheduling — both checks fail immediately with a `400` from this endpoint, never a job-level `500`. Returns `202` with the new job id in the `sym-job-id` response header once scheduled; poll `GET /{user}/jobs/{jobId}` for completion.

List encoders GET

List the names of every Encoder belonging to the calling customer.