Este repositorio tiene como objetivo dar una base para utilizar la API v2 de IOL.
Para uso local, es conveniente instalar python-dotenv
pip install python-dotenv
Crear entorno
python -m venv IOLApi-Client-venv
Activar entorno (En windows)
IOLApi-Client-venv\Scripts\activate.bat
Instalar dependencias
pip install -r requirements.txt
from IOLApi import IOLApi
import asyncio
async def main():
iol = IOLApi()
await iol.login_async(
username='', # Correo electronico
password=''
)
estado_cuenta = await iol.get_estadocuenta_async()
cuenta_arg = [cuenta for cuenta in estado_cuenta.cuentas if cuenta.moneda == 'peso_Argentino'][0]
print(cuenta_arg.saldo)
if __name__ == '__main__':
asyncio.run(main=main())
from IOLApi import IOLApi
import asyncio
async def main():
iol = IOLApi()
await iol.login_async(
username='', # Correo electronico
password=''
)
portafolio = await iol.get_portafolio_by_pais_async(pais='argentina')
syp500 = [activo for activo in portafolio.activos if activo.titulo.simbolo == 'SPY'][0]
print(syp500.cantidad)
if __name__ == '__main__':
asyncio.run(main=main())
La respuesta de cada método utiliza el decorador "dataclass", por lo que, para pasarlo a json hay que hacer
from IOLApi import IOLApi
import asyncio, json
from dataclasses import asdict # <-- Para pasarlo a dict, y luego a json
async def main():
iol = IOLApi()
await iol.login_async(
username='', # Correo electronico
password=''
)
portafolio = await iol.get_portafolio_by_pais_async(pais='argentina')
print(json.dumps(asdict(portafolio)))
if __name__ == '__main__':
asyncio.run(main=main())