Skip to main content

Python connector for Cocos Capital's Rest APIs.

Project description

Welcome to pyCocos' Documentation

Overview

pyCocos is a Python library that enables interaction with Cocos Capital REST APIs. It is designed to save developers hours of research and coding required to connect to Cocos Capital REST APIs.

Disclaimer

pyCocos is not owned by Cocos Capital, and the authors are not responsible for the use of this library.

Installation

To install pyCocos, you can use the following command:

pip install pycocos

API Credentials

To use this library, you need to have the correct authentication credentials.

Dependencies

The library has the following dependency:

requests>=2.31.0
simplejson>=3.19.1
pyotp>=2.9.0

Features

This section describes the functionality and components of the library.

Available Methods

Initialization

Before using the library, you need to initialize it with a valid email and password. The library includes the working webpage api_key token, but if that token is updated, you can find it using the browser dev-tools and pass it on initialization with the api_key parameter.

2nd Factor Authentication

On 4/13/2024 Cocos Capital implemented a 2nd factor authentication for all users. Different users may have SMS, Mail or TOTP app authentication. The library implements pyotp library for automatic code generation. To use that feature, topt secret key must be passed as parameters topt_secret_key parameter on initialization. If parameter is not passed, library will request code interactively. If you have TOTP app activated, you can get your secret key using this method. Pyotp implementation was kindly developed by @El_Raulo on Telegram.

REST

The library provides functions to make requests to the REST API and retrieve the corresponding responses.

Functions
  • logout: Performs a logout.
  • my_data: Retrieves customer information.
  • my_bank_accounts: Retrieves the bank accounts available for withdrawal.
  • my_portfolio: Retrieves the available portfolio.
  • funds_available: Retrieves the available funds for each settlement date.
  • stocks_available: Retrieves the amount of stock available for each settlement date.
  • account_activity: Retrieves the account activity for a given period.
  • portfolio_performance: Retrieves the portfolio performance for a given timeframe.
  • submit_new_bank_account: Sends a new bank account.
  • withdraw_funds: Sends a withdrawal order.
  • submit_buy_order: Sends a buy order.
  • submit_sell_order: Sends a sell order.
  • place_repo_order: Sends a repo (caucion) order.
  • cancel_order: Sends a cancel order request, if possible.
  • order_status: Retrieves the status of one or all orders.
  • get_daily_history: Retrieves the closing price history for a given instrument and period.
  • get_instrument_snapshot: Retrieves the market price information for a given instrument.
  • get_instrument_list_snapshot: Retrieves the market price information for predefined instrument types.
  • search_ticker: Queries the API to search for a particular instrument based on the name.
  • market_status: Retrieves the status of the market session.
  • instruments_rules: Retrieves the price rules for every type of instrument.
  • get_dolar_mep_info: Retrieves the Cocos Capital "closed" Dolar MEP quote.
  • get_cocos_university_articles: Retrieves the University articles from the Cocos Capital app's homepage.

All functions return a dictionary representing the JSON response.

Websocket

Cocos Capital uses SocketIO for real-time quote updates. These methods are not available in the library at the moment.

Enumerations

The library also provides enumerations to help developers avoid errors and improve readability.

  • Currencies: Identifies the available currencies in the app.
  • OrderTypes: Identifies the available order types.
  • OrderSides: Identifies the order sides.
  • Segments: Identifies the different market segments.
  • InstrumentTypes: Identifies the instrument types.
  • InstrumentSubTypes: Identifies the instrument subtypes.
  • Settlements: Identifies the different settlement dates.
  • PerformanceTimeframes: Identifies the different timeframes available in the performance report.

Usage

Once the library has been installed, you can import and initialize it. The initialization sets the email, password, and reCAPTCHA token. It then attempts to authenticate with the provided credentials. If the authentication fails, an ApiException is thrown.

from pycocos import Cocos

app = Cocos(email="sample@email.com", password="S4mp13.p4ssW0rd", api_key="OPTIONAL", topt_secret_key="OPTIONAL")

api_key and topt_secret_key are optional parameters, default values are None.

REST

# Get the available portfolio with the current market valuation
app.my_portfolio()

# Get the available funds
app.funds_available()

# Send a withdrawal order of 1000 pesos
app.withdraw_funds(currency=app.currencies.PESOS, 
                   amount="1000", 
                   cbu_cvu="0123456789012345678912")

# Get the long ticker for AL30 with T+2 settlement
long_ticker = app.long_ticker(ticker="AL30", 
                              settlement=app.settlements.T2, 
                              currency=app.currencies.PESOS)

# Send a buy order for 200 AL30 bonds with T+2 settlement at $9000. By default, all orders are *LIMIT* orders.
order = app.submit_buy_order(long_ticker=long_ticker, 
                             quantity="200", 
                             price="9000")

# Cancel an order by order_id
app.cancel_order(order_number=order['Orden'])

# Get the quoteboard for "Acciones panel Lideres", T+2 settlement, traded in Pesos
app.instrument_list_snapshot(instrument_type=app.instrument_types.ACCIONES, 
                             instrument_subtype=app.instrument_subtypes.LIDERES, 
                             settlement=app.settlements.T2, 
                             currency=app.currencies.PESOS, 
                             segment=app.segments.DEFAULT)

For more information you can check this article.

Official API Documentation

There is no official API documentation for this library. The library was created by webscraping the app.

Acknowledgements

This library was created with the support of the Scrappers Argentinos and Inversiones y Algoritmos Telegram Groups. Updated version that includes OTP validation is based on the development and testing of @El_Raulo, @mjcolom and @sebivaq. Special thanks to them.

Project details


Download files

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

Source Distribution

pycocos-0.2.5.tar.gz (18.9 kB view details)

Uploaded Source

Built Distribution

pyCocos-0.2.5-py3-none-any.whl (20.7 kB view details)

Uploaded Python 3

File details

Details for the file pycocos-0.2.5.tar.gz.

File metadata

  • Download URL: pycocos-0.2.5.tar.gz
  • Upload date:
  • Size: 18.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.0.0 CPython/3.12.3

File hashes

Hashes for pycocos-0.2.5.tar.gz
Algorithm Hash digest
SHA256 2b88798f35cc6eea7be0c7ff349515cc8e4b3f92fd288f9447fee735fcfaf7de
MD5 7e12ab275f691dd15ed3975219e5614d
BLAKE2b-256 81788c8a9e427b9fd50d34132b33c08bd75b9e890d02970ab757f80014e8155c

See more details on using hashes here.

File details

Details for the file pyCocos-0.2.5-py3-none-any.whl.

File metadata

  • Download URL: pyCocos-0.2.5-py3-none-any.whl
  • Upload date:
  • Size: 20.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.0.0 CPython/3.12.3

File hashes

Hashes for pyCocos-0.2.5-py3-none-any.whl
Algorithm Hash digest
SHA256 5e6d233033c5f3b07cacdf4c676454cda204d79ba0fabe2b937639ebe3ec9d06
MD5 39de6cb527afff9f643fff90aa61e705
BLAKE2b-256 c26a707edb7cc545a6aef6b5798e6205da73834afdda3526cd785613e0f3e902

See more details on using hashes here.

Supported by

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