openml
Python API for OpenML
What it is and what it does
OpenML-Python is a client library that connects your Python environment to OpenML, an online platform for sharing and benchmarking machine learning datasets and experiments. It lets you programmatically fetch datasets, retrieve pre-defined machine learning tasks with standardized train-test splits, and access curated benchmarking suites—all without manually downloading files or managing data locally. The library wraps OpenML's REST API and integrates with pandas, scikit-learn, and numpy, so datasets come back in formats you already work with.
The package is designed for researchers and practitioners who want to run reproducible ML experiments on shared, versioned datasets, compare results across a community, or build on existing benchmarks. It handles the network communication, data parsing, and format conversion, so you focus on model development rather than data plumbing.
Use it for:
- Download standardized datasets for machine learning experiments without manual file management.
- Retrieve pre-defined classification or regression tasks with consistent train-test splits for benchmarking.
- Access curated benchmarking suites to run your models against a community-agreed set of problems.
- Upload experiment results back to OpenML to contribute to collaborative research and compare performance.
- Build reproducible ML pipelines that reference datasets by ID, ensuring consistency across runs and teams.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
OpenML-Python provides a Python interface to download and upload datasets, tasks, and machine learning experiment results from the OpenML online platform for collaborative open science research.
Yes. The package is actively maintained, has low install friction, carries a permissive BSD license, and solves a real problem for anyone doing collaborative or reproducible ML research. It integrates cleanly with the scientific Python stack (scikit-learn, pandas, numpy) and has no known vulnerabilities. Install it if you work with OpenML datasets or benchmarks; skip it if you manage datasets locally or use a different platform.
Install
openml on PyPI
pip
pip install openmluv
uv add openmlpoetry
poetry add openmlInstalling openml
Before you install
Low friction installation with a pure-Python wheel. Active maintenance with a recent commit on 2026-08-10 and steady development since first release in 2018. Depends on well-established packages like scikit-learn, pandas, and requests.
License in practice
BSD 3-Clause License (permissive). You may use, modify, and distribute the package freely in commercial and private projects provided you retain the copyright notice and disclaimer.
Quickstart
pip install openml
import openml
# Download a dataset
dataset = openml.datasets.get_dataset("credit-g")
X, y, categorical_indicator, attribute_names = dataset.get_data(target="class")
# Or retrieve a task
task = openml.tasks.get_task(31)
train_indices, test_indices = task.get_train_test_split_indices(fold=0)
Requires Python 3.8 or later. Network access to openml.org is needed to download datasets and tasks.
Verify before relying
- Whether the package handles authentication or API keys for private datasets or uploads.
- Performance characteristics when working with very large datasets or many concurrent requests.
- Offline mode or caching strategy for repeated access to the same datasets.
Package facts
| License | BSD 3-Clause License Copyright (c) 2014-2019, Matthias Feurer, Jan van Rijn, Andreas Müller, Joaquin Vanschoren and others. All rights reserved. Redistribution and use in source and binary forms,… (full text in the JSON record) (permissive) |
| Python support | supports the current Python release (>=3.8) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 12 — liac-arff, xmltodict, requests, scikit-learn, python-dateutil, pandas, scipy, numpy, minio, pyarrow, tqdm, packaging |
| Maintenance | actively maintained — 566 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 97,049/month — #13,176 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: openml-0.15.1-py3-none-any.whl
Tags
More Software Development packages
Provides backported and experimental type hints…
permissive · top 100 on PyPI
numpyNumPy provides an N-dimensional array object…
permissive · top 100 on PyPI
fastapiFastAPI is a Python web framework for building…
permissive · top 100 on PyPI
annotated-docProvides a way to document function parameters,…
permissive · top 100 on PyPI
typerTyper builds command-line applications from…
permissive · top 1,000 on PyPI
distlibDistlib provides low-level packaging utilities…
permissive · top 1,000 on PyPI
azureml-coreProvides core APIs and utilities for managing…
unclear · top 5,000 on PyPI
azuremlConnects to Azure Machine Learning Studio…
permissive · top 15,000 on PyPI
ucimlrepoImports datasets from the UC Irvine Machine…
permissive · top 15,000 on PyPI
osfclientosfclient is a Python library and command-line…
permissive · top 15,000 on PyPI
datazetsDatazets provides a simple interface to…
permissive · top 15,000 on PyPI
clearmlClearML is an ML/DL development and production…
permissive · top 15,000 on PyPI
azureml-mlflowIntegrates MLflow experiment tracking and model…
permissive · top 5,000 on PyPI
ogbOGB provides standardized benchmark datasets,…
permissive · top 15,000 on PyPI
azureml-defaultsazureml-defaults is a metapackage that bundles…
unclear · top 15,000 on PyPI
clip-benchmarkEvaluates CLIP-like vision-language models on…
permissive · top 15,000 on PyPI