DEV Community

Cover image for Cómo consultar el dólar BCV con Python

Cómo consultar el dólar BCV con Python

Python es una de las opciones más sencillas para consumir una API REST y procesar una respuesta JSON.

En este tutorial aprenderemos a consultar la tasa del dólar BCV desde Python utilizando la API pública de datos de Crom Studio.

Endpoint de la tasa BCV

Utilizaremos:

https://datos.cromstudio.com.ve/tasa
Enter fullscreen mode Exit fullscreen mode

La API devuelve una respuesta JSON similar a:

{
  "fuente": "BCV_DB",
  "fecha_valor": "Lunes, 05 Octubre  2026",
  "tasas": {
    "USD": 871.3689,
    "EUR": 981.17880877
  },
  "actualizado_el": "2026-10-03T08:05:04.620451-04:00"
}
Enter fullscreen mode Exit fullscreen mode

Para obtener el dólar:

data["tasas"]["USD"]
Enter fullscreen mode Exit fullscreen mode

Instalar Requests

La forma habitual de realizar peticiones HTTP en Python es utilizar requests.

pip install requests
Enter fullscreen mode Exit fullscreen mode

Después podemos realizar la petición:

import requests

url = "https://datos.cromstudio.com.ve/tasa"

response = requests.get(url, timeout=10)

response.raise_for_status()

data = response.json()

print(data)
Enter fullscreen mode Exit fullscreen mode

Obtener solamente el dólar

No necesitamos imprimir toda la respuesta.

import requests

url = "https://datos.cromstudio.com.ve/tasa"

response = requests.get(url, timeout=10)
response.raise_for_status()

data = response.json()

usd = data["tasas"]["USD"]

print(f"Tasa BCV: {usd}")
Enter fullscreen mode Exit fullscreen mode

Obtener USD y EUR

La misma respuesta incluye el euro:

usd = data["tasas"]["USD"]
eur = data["tasas"]["EUR"]

print(f"USD: {usd}")
print(f"EUR: {eur}")
Enter fullscreen mode Exit fullscreen mode

Esto resulta útil si una aplicación necesita trabajar con más de una moneda.

Obtener la fecha del valor

También podemos recuperar los metadatos:

fecha = data["fecha_valor"]
actualizado = data["actualizado_el"]

print("Fecha:", fecha)
print("Actualizado:", actualizado)
Enter fullscreen mode Exit fullscreen mode

Una aplicación puede utilizar esta información para mostrar al usuario cuándo corresponde el valor consultado.

Crear una función

Para reutilizar el código:

import requests

def obtener_tasa_bcv():
    url = "https://datos.cromstudio.com.ve/tasa"

    response = requests.get(url, timeout=10)
    response.raise_for_status()

    data = response.json()

    return data["tasas"]["USD"]


tasa = obtener_tasa_bcv()

print(f"1 USD = {tasa} VES")
Enter fullscreen mode Exit fullscreen mode

Ahora cualquier parte de nuestro programa puede llamar:

obtener_tasa_bcv()
Enter fullscreen mode Exit fullscreen mode

Validar la respuesta

En una aplicación real no conviene asumir que todos los datos siempre existen.

Podemos hacer una validación básica:

def obtener_tasa_bcv():
    url = "https://datos.cromstudio.com.ve/tasa"

    response = requests.get(url, timeout=10)
    response.raise_for_status()

    data = response.json()

    if "tasas" not in data:
        raise ValueError("La respuesta no contiene tasas")

    if "USD" not in data["tasas"]:
        raise ValueError("La respuesta no contiene USD")

    tasa = data["tasas"]["USD"]

    if not isinstance(tasa, (int, float)) or tasa <= 0:
        raise ValueError("Tasa USD inválida")

    return tasa
Enter fullscreen mode Exit fullscreen mode

Usar la tasa para convertir dólares

Supongamos que tenemos un producto cuyo precio es:

precio_usd = 150
Enter fullscreen mode Exit fullscreen mode

Podemos convertirlo a bolívares:

tasa = obtener_tasa_bcv()

precio_ves = precio_usd * tasa

print(
    f"${precio_usd} = Bs. {precio_ves:.2f}"
)
Enter fullscreen mode Exit fullscreen mode

La operación utiliza la tasa obtenida en el momento de la consulta.

Manejar errores de conexión

Una API externa puede no estar disponible temporalmente.

Podemos manejar el error:

import requests

try:
    response = requests.get(
        "https://datos.cromstudio.com.ve/tasa",
        timeout=10
    )

    response.raise_for_status()

    data = response.json()

    print(data["tasas"]["USD"])

except requests.RequestException as error:
    print("Error de conexión:", error)

except (KeyError, TypeError, ValueError) as error:
    print("Respuesta inválida:", error)
Enter fullscreen mode Exit fullscreen mode

Usarlo desde un script automatizado

Python también permite automatizar esta consulta.

Por ejemplo, un programa podría:

Consultar API
     ↓
Obtener USD
     ↓
Validar dato
     ↓
Guardar en base de datos
     ↓
Actualizar aplicación
Enter fullscreen mode Exit fullscreen mode

Este patrón puede utilizarse en:

  • sistemas de facturación;
  • inventarios;
  • dashboards;
  • tiendas online;
  • reportes;
  • sistemas administrativos;
  • procesos de automatización.

Una API frente al scraping

Cuando un programa necesita un dato estructurado, consumir JSON suele ser más directo que analizar HTML.

Con la API:

GET /tasa
      ↓
JSON
      ↓
data["tasas"]["USD"]
Enter fullscreen mode Exit fullscreen mode

No necesitamos buscar una etiqueta HTML ni depender de selectores CSS.

Conclusión

Python puede consultar la tasa BCV utilizando unas pocas líneas de código:

import requests

response = requests.get(
    "https://datos.cromstudio.com.ve/tasa",
    timeout=10
)

data = response.json()

print(data["tasas"]["USD"])
Enter fullscreen mode Exit fullscreen mode

El endpoint puede utilizarse como fuente de datos para aplicaciones Python que necesiten incorporar la tasa del dólar BCV en sus propios procesos.

Para proyectos más importantes, es recomendable añadir validación, manejo de errores y almacenamiento de la última tasa válida.

Top comments (0)