← Volver a docs
⚡ Empezar / Quickstart

Guía rápida

Pon a funcionar Cotizave en tu proyecto en menos de 5 minutos. Esta guía asume que sabes hacer un request HTTP desde tu lenguaje favorito.


Paso 1 · Regístrate y obtén tu API Key

  1. Ve a app.cotizave.com
  2. Haz clic en "Crear cuenta gratis"
  3. Ingresa tu email y una contraseña
  4. Confirma tu email (te llega un enlace al instante)
  5. Una vez dentro del dashboard, ve a la sección API Keys
  6. Copia la key que se generó automáticamente para tu cuenta

Tu primera API Key se ve así:

api-key
ctz_live_aB3cD8fG2hJ5kL9mN1pQ4rS7tU0vWxYzA6bC3d
!

Guárdala en un lugar seguro. No la pegues en código público, no la subas a GitHub, no la compartas.

Tip: en el dashboard puedes crear múltiples API Keys para distintos entornos (ej: production, staging, local). Cada una tiene su propio nombre y puedes rotarlas individualmente.

Paso 2 · Tu primer request

Vamos a hacer una llamada al endpoint principal: GET /v1/fx/rates. Este endpoint devuelve todas las tasas disponibles.

curl https://api.cotizave.com/v1/fx/rates \
  -H "X-API-Key: ctz_live_aB3cD8fG2hJ5kL9mN1pQ4rS7tU0vWxYzA6bC3d" \
  -H "Accept: application/json"
const response = await fetch('https://api.cotizave.com/v1/fx/rates', {
  headers: {
    'X-API-Key': 'ctz_live_aB3cD8fG2hJ5kL9mN1pQ4rS7tU0vWxYzA6bC3d',
    'Accept': 'application/json'
  }
})
const data = await response.json()
console.log(data)
import requests

response = requests.get(
    'https://api.cotizave.com/v1/fx/rates',
    headers={'X-API-Key': 'ctz_live_aB3cD8fG2hJ5kL9mN1pQ4rS7tU0vWxYzA6bC3d'}
)
data = response.json()
print(data)
req, _ := http.NewRequest("GET", "https://api.cotizave.com/v1/fx/rates", nil)
req.Header.Set("X-API-Key", "ctz_live_aB3cD8fG2hJ5kL9mN1pQ4rS7tU0vWxYzA6bC3d")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
$ch = curl_init('https://api.cotizave.com/v1/fx/rates');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['X-API-Key: ctz_live_aB3cD8fG2hJ5kL9mN1pQ4rS7tU0vWxYzA6bC3d']);
$data = json_decode(curl_exec($ch), true);
print_r($data);

Paso 3 · La respuesta

La respuesta es un JSON con esta estructura:

200 OK · application/json
{
  "country": "VE",
  "currency": "VES",
  "base": "USD",
  "rates": [
    {"market": "reference", "mid": 475.0083, "updated_at": "2026-04-08T14:00:00Z"},
    {"market": "parallel", "ask": 640.12, "bid": 637.63, "mid": 638.87},
    {"market": "binance", "ask": 639.24, "bid": 636.50, "mid": 637.87}
  ],
  "fetched_at": "2026-04-08T17:29:15Z"
}

Qué significa cada campo

  • market: identificador del mercado (reference, parallel, binance, bybit, etc.)
  • type: tipo de tasa (reference, parallel, p2p)
  • ask / bid: precio de venta / compra. Pueden no estar en tasas reference.
  • mid: precio promedio. Siempre está presente.
  • updated_at: timestamp de cuándo se actualizó esta cotización
  • fetched_at: timestamp de cuándo Cotizave ensambló esta respuesta

Paso 4 · Usa los datos en tu app

Un ejemplo simple: mostrar la tasa BCV y paralela en un sitio.

example.js
async function mostrarTasas() {
  const res = await fetch('https://api.cotizave.com/v1/fx/rates',
    { headers: { 'X-API-Key': 'ctz_live_aB3cD8fG2hJ5kL9mN1pQ4rS7tU0vWxYzA6bC3d' } })
  const { rates } = await res.json()
  const bcv = rates.find(r => r.market === 'reference')
  const paralela = rates.find(r => r.market === 'parallel')
  document.getElementById('bcv').textContent = `Bs. ${bcv.mid.toFixed(2)}`
  document.getElementById('paralela').textContent = `Bs. ${paralela.mid.toFixed(2)}`
}
mostrarTasas()
setInterval(mostrarTasas, 30000)

Próximos pasos

Tips para el desarrollo

Maneja errores con gracia

  • Implementa retry con backoff exponencial (1s, 2s, 4s, 8s…)
  • Tener un fallback a datos anteriores con aviso de timestamp al usuario
  • Loguear errores para investigar después
  • Mostrar mensajes claros al usuario final si es imposible obtener datos

¿Problemas?