Predict from an inline data frame
Synchronous prediction against a small inline `DataFrame` (as opposed to `dss/predict`, which predicts from/to registered data sources via an async job). Each row is predicted individually; the response's `KSVSMap` has one entry per input row, in the same order. If any input attribute name isn't recognized by the model, the request still succeeds — unrecognized attributes are silently ignored; only when **every** attribute name is unrecognized does the call fail with `500 "No known input attributes"`.
Synchronous prediction against a small inline DataFrame (as opposed
to dss/predict, which predicts from/to registered data sources via
an async job). Each row is predicted individually; the response's
KSVSMap has one entry per input row, in the same order. If any
input attribute name isn't recognized by the model, the request still
succeeds — unrecognized attributes are silently ignored; only when
every attribute name is unrecognized does the call fail with
500 "No known input attributes".
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
Model identifier
Query Parameters
Enable data imputation for missing values
Request 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/predict/nbra_prj_iris_build_1" \ -H "Content-Type: application/json" \ -d '{ "attributeNames": [ "sepal_length", "sepal_width", "petal_length", "petal_width" ], "attributeTypes": [ "C", "C", "C", "C" ], "data": [ [ "1", "2.0", "1.5", "0.5" ] ], "errorHandling": 1 }'{ "statusCode": 200, "statusString": "OK", "values": { "KSVSMap": { "values": [ { "z1LTz0": "true", "resU": "1", "res": "1", "z0": "-7.090267021166173", "normZ": "0.5773283017945733", "resZ": "-4.879413036493274" } ] } }}{ "statusCode": 400, "statusString": "Cannot Find Project id[unknownRtlm] for Customer id [c1]", "values": {}}{ "statusCode": 500, "statusString": "No known input attributes", "values": {}}Learn then predict (or predict then learn) in one call POST
Combines a learn (DEM update) and a prediction in a single request against a large inline `DataFrame`. `{model}` accepts a comma-separated list of model ids to run in one call, not just a single model. The response is the input `DataFrame` filtered down to the columns named in `keepColumns` plus each model's derived result/score columns (`{model}::...`). Every failure is reported as **400** with the raw Java exception `toString()` as the message — there is no separate 500 path, unlike `Predict`/`DSPredict`. An unknown project, for example, surfaces this way as a bare `NullPointerException` with no further detail.
Prepare prediction result GET
Registers a short-lived, one-time-use download key for `dsName` in Redis, scoped to the caller's request signature. Only checks that `dsName` is a **registered** data source name — it does not check that the underlying file/object it points to actually exists or is reachable; that's only discovered when `tmp/dss/file/{key}/{filename}` is subsequently called.