El proceso principal para solicitar la API de Binance consiste en: completar la verificación de identidad KYC L2 → acceder a la página de gestión de API en el panel de control del sitio oficial de Binance → crear las claves → configurar la lista blanca de IP → y firmar los parámetros con HMAC-SHA256 en su código para realizar las llamadas. Todo el proceso toma aproximadamente 15 minutos; las claves están disponibles inmediatamente tras su creación, son gratuitas y no tienen cargos mensuales. Si aún no ha instalado la aplicación móvil de Binance para gestionar la verificación 2FA, puede descargar la App oficial de Binance para Android; los usuarios de iPhone pueden consultar el tutorial de instalación en iOS. Este artículo explica en 4 secciones la solicitud, la firma, el manejo de errores y las estrategias de límite de frecuencia, incluyendo código completo en Python y Node.js.
I. Requisitos previos para solicitar la clave API
1. Completar la verificación de identidad KYC L2
Binance requiere que la cuenta haya completado al menos la verificación de identidad intermedia L2 (envío de documento de identidad + reconocimiento facial). Las cuentas con solo verificación básica L1 no pueden crear claves API. La revisión L2 suele completarse en menos de 24 horas.
2. Habilitar 2FA (Obligatorio)
Se requiere un código de verificación 2FA para confirmar la creación de la clave API. Si aún no lo ha vinculado, vaya a Centro de seguridad → Autenticación de dos factores → Google Authenticator para completar la vinculación.
3. No se requiere depósito ni saldo mínimo obligatorio
Es posible crear claves API incluso con saldo cero en la cuenta, lo cual es conveniente para preparar las claves antes de realizar un depósito.
II. Creación de la clave API (5 pasos)
Paso 1: Acceder a la gestión de API
Inicie sesión en el sitio oficial de Binance → clic en el icono de perfil arriba a la derecha → Gestión de API. La URL directa es binance.com/es/my/settings/api-management.
Paso 2: Seleccionar el tipo de clave
Binance ofrece dos tipos de claves API:
| Tipo | Uso | Escenario recomendado |
|---|---|---|
| System generated | El sistema genera automáticamente el par de claves | Opción para el 90% de los usuarios, simple y estable |
| Self-generated | Usted proporciona una clave pública Ed25519 | Usuarios avanzados, la clave nunca sale del entorno local |
Para principiantes, basta con elegir System generated.
Paso 3: Asignar una etiqueta a la clave
Póngale un nombre (etiqueta) a la clave para facilitar su gestión posterior. Por ejemplo:
python-grid-bot— Bot de trading de mallanodejs-monitor— Script de monitoreo de preciosquantitative-strategy-v2— Estrategia cuantitativa v2
La etiqueta solo es visible para usted; Binance no realiza ninguna distinción basada en ella.
Paso 4: Pasar la verificación 2FA
Ingrese:
- Código de 6 dígitos enviado al correo
- Código de 6 dígitos enviado por SMS
- Código dinámico de 6 dígitos de Google Authenticator
Una vez que los tres códigos sean correctos, se completará la generación de la clave.
Paso 5: Guardar la Secret Key (Crucial)
La página de la clave mostrará:
- API Key: Siempre visible, puede consultarla en cualquier momento.
- Secret Key: Solo se muestra esta vez, no podrá verla de nuevo tras cerrar la página.
Debe copiar inmediatamente la Secret Key a un lugar seguro en su equipo local (gestor de contraseñas o notas cifradas); de lo contrario, tendrá que eliminarla y volver a crearla.
III. Configuración de permisos y lista blanca de IP
Tras crear la clave, todos los permisos están desactivados por defecto y deben habilitarse manualmente:
Opciones de permisos
| Permiso | Uso | Nivel de riesgo |
|---|---|---|
| Enable Reading | Consultar saldos, órdenes, mercado | Bajo |
| Enable Spot & Margin Trading | Operar en Spot / Margen | Medio |
| Enable Futures | Operar en Futuros | Alto |
| Enable Withdrawals | Retiros (requiere obligatoriamente lista blanca de IP) | Extremo |
| Permits Universal Transfer | Transferencias entre cuentas internas | Medio |
Consejo de seguridad: Active solo los permisos que necesite. Para consultar datos de mercado, marque solo Enable Reading; para trading en spot, marque Enable Reading + Enable Spot & Margin Trading; nunca active Enable Withdrawals a menos que sea estrictamente necesario.
Lista blanca de IP (Altamente recomendado)
En la página de configuración de la clave, ingrese las direcciones IP de los servidores autorizados para usar esta clave (hasta 30 IP). Una vez configurado, solo las solicitudes provenientes de esas IP podrán operar la cuenta con esa clave.
Si su servidor tiene una IP dinámica (banda ancha doméstica), puede elegir Sin restricciones (Menos seguro), pero los permisos se degradarán automáticamente: Enable Withdrawals no puede habilitarse en claves sin restricción de IP, siendo esta una regla de seguridad forzosa de Binance.
IV. Generar la firma para llamar a la API
En la API REST de Binance, todas las solicitudes que impliquen operaciones de cuenta requieren una firma. El algoritmo utilizado es HMAC-SHA256.
Reglas de firma
Contenido de la firma = Todos los parámetros de la solicitud codificados en URL y concatenados con &.
Por ejemplo, para la interfaz de consulta de saldo:
GET /api/v3/account
Parámetros: timestamp=1712876400000
Contenido de la firma: timestamp=1712876400000
Firma: HMAC_SHA256(secret_key, "timestamp=1712876400000")
Solicitud final:
GET /api/v3/account?timestamp=1712876400000&signature=<firma_calculada>
Encabezado: X-MBX-APIKEY: <Tu_API_Key>
Ejemplo completo en Python
import hmac, hashlib, time, requests
API_KEY = "Tu_API_Key"
SECRET_KEY = "Tu_Secret_Key"
BASE_URL = "https://api.binance.com"
def sign(params: dict) -> str:
query = "&".join([f"{k}={v}" for k, v in params.items()])
return hmac.new(SECRET_KEY.encode(), query.encode(), hashlib.sha256).hexdigest()
def get_account():
params = {"timestamp": int(time.time() * 1000)}
params["signature"] = sign(params)
headers = {"X-MBX-APIKEY": API_KEY}
r = requests.get(f"{BASE_URL}/api/v3/account", params=params, headers=headers)
return r.json()
print(get_account())
Ejemplo completo en Node.js
const crypto = require('crypto');
const axios = require('axios');
const API_KEY = 'Tu_API_Key';
const SECRET_KEY = 'Tu_Secret_Key';
const BASE_URL = 'https://api.binance.com';
function sign(params) {
const query = Object.keys(params).map(k => `${k}=${params[k]}`).join('&');
return crypto.createHmac('sha256', SECRET_KEY).update(query).digest('hex');
}
async function getAccount() {
const params = { timestamp: Date.now() };
params.signature = sign(params);
const r = await axios.get(`${BASE_URL}/api/v3/account`, {
params,
headers: { 'X-MBX-APIKEY': API_KEY }
});
return r.data;
}
getAccount().then(console.log);
V. Límites de frecuencia y pesos
La API de Binance utiliza Pesos (Weight) para controlar la frecuencia de llamadas:
| Elemento de límite | Valor por defecto |
|---|---|
| Límite de peso por minuto | 6000 |
| Límite de órdenes cada 10 seg | 100 órdenes |
| Límite de órdenes por día | 200,000 órdenes |
| Límite de suscripciones por conexión WS | 1024 |
| Límite de conexiones WS por IP | 300 |
Pesos de interfaces comunes:
GET /api/v3/ticker/price— Peso 1GET /api/v3/depth— Peso 1-50 (según el parámetro limit)GET /api/v3/account— Peso 10POST /api/v3/order— Peso 1 (pero consume frecuencia de órdenes)
Los encabezados de respuesta devuelven el peso actual:
X-MBX-USED-WEIGHT-1m: Peso usado en el último minuto.X-MBX-ORDER-COUNT-10s: Órdenes colocadas en los últimos 10 segundos.
Exceder el peso devolverá un error 429 Too Many Requests; violaciones graves devolverán un 418 y bloquearán temporalmente la IP (desde 2 minutos hasta 3 días).
VI. Errores comunes y soluciones
Error: -1022 Signature for this request is not valid
Causa: Firma incorrecta. Lo más común es un orden de parámetros inconsistente o una codificación URL errónea. Solución:
- Asegúrese de que la cadena usada para firmar sea idéntica a la cadena de consulta de la solicitud.
- No use comillas para parámetros numéricos (ej.
timestamp=1712876400000en lugar detimestamp="1712876400000"). - Codifique correctamente los caracteres especiales en la URL.
Error: -1021 Timestamp for this request was 1000ms ahead of the server's time
Causa: La diferencia entre el tiempo local y el del servidor de Binance supera 1 segundo. Solución:
- Sincronice el tiempo del sistema local (NTP).
- O añada el parámetro
recvWindow=10000en la solicitud para ampliar la tolerancia a 10 segundos.
Error: -2014 API-key format invalid
Causa: Error en la cadena de la clave. Solución: Verifique si copió espacios o saltos de línea adicionales; la clave debe ser alfanumérica de 64 caracteres.
Error: -1003 Too many requests; current limit is X requests per minute
Causa: Se excedió el límite de peso. Solución:
- Reduzca la frecuencia de llamadas o combine solicitudes (ej. use
/api/v3/ticker/24hrpara obtener todos los pares a la vez). - Use WebSocket para recibir datos en tiempo real y reducir llamadas REST.
- Espere 1 minuto antes de reintentar.
VII. Mejores prácticas de seguridad para la API
- Nunca exponga su Secret Key en el código del front-end: el front-end puede llamar a su propio back-end, y este a la API de Binance.
- Excluya archivos de claves en .gitignore: evite que los robots de escaneo automático las roben en repositorios como GitHub.
- Use lista blanca de IP en producción: permita solo la IP de su servidor.
- Rote las claves periódicamente: elimine y cree nuevas claves manualmente cada 6 meses.
- Monitoree llamadas inusuales: revise las estadísticas diarias en la gestión de API y desactive claves si detecta anomalías.
Preguntas frecuentes (FAQ)
P1: ¿Son gratuitas las claves API?
R: Totalmente gratuitas. Binance no cobra por las llamadas a la API (solo cobra comisiones por las transacciones ejecutadas), y no se requiere depósito para crear las claves. Sin embargo, cada cuenta puede tener un máximo de 30 claves API; si llega al límite, debe eliminar las antiguas.
P2: ¿Las comisiones por operar vía API son más bajas que las manuales?
R: No automáticamente. Las comisiones dependen de su nivel VIP y de si posee BNB; se aplica la misma tabla de tarifas tanto para operaciones manuales como vía API. No obstante, la API permite trading de alta frecuencia para capturar precios más precisos.
P3: ¿Se puede simular el trading en un entorno de prueba?
R: Sí. Binance ofrece Spot Testnet (red de prueba de spot) y Futures Testnet (red de prueba de futuros) para practicar llamadas API con monedas de prueba sin afectar su cuenta real.
P4: ¿Es más fácil usar bibliotecas de terceros como ccxt o llamar directamente a la API?
R: Depende del caso. ccxt es ideal para proyectos que requieren soporte para múltiples exchanges, ya que encapsula firmas y conversiones; llamar directamente es mejor para proyectos exclusivos de Binance que priorizan el rendimiento (menos capas de abstracción y depuración directa). Se recomienda empezar con ccxt y luego decidir si pasar a llamadas nativas.
P5: ¿Qué hago si me roban la clave API?
R: Inmediatamente elimine esa clave en Gestión de API dentro del sitio oficial de Binance (la eliminación es efectiva en segundos). Luego, revise su historial de transacciones y retiros; si detecta anomalías, contacte al servicio al cliente. Si no activó el permiso de retiros, el atacante solo podrá operar pero no retirar fondos, por lo que las pérdidas suelen ser controladas. Consulte el proceso detallado en la categoría [Control de Riesgo](/es/vault/Control de Riesgo/).
¿Necesita saber cómo responder al control de riesgo de la cuenta? Regrese a la Navegación de categorías y seleccione la sección «Control de Riesgo» para ver el proceso completo.