REST API Reference Guide
This reference manual describes the SymetryML REST Application Programming Interface (API) that is exposed from SymetryML Inc. The API lets you create, update, and delete SymetryML projects that can be used for data-mining exploration and predictive modeling.
Audience
This reference manual is intended for software developers who write client applications that interact with the SymetryML REST API. This reference manual provides documentation of all API operations, which return raw JSON. For optimal utilization of network bandwidth, the SymetryML REST API supports the consumption and creation of JSON data structures only, unless you use a data source from the Data Source API.
Assumptions
This reference manual assumes that you have a general understanding of RESTful Web Services along with development tools, environments, and IDEs necessary to test and create an application in your programming language of choice. It also ensures that only users with the private key can make requests of those services.
Users of the SymetryML REST service must be authorized by SymetryML Inc.
Request Body Size Limit
Every endpoint that accepts a request body enforces a maximum body size. A request whose body exceeds the limit is rejected with 413 Payload Too Large and is not processed.
| Setting | Default | Description |
|---|---|---|
request.body.max.size | 268435456 (256 MB) | Maximum number of bytes accepted from a request body. A value of 0 or less disables the limit entirely. |
The size is counted as the body is read, so an oversized request is rejected as soon as it crosses the limit rather than being buffered in full.
Note: this response is generated by the JAX-RS layer rather than by a SymetryML handler, so — unlike every other error in this API — it does not carry the usual {"statusCode":...,"statusString":...,"values":{}} JSON envelope.
The limit applies to every body-carrying endpoint, but in practice it is reached by the ones that push a DataFrame — learn, predict, learnpredict and transform — and by bulk data source requests. Learning from a data source instead of pushing a DataFrame avoids it altogether.
Reference Implementation
A reference implementation of the rest client for python (pymetry) is available here.
Installation of the python script can be performed by download the latest version of pymetry rest client and running the following command:
pip install pymetry-6.1.XXXXX.tar.gzTerminology
The following table defines key terms related to the SymetryML REST API.
.
| Term | Definition |
|---|---|
| SymetryML Projects | Allow creation and deletion of SymetryML projects, learning and forgetting new data, and obtaining information about SymetryML projects. |
| Data source | Data sources are abstractions of CSV files that can be accessed through Amazon S3, SFTP, HTTP/HTTPS and other communication APIs. |
| Encoder | In data mining, the process of transforming a categorical attribute into a continuous attribute is called encoding. Within SymetryML, an encoder object allows the user to transform high-cardinality attributes into meaningful data points that are more predictive than their original form for a particular target attribute |
| Data exploration | Data mining and statistical exploration of SymetryML projects. |
| Model building | Allows building models using various modeling algorithms, such as linear discriminant analysis (LDA), multiple linear regression (MLR), and quadratic discriminant analysis (QDA). |
| Model prediction | Allows to make predictions using models. |