Tutoriales/Primera cotización
3 minutos
Principiante

Tu primera cotización

Autenticación + consulta de precio de GGAL. Código listo para copiar y ejecutar.

Antes de empezar

  • Cuenta comitente activa en IOL (creá tu cuenta gratis)
  • Tu usuario y contraseña (los mismos de la app/web de IOL)
  • Python 3.8+ / Node.js 18+ / cURL instalado
1

Obtener el token de acceso

Primero necesitás autenticarte para obtener un access_token. Este token lo usarás en todas las requests siguientes.

auth.py
Autenticación
import requests

API_URL = "https://api.iolinversiones.com"

# Autenticación
response = requests.post(f"{API_URL}/auth/token", json={
    "grant_type": "password",
    "username": "TU_USUARIO",  # 👈 Mismo de la app IOL
    "password": "TU_PASSWORD"
})

data = response.json()
token = data["data"]["access_token"]
print(f"Token obtenido: {token[:20]}...")

Respuesta exitosa

Vas a recibir un JSON con access_token y refresh_token. El token dura varias horas.

2

Consultar cotización de GGAL

Con el token, ya podés consultar cualquier activo. Probemos con GGAL (Grupo Galicia):

quote.py
Consultar cotización
import requests

API_URL = "https://api.iolinversiones.com"
TOKEN = "tu_access_token"

headers = {"Authorization": f"Bearer {TOKEN}"}

# Consultar cotización de GGAL
response = requests.get(
    f"{API_URL}/broker/market-data/GGAL/quote",
    params={"market": "BCBA", "term": "T0"},
    headers=headers
)

data = response.json()["data"]
print(f"GGAL: ${data['last_price']} ({data['change_percent']:+.2f}%)")

Output esperado:

GGAL: $1250.50 (+2.35%)
3

Código completo

Acá tenés todo junto, listo para copiar y ejecutar:

quickstart.py
quickstart.py / quickstart.js
import requests

API_URL = "https://api.iolinversiones.com"

# 1. Autenticación
print("🔐 Autenticando...")
auth = requests.post(f"{API_URL}/auth/token", json={
    "grant_type": "password",
    "username": "TU_USUARIO",
    "password": "TU_PASSWORD"
})
token = auth.json()["data"]["access_token"]
print("✅ Autenticado!")

# 2. Headers para requests autenticadas
headers = {"Authorization": f"Bearer {token}"}

# 3. Consultar cotización de GGAL
print("\n📈 Consultando GGAL...")
quote = requests.get(
    f"{API_URL}/broker/market-data/GGAL/quote",
    params={"market": "BCBA", "term": "T0"},
    headers=headers
)

data = quote.json()["data"]
print(f"   Precio: ${data['last_price']}")
print(f"   Cambio: {data['change_percent']:+.2f}%")
print(f"   Volumen: {data['volume']:,} acciones")

# 4. Bonus: Consultar YPF también
print("\n📈 Consultando YPF...")
ypf = requests.get(
    f"{API_URL}/broker/market-data/YPF/quote",
    params={"market": "BCBA", "term": "T0"},
    headers=headers
)

data = ypf.json()["data"]
print(f"   Precio: ${data['last_price']}")
print(f"   Cambio: {data['change_percent']:+.2f}%")

print("\n🎉 ¡Listo! Ya estás conectado a la API de IOL.")

Solución de problemas

Error 401: Authentication Error

Usuario o contraseña incorrectos. Verificá que estés usando las mismas credenciales de la app de IOL.

Error 404: Not Found

El símbolo no existe o el formato es incorrecto. Usá el formato SYMBOL|MARKET|TERM (ej: GGAL|BCBA|T0).

Próximos pasos