Skip to content


OpenML offers a range of APIs to download and upload OpenML datasets, tasks, run algorithms on them, and share the results.

icon REST

The REST API allows you to talk directly to the OpenML server from any programming environment.

icon Python

Download datasets into Python scripts, build models using Python machine learning libraries (e.g., scikit-learn), and share the results online, all in a few lines of code.

icon R

Download datasets into R scripts, build models using R machine learning packages (e.g. mlr), and share the results online, again in a few lines of code.

icon Java

If you are building machine learning systems in Java, there is also an API for that.

icon .NET (C#)

The .NET library is under development, but already contains most of the functions available.

Easy authentication

In the interest of open science, we allow you to freely download all public resources, also through the APIs (rate limits apply when necessary). Uploading and sharing new datasets, tasks, flows and runs (or accessing any shared/private resources) is also very easy, and requires only the API key that you can find in your profile (after logging in).

If you use any of the language-specific APIs, you only need to store this key in a config file and forget about it. For authenticating to the REST API, you can send your api key using Basic Auth, or by adding ?api_key='your key' to your calls. If you are logged into, this will be done automatically.