Skip to main content

Automatically download and upload data for the Numerai machine learning competition

Project description

Build Status codecov PyPI Docs Requirements Status

Numerai Python API

Automatically download and upload data for the Numerai machine learning competition.

This library is a Python client to the Numerai API. The interface is programmed in Python and allows downloading the training data, uploading predictions, and accessing user, submission and competitions information.

If you encounter a problem or have suggestions, feel free to open an issue.

Installation

pip install --upgrade numerapi

Usage

Numerapi can be used as a regular, importable Python module or from the command line.

Some actions (like uploading predictions or staking) require a token to verify that it is really you interacting with Numerai's API. These tokens consists of a public_id and secret_key. Both can be obtained by login in to Numer.ai and going to Account -> Custom API Keys. Tokens can be passed to the Python module as parameters or you can be set via environment variables (NUMERAI_PUBLIC_ID and NUMERAI_SECRET_KEY).

Python module

Usage example:

import numerapi
# some API calls do not require logging in
napi = numerapi.NumerAPI(verbosity="info")
# download current dataset
napi.download_current_dataset(unzip=True)
# get competitions
all_competitions = napi.get_competitions()
# get current leaderboard
leaderboard = napi.get_leaderboard()
# check if a new round has started
if napi.check_new_round():
    print("new round has started within the last 24hours!")
else:
    print("no new round within the last 24 hours")

# provide api tokens
example_public_id = "somepublicid"
example_secret_key = "somesecretkey"
napi = NumerAPI(example_public_id, example_secret_key)

# upload predictions
submission_id = napi.upload_predictions("preds.csv", tournament=1)
# check submission status
napi.submission_status()
# increase your stake by 1.2 NMR
napi.stake_increase(1.2)

# convert results to a pandas dataframe
import pandas as pd
df = pd.io.json.json_normalize(napi.daily_user_performances("uuazed"), sep="-")

Command line interface

To get started with the cli interface, let's take a look at the help page:

$ numerapi --help
Usage: numerapi [OPTIONS] COMMAND [ARGS]...

  Wrapper around the Numerai API

Options:
  --help  Show this message and exit.

Commands:
  check-new-round                 Check if a new round has started within...
  competitions                    Retrieves information about all...
  current-round                   Get number of the current active round.
  daily-submissions-performances  Fetch daily performance of a user's...
  daily-user-performances         Fetch daily performance of a user.
  dataset-url                     Fetch url of the current dataset.
  download-dataset                Download dataset for the current active...
  leaderboard                     Get the leaderboard.
  payments                        List all your payments
  profile                         Fetch the public profile of a user.
  rankings                        Get the overall rankings.
  stake-decrease                  Decrease your stake by `value` NMR.
  stake-drain                     Completely remove your stake.
  stake-get                       Get stake value of a user.
  stake-increase                  Increase your stake by `value` NMR.
  stakes                          List all your stakes.
  staking-leaderboard             Retrieves the staking competition...
  submission-filenames            Get filenames of your submissions
  submission-ids                  Get dict with username->submission_id...
  submission-status               checks the submission status
  submit                          Upload predictions from file.
  tournament-name2number          Translate tournament name to tournament...
  tournament-number2name          Translate tournament number to tournament...
  tournaments                     Get all tournaments.
  transactions                    List all your deposits and withdrawals.
  user                            Get all information about you!
  user-activities                 Get user activities (works for all users!)
  v1-leaderboard                  Retrieves the leaderboard for the given...
  version                         Installed numerapi version.

Each command has it's own help page, for example:

$ numerapi submit --help
Usage: numerapi submit [OPTIONS] PATH

  Upload predictions from file.

Options:
  --tournament INTEGER  The ID of the tournament, defaults to 1
  --help                Show this message and exit.

API Reference

Checkout the detailed API docs to learn about all available methods, parameters and returned values.

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

numerapi-2.1.4.tar.gz (28.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

numerapi-2.1.4-py3-none-any.whl (18.6 kB view details)

Uploaded Python 3

File details

Details for the file numerapi-2.1.4.tar.gz.

File metadata

  • Download URL: numerapi-2.1.4.tar.gz
  • Upload date:
  • Size: 28.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.6.0 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.7.6

File hashes

Hashes for numerapi-2.1.4.tar.gz
Algorithm Hash digest
SHA256 9da73ae37d96f798fd6b263f15a506855ae902eda691885b20a7f3754520db8c
MD5 c2f5986c9bf22d8be4b7090016f53714
BLAKE2b-256 01a8444b14520da239d1961326bd3a6c57839e864cbfdc8a96c8a83f7e8aefb5

See more details on using hashes here.

File details

Details for the file numerapi-2.1.4-py3-none-any.whl.

File metadata

  • Download URL: numerapi-2.1.4-py3-none-any.whl
  • Upload date:
  • Size: 18.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.6.0 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.7.6

File hashes

Hashes for numerapi-2.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 3a7684c1a01f2dcc1f429e42291b8712cf7286c23f94acb7243917684ccf6d86
MD5 7951c2e461a6cb2f37ad107c5c0cdba5
BLAKE2b-256 f328f8fde95da1e92459d96fbf7ba3aba033f22b00dd00624538ea2ec72e1731

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page