Guía rápida (Quickstart)
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
- Ve a app.cotizave.com
- Haz clic en “Crear cuenta gratis”
- Ingresa tu email y una contraseña
- Confirma tu email (te llega un enlace al instante)
- Una vez dentro del dashboard, ve a la sección API Keys
- Copia la key que se generó automáticamente para tu Cuenta
Tu primera API Key se ve así:
nd-tu-api-key-aquiGuá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.
Con curl
curl https://api.cotizave.com/v1/fx/rates \
-H "X-API-Key: nd-tu-api-key-aqui" \
-H "Accept: application/json"Con JavaScript (fetch)
const response = await fetch('https://api.cotizave.com/v1/fx/rates', {
headers: {
'X-API-Key': 'nd-tu-api-key-aqui',
'Accept': 'application/json'
}
})
const data = await response.json()
console.log(data)Con Python (requests)
import requests
response = requests.get(
'https://api.cotizave.com/v1/fx/rates',
headers={
'X-API-Key': 'nd-tu-api-key-aqui',
'Accept': 'application/json'
}
)
data = response.json()
print(data)Con Go
package main
import (
"encoding/json"
"fmt"
"net/http"
)
func main() {
req, _ := http.NewRequest("GET", "https://api.cotizave.com/v1/fx/rates", nil)
req.Header.Set("X-API-Key", "nd-tu-api-key-aqui")
req.Header.Set("Accept", "application/json")
resp, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
var data map[string]interface{}
json.NewDecoder(resp.Body).Decode(&data)
fmt.Println(data)
}Con PHP
$ch = curl_init('https://api.cotizave.com/v1/fx/rates');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'X-API-Key: nd-tu-api-key-aqui',
'Accept: application/json'
]);
$response = curl_exec($ch);
$data = json_decode($response, true);
print_r($data);Paso 3: La respuesta
La respuesta es un JSON con esta estructura:
{
"country": "VE",
"currency": "VES",
"base": "USD",
"rates": [
{
"market": "reference",
"type": "reference",
"mid": 475.0083,
"updated_at": "2026-04-08T14:00:00Z"
},
{
"market": "parallel",
"type": "parallel",
"ask": 640.12,
"bid": 637.63,
"mid": 638.87,
"updated_at": "2026-04-08T17:25:00Z"
},
{
"market": "binance",
"type": "p2p",
"ask": 639.24,
"bid": 636.50,
"mid": 637.87,
"updated_at": "2026-04-08T17:29:00Z"
},
{
"market": "bybit",
"type": "p2p",
"ask": 639.88,
"bid": 637.12,
"mid": 638.50,
"updated_at": "2026-04-08T17:29:00Z"
}
],
"fetched_at": "2026-04-08T17:29:15Z"
}Qué significa cada campo
country: siempre"VE"(Venezuela)currency: siempre"VES"(bolívar soberano)base: moneda base de las tasas, típicamente"USD"rates: array con todas las cotizaciones disponiblesmarket: identificador del mercado (ej:reference,parallel,binance,bybit, etc.)type: tipo de tasa (reference,parallel,p2p)ask: precio de venta (VES por 1 USD). Puede no estar presente en tasasreference.bid: precio de compra (VES por 1 USD). Puede no estar presente en tasasreference.mid: precio promedio. Siempre está presente. Es el valor más comúnmente usado.updated_at: timestamp de cuándo se actualizó esta cotización específica
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.
async function mostrarTasas() {
const response = await fetch('https://api.cotizave.com/v1/fx/rates', {
headers: { 'X-API-Key': 'nd-tu-api-key-aqui' }
})
const data = await response.json()
const bcv = data.rates.find(r => r.market === 'reference')
const paralela = data.rates.find(r => r.market === 'parallel')
document.getElementById('bcv').textContent = `Bs. ${bcv.mid.toFixed(2)}`
document.getElementById('paralela').textContent = `Bs. ${paralela.mid.toFixed(2)}`
}
// Actualizar cada 30 segundos
mostrarTasas()
setInterval(mostrarTasas, 30000)Próximos pasos
Ahora que hiciste tu primer request, explora:
- Autenticación: detalles sobre API Keys, rotación, seguridad
- Todos los endpoints: referencia completa de cada endpoint disponible
- Rate limits: cuántos requests puedes hacer por Plan
- Manejo de errores: códigos de error y cómo responder a ellos
- Guías prácticas: ejemplos completos para casos de uso comunes
Tips para el desarrollo
Maneja errores con grace
Las fuentes de datos upstream pueden fallar temporalmente. Tu integración debe:
- Implementar retry con backoff exponencial (1s, 2s, 4s, 8s...)
- Tener un fallback a datos anteriores (ej: mostrar el último valor conocido con un aviso “datos de hace X minutos”)
- Loguear errores para que puedas investigar después
- Mostrar mensajes claros al usuario final si es imposible obtener datos
¿Problemas?
Si algo no funciona:
- Revisa que tu API Key esté bien copiada (empieza con
nd-) - Verifica que el header
X-API-Keycontenga tu API key completa - Consulta errores comunes
- Revisa el status del servicio
- Escríbenos a hello@cotizave.com