Skip to content
Python wrapper for the mlrequest machine learning API
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

Getting started

mlrequest-python is a Python client for the mlrequest machine learning API. The client allows you to do a few significant things with minimal code.

  • Deploy latency-routed scikit-learn and online machine learning models to 5 data centers around the world, providing < 60ms global response time and automatic failover.
  • Get thousands of model predictions per second
  • Train online models with thousands of training examples per second

You will need an API key to get started with mlrequest-python. You can obtain one for free that provides 5,000 monthly model transactions at The free plan is limited to the deployment of a single online learning model or scikit-learn model file less than 1 MB in size. Scikit-learn model transactions are prioritized for paid accounts, and will generally receive up to 50ms faster response time than free accounts.

For more transactions, larger scikit-learn model files (up to 100 MB), more models, and faster scikit-learn response times, see our paid plans at Check out our documentation for more information.


pip install mlrequest


Create and Deploy a Scikit-Learn Model

from sklearn.ensemble import RandomForestClassifier
from mlrequest import SKLearn

clf = RandomForestClassifier(), y)

sklearn = SKLearn('your-api-key')
sklearn.deploy(clf, 'rf-model-name')

#Make predictions
pred = sklearn.predict('rf-model-name')

Online learning

Create a Model

Models are created automatically by calling one of the model endpoints below.


Currently classification is limited to logistic regression. Email to request other online classifier models.

from mlrequest import Classifier
classifier = Classifier('your-api-key')

# Learn single
training_data = {'features': {'feature1': 23.1, 'feature2': 'some-value'}, 'label': 1}
# Learn batch
training_data = [{'features': {'feature1': 23.1, 'feature2': 'some-value'}, 'label': 1}, ...]

r = classifier.learn(training_data=training_data, model_name='clf-model-name', class_count=2)
r.content # A single response or list of responses

# Predict single
features = {'feature1': 23.1, 'feature2': 'some-value'}
# Predict batch
features = [{'feature1': 23.1, 'feature2': 'some-value'}, ...]

r = classifier.predict(features=features, model_name='clf-model-name', class_count=2)
r.predict_result # A single predicted class or a list of predicted classes


Currently regression is limited to linear regression. Email to request other online regression models.

from mlrequest import Regression
regression = Regression('your-api-key')

# Learn single
training_data = {'features': {'feature1': 23.1, 'feature2': 'some-value'}, 'label': 1.25}
# Learn batch
training_data = [{'features': {'feature1': 23.1, 'feature2': 'some-value'}, 'label': 1.25}, ...]

r = regression.learn(training_data=training_data, model_name='reg-model-name')
r.content # A single response or list of responses

# Predict single
features = {'feature1': 23.1, 'feature2': 'some-value'}
# Predict batch
features = [{'feature1': 23.1, 'feature2': 'some-value'}, ...]

r = regression.predict(features=features, model_name='reg-model-name')
r.predict_result # A single predicted value or a list of predicted values

Reinforcement Learning

from mlrequest import RL
rl = RL('your-api-key')

# Predict
# Note: epsilon, and action_list fields are optional - see the docs at for more information
features = {'feature1': 23.1, 'feature2': 'some-value'}

r = rl.predict(features=features, model_name='rl-model-name', session_id='some-session-id', negative_reward=0, action_count=2)
r.predict_result # A list of actions, ordered by rank (choose r.predict_data[0] for the best action)

# Reward - important note: only the first action from predict_data should be rewarded. Other actions can be used but should not be rewarded.
r = rl.reward(reward=1, model_name='rl-model-name', session_id='some-session-id')
r.content # A single response


from mlrequest import Account
account = Account('your-api-key')

# Get account information
r = account.get_details()
r.content # Account info response

# Delete a model
r = account.delete_model(model_name='some-model-name')
r.content # Delete success response
You can’t perform that action at this time.