Research
Security News
Quasar RAT Disguised as an npm Package for Detecting Vulnerabilities in Ethereum Smart Contracts
Socket researchers uncover a malicious npm package posing as a tool for detecting vulnerabilities in Etherium smart contracts.
::
pip install pylendingclub
A Python based wrapper for Lending Club's API that enables easier programmatic use of the API. Also extends the functionality of the API through a higher-level wrapper for ease of use, and an AutoInvestor. More features to come.
See the API documentation here: https://www.lendingclub.com/developers/api-overview.
To get started, download the package with pip:
::
pip install pylendingclub
Once the package is installed, you will need a Session object. You can create one directly, by passing your api-key_ and investor-id_.
.. _api-key: https://www.lendingclub.com/account/profile.action
.. _investor-id: https://www.lendingclub.com/account/summary.action
::
from pylendingclub.session import LendingClubSession
session = LendingClubSession(api_key, investor_id)
Alternatively, you can create environment variables for both of these values. Make sure they are created as 'LC_API_KEY' and 'LC_INVESTOR_ID'.
With environment variables set, you can create a Session
with them like so:
::
from pylendingclub import Session
session = LendingClubSession.from_environment_variables()
Calls to the API through the Session
will return a Response_ object. You can then work with this response as needed. If you just want the JSON data from the response, use the following syntax:
.. _Response : http://docs.python-requests.org/en/master/api/#requests.Response
::
response = session.resource.property
json_data = response.json()
or
::
response = session.resource.method()
json_data = response.json()
You can also chain the .json()
call directly onto the property, or method, but this won't allow you to handle an error with the response without making a separate call to get the original response. Especially when working with the POST
methods, it is recommended to store the response separate from the JSON, but it is not required.
There are two primary resources available within the API. These are the Account
and Loan
resources. You can access them within the Session
like so:
::
account = session.account
loan = session.loan
These two resources expose the sub-resources/services within the API. More on this below.
Remember, all of these services will return a Response
.
API Documentation: https://www.lendingclub.com/developers/summary
Method Type: GET
Syntax: ::
account_summary = session.account.summary
API Documentation: https://www.lendingclub.com/developers/available-cash
Method Type: GET
Syntax: ::
available_cash = session.account.available_cash
API Documentation: https://www.lendingclub.com/developers/notes-owned
Method Type: GET
Syntax: ::
notes = session.account.notes
API Documentation: https://www.lendingclub.com/developers/detailed-notes-owned
Method Type: GET
Syntax: ::
detailed_notes = session.account.detailed_notes
API Documentation: https://www.lendingclub.com/developers/portfolios-owned
Method Type: GET
Syntax: ::
portfolios_owned = session.account.portfolios_owned
API Documentation: https://www.lendingclub.com/developers/filters
Method Type: GET
Syntax: ::
filters = session.account.filters
API Documentation: https://www.lendingclub.com/developers/create-portfolio
Method Type: POST
Syntax: ::
create_portfolio = session.account.create_portfolio(portfolio_name, [portfolio_description])
API Documentation: https://www.lendingclub.com/developers/submit-order
Note:
The orders must be a list of dicts in the format: ::
[
{
'loanId' : loan_id,
'requestedAmount' : amount,
'portfolioId' : portfolio_id
}
]
Where loanId
and requestedAmount
are required, and requestedAmount
must be a denomination of 25.
For example:
::
[
{
'loanId' : 1234,
'requestedAmount' : 25,
},
{
'loanId' : 1345,
'requestedAmount' : 50,
'portfolioId' : 12345
}
]
Method Type: POST
Syntax: ::
submit_orders = session.account.submit_orders(orders)
API Documentation: https://www.lendingclub.com/developers/submit-order
Method Type: POST
Note: The requested_amount
must be a denomination of $25.00. For example, 25, 100, and 2000 are all accepted values but 26, 115, and 2010 are not.
Syntax: ::
submit_order = session.account.submit_order(loan_id, requested_amount, [portfolio_id])
API Documentation: https://www.lendingclub.com/developers/pending-transfers
Method Type: GET
Syntax: ::
pending_transfers = session.account.funds.pending
API Documentation: https://www.lendingclub.com/developers/add-funds
Method Type: POST
Notes:
The transfer_frequency
argument must be one of [LOAD_NOW, LOAD_ONCE, LOAD_WEEKLY, LOAD_BIWEEKLY, LOAD_ON_DAY_1_AND_16, LOAD_MONTHLY]
The 'start_date' argument is required for recurring transfers, and for LOAD_ONCE
.
Syntax: ::
add_funds = session.account.funds.add(amount, transfer_frequency, [start_date], [end_date])
API Documentation: https://www.lendingclub.com/developers/add-funds
Method Type: POST
Syntax: ::
withdraw_funds = session.account.funds.withdraw(amount)
API Documentation: https://www.lendingclub.com/developers/cancel-transfers
Method Type: POST
Syntax: ::
cancel_transfer = session.account.funds.cancel(transfer_id)
API Documentation: https://www.lendingclub.com/developers/listed-loans
Method Type: GET
Notes:
The show_all
argument will determine whether all loans are shown, or only the loans from the most recent listing period are shown.
The filter_id
argument, if provided, will only show loans matching the filter.
Syntax: ::
listed_loans = session.loan.listed_loans([filter_id], [show_all]=True)
FAQs
A python package for automating the LendingClub API.
We found that pylendingclub demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
Socket researchers uncover a malicious npm package posing as a tool for detecting vulnerabilities in Etherium smart contracts.
Security News
Research
A supply chain attack on Rspack's npm packages injected cryptomining malware, potentially impacting thousands of developers.
Research
Security News
Socket researchers discovered a malware campaign on npm delivering the Skuld infostealer via typosquatted packages, exposing sensitive data.