Getting Started

Click here to download this page as a Jupyter Notebook.


From PyPi:

pip install kxy

From GitHub:

git clone & cd ./kxy-python & pip install .

The kxy package only supports Python 3. Replace pip by pip3 in the commands above, as needed.


All heavy computations are run on the KXY backend and require an API key. The API key is set by running the command

kxy configure

as a one-off, and following the instructions.

You may also set your API key as the KXY_API_KEY environment variable, for instance by running

import os
os.environ['KXY_API_KEY'] = '<API Key>'

To get an API key, you need to have an account with us. You can create an account here.

By default, you will start in the free Starter plan, and you will be able to experience the KXY backend from the portal for free, and without providing a payment method, by uploading your data as csv files.

Once you have an account and are ready to use our API, you can find your API key on the KXY portal here.

API access to our backend is billed on a per-request basis, and requires that you provide a valid payment method in the KXY portal.


The public Docker image kxytechnologies/kxy has been built for your convenience, and comes with anaconda, the kxy package, and various popular machine learning packages (e.g. Tensorflow, XGBoost, LightGBM, scikit-learn, and more).

To start a Jupyter Notebook server from a sandboxed Docker, run

docker run -i -t -p 5555:8888 kxytechnologies/kxy /bin/bash -c "kxy configure <YOUR API KEY> && /opt/conda/bin/jupyter notebook --notebook-dir=/opt/notebooks --ip='*' --port=8888 --no-browser --allow-root --NotebookApp.token=''"

where you should replace <YOUR API KEY> with your API key and navigate to http://localhost:5555 in your browser.

To start a Jupyter Notebook server from an existing directory of notebooks, run

docker run -i -t --mount src=</path/to/your/local/dir>,target=/opt/notebooks,type=bind -p 5555:8888 kxytechnologies/kxy /bin/bash -c "kxy configure <YOUR API KEY> && /opt/conda/bin/jupyter notebook --notebook-dir=/opt/notebooks --ip='*' --port=8888 --no-browser --allow-root --NotebookApp.token=''"

where you should replace </path/to/your/local/dir> with the path to your local notebook folder and navigate to http://localhost:5555 in your browser.

Serverless Applications

For serverless applications running on AWS, we provide a kxy AWS Lambda layer so that you may simply import the kxy package from within your AWS Python 3 lambda functions. No additional requirement is needed, other than specifying your API key as the environment variable KXY_API_KEY.

Working with Pandas DataFrames

The most convenient way of using the kxy package is through pandas DataFrame objects. All our analyses are available as methods of pandas DataFrame objects, under the kxy accessor (i.e. as df.kxy.<method_name>). To access these, all you need is to import the kxy package alongside pandas.

In [1]:
import pandas as pd
import kxy

Checkout the Cheat Sheet section for code snippets, the Case Studies section for interesting applications, and the Kaggle & UCI Experiments section for experiments on dozens of UCI and Kaggle datasets.

Working with the Low Level RESTFul API

We intend to provide user-friendly API clients in other programming languages (e.g. R, Ruby and JavaScript). For now, if you are working in a programming language other than Python, you may directly access our serverless compute infrastructure through its RESTFul API. Take a look at our RESTFul API documentation page for more details.