Skip to content

grahamtt/prosper-bot

Repository files navigation

prosper-bot

Bot to automatically invest in prosper.com

GitHub Workflow Status (with event) PyPI - Version PyPI - Python Version PyPI - License Code Climate coverage Code Climate maintainability OpenSSF Best Practices GitHub commit activity (branch) GitHub issues

Installation

Use pipx to install in a self-contained virtual environment.

pipx install prosper-bot

Setup

Follow the setup instructions for Prosper API

Running

Dry run

prosper-bot --dry-run

For realsies

prosper-bot

Options

Prosper bot exposes all the config options from prosper-api, plus the options in the bot and cli sections below.

["prosper-api.credentials.client-id"]
type = "str"
optional = false
constraint = "^[a-f0-9]{32}$"
description = "The client-id from Prosper."

["prosper-api.credentials.client-secret"]
type = "str"
optional = true
constraint = "^[a-f0-9]{32}$"
description = "The client-secret from Prosper; can be stored and accessed securely using the keyring library."

["prosper-api.credentials.username"]
type = "str"
optional = false
description = "Your Prosper username"

["prosper-api.credentials.password"]
type = "str"
optional = true
description = "Your Prosper password; can be stored and accessed securely using the keyring library."

["prosper-api.auth.token-cache"]
type = "str"
optional = false
default = "/Users/graham/Library/Caches/prosper-api/token-cache"
description = "The filesystem location where the auth token will be cached."

["prosper-bot.cli.verbose"]
type = "bool"
optional = false
description = "Prints additional debug messages."

["prosper-bot.cli.dry-run"]
type = "bool"
optional = false
description = "Run the loop but don't actually place any orders."

All configs can be provided as command-line options as well:

usage: prosper-bot [-h] [-c CLIENT-ID] [--client-secret CLIENT-SECRET] [-u USERNAME]
                   [-p PASSWORD] [-t TOKEN-CACHE] [-m MIN-BID]
                   [-s {AGGRESSIVE,CONSERVATIVE,OVERALL_HIGHEST_RATE}]
                   [--target-loan-count TARGET-LOAN-COUNT] [--search-for-almost-funded] [-v]
                   [-d]

All optional program arguments can be provided via configuration file at the following
locations: '/Users/graham/Library/Application Support/prosper-
bot/config.{json|yml|yaml|toml}','/Users/graham/Programming/prosper-bot/prosper-
bot.{json|yml|yaml|toml}',/Users/graham/Programming/prosper-bot/.pyproject.toml.

options:
  -h, --help            show this help message and exit

prosper-api.credentials:
  -c CLIENT-ID, --client-id CLIENT-ID
                        The client-id from Prosper; Type: str matching /^[a-f0-9]{32}$/
  --client-secret CLIENT-SECRET
                        The client-secret from Prosper; can be stored and accessed securely
                        using the keyring library; Type: str matching /^[a-f0-9]{32}$/
  -u USERNAME, --username USERNAME
                        Your Prosper username; Type: str
  -p PASSWORD, --password PASSWORD
                        Your Prosper password; can be stored and accessed securely using the
                        keyring library; Type: str

prosper-api.auth:
  -t TOKEN-CACHE, --token-cache TOKEN-CACHE
                        The filesystem location where the auth token will be cached; Type:
                        str; Default: /Users/graham/Library/Caches/prosper-api/token-cache

prosper-bot.bot:
  -m MIN-BID, --min-bid MIN-BID
                        Minimum amount of a loan to purchase; Type: Decimal; Default: 25.00
  -s {AGGRESSIVE,CONSERVATIVE,OVERALL_HIGHEST_RATE}, --strategy {AGGRESSIVE,CONSERVATIVE,OVERALL_HIGHEST_RATE}
                        Strategy for balancing your portfolio; Type: str; Default:
                        AGGRESSIVE
  --target-loan-count TARGET-LOAN-COUNT
                        Calculate min bid based on (total account value / target loan
                        count). Overrides min-bid if present; Type: int
  --search-for-almost-funded
                        Search for listings with remaining funding <= cash, which allows
                        bidding when cash is less than $25; Type: bool

prosper-bot.cli:
  -v, --verbose         Prints additional debug messages; Type: bool
  -d, --dry-run         Run the loop but don't actually place any orders; Type: bool

Feedback

This project uses GitHub issues for feature requests and bug reports.

Contributing

This project uses Poetry to manage dependencies and building. Follow the instructions to install it. Then use poetry install --all-extras to install the project dependencies. Then run poetry run autohooks activate to set up the pre-commit hooks. Please ensure the hooks pass before submitting a pull request.

About

Python trading bot for Prosper.com

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages