Principales conclusiones

  • Las API son fragmentos de código que permiten que las aplicaciones compartan información y pueden usarse para mejorar las estrategias de comercio de criptomonedas.

  • Postman es una plataforma API que simplifica el proceso de creación y uso de API.

  • Obtenga más información sobre el uso de Postman para operaciones al contado en el ecosistema API de Binance.

Binance API Series Pt. I – Spot Trading with Postman

Introducción

Comprender y utilizar una API para el comercio de criptomonedas puede abrir un mundo de posibilidades para entrar y salir de posiciones. Con algunos conocimientos simples de codificación, puede conectarse al backend de un intercambio para automatizar sus estrategias comerciales. Al evitar el sitio web, puede tomar un camino mucho más rápido hacia el motor correspondiente para aplicaciones de alto rendimiento.

En este artículo, utilizaremos Postman, una plataforma API simplificada, para comunicarnos con el intercambio. No se preocupe: no pondremos en riesgo ningún fondo real.

Requisitos previos

Claves de la red de prueba

Usaremos la red de prueba para nuestros propósitos actuales. Esta función de simulación nos dará algunos fondos sin valor en el mundo real con los que jugar. Funcionan igual que las monedas y tokens reales, por lo que una vez que se sienta cómodo con la API, puede comenzar a usarla para operar con fondos reales.

  1. Comience dirigiéndose a Spot Test Network.

  2. Para obtener acceso, inicie sesión con una cuenta de GitHub. Deberá crear uno si aún no lo ha hecho.

  3. Haga clic en Autenticar e inicie sesión a través de GitHub.

  4. En Claves API, se le informará que no tiene claves registradas. Haga clic en Generar clave HMAC_SHA256 para crear un par.

  5. En la siguiente pantalla, asigne una etiqueta a las claves. Llámalos como quieras y presiona Generar.

  6. Se le presentan dos claves: la clave API y la clave secreta. Es importante que los registre ahora. Si no lo hace, deberá iniciar el proceso de creación de claves nuevamente. Recomendamos almacenarlos en la aplicación de notas de su máquina para copiarlos y pegarlos fácilmente más tarde.

Nota: vale la pena etiquetar sus claves cuando utiliza el intercambio real para administrar diferentes claves. Su cuenta puede tener varias claves con diferentes permisos. Si está ejecutando varios robots comerciales, el uso de claves separadas con etiquetas descriptivas facilita la administración de permisos o la eliminación de claves individuales sin cambiar todos sus bots.

Descargando e instalando Postman

Postman es una plataforma de colaboración API. Es un punto de partida perfecto para nosotros: tendremos acceso a colecciones de solicitudes de Binance que probaremos sin necesidad de escribir una sola línea de código.

El programa está disponible para Mac, Windows y Linux. Dirígete a la página de Descargas y descarga el archivo .zip.

Una vez completado, ubíquelo en su explorador de archivos e instálelo. ¡Inicie la aplicación y listo! Puedes crear una cuenta para iniciar sesión, pero no es necesario. Si desea omitir este paso, simplemente seleccione la opción para hacerlo en la parte inferior de la ventana.

Creando el ambiente

En esta etapa, debería tener una interfaz similar a la siguiente.

Primero, queremos crear nuestro entorno. Este paso es solo una forma de agregar variables a las solicitudes con las que trabajaremos. Primero necesitaremos obtener información del repositorio de Binance GitHub. Dirígete aquí y descarga el archivo .zip.

La descarga no debería tardar mucho. Puedes encontrarlo en tu explorador de archivos y descomprimirlo. Luego, podemos regresar a Postman.

Haga clic en el ícono de ajustes en la esquina superior derecha (ilustrado arriba). Serás recibido con una ventana emergente Administrar entornos.

  1. Seleccione Importar y navegue hasta su carpeta extraída (binance-postman-api).

  2. Ingrese, luego ingrese a la carpeta de entornos.

  3. Ahora verá dos archivos (uno para mainnet y otro para testnet). El que buscamos es binance_com_spot_testnet_api.postman_environment.json. Asegúrese de tener la correcta porque nuestras claves no funcionarán con la otra.

Casi llegamos. Haga clic en Binance Spot Testnet API para ver las variables a continuación. Edite los dos parámetros resaltados en rojo pegando las claves que guardó anteriormente. Haga clic en actualizar y salga de la ventana emergente.

En esta pantalla, deje en blanco los campos de marca de tiempo y firma. Estos dos valores se crearán automáticamente en cada solicitud.

Queda una última cosa por hacer. A la derecha del ícono de ajustes en el que hicimos clic para configurar el entorno anteriormente, verá un menú desplegable que actualmente dice Sin entorno. Haga clic en él y seleccione API Binance Spot Testnet.

Importando la colección

Ahora importaremos la colección: se trata de una amplia variedad de solicitudes que hacen el trabajo pesado por nosotros al realizar llamadas. Para cargarlo en nuestro entorno:

  1. Haga clic en Importar en la esquina superior izquierda.

  2. En la ventana emergente, en la pestaña Archivo, seleccione Cargar archivos.

  3. Estamos buscando nuevamente la carpeta binance-postman-api. Localízalo y ábrelo.

  4. Esta vez, ingrese colecciones en el subdirectorio.

  5. Hay dos archivos aquí nuevamente. Uno es para trabajar con la API de futuros. Pero estamos trabajando con el spot, por lo que debes seleccionar el archivo Binance Spot API.postman_collection.json.

  6. Ahora debería ver una pantalla de confirmación que identifica la importación como en formato Postman Collection. Seleccione Importar.

En la pestaña Colecciones a la izquierda de la ventana, ahora notará que tenemos una carpeta con más de 100 solicitudes. ¡Felicidades! Estamos listos para comenzar. En la siguiente sección, veremos los tipos de solicitudes que podemos realizar.

Haciendo peticiones

Si expande las carpetas en la pestaña Colecciones, verá que podemos realizar muchas solicitudes diferentes. A partir del código de colores, puede observar que hay tres tipos de métodos que podemos utilizar:

  • GET: El método GET se utiliza para recuperar cosas de un servidor. Usaremos esto para encontrar información sobre el saldo de su cuenta, precios de activos, etc.

  • POST: Generalmente usaremos el método POST para crear información en un servidor. Este método es necesario para cosas como realizar pedidos, solicitar retiros, etc.

  • DELETE: El método DELETE solicita al servidor que elimine información. Será útil para cancelar pedidos.

Encuentre la lista de símbolos y las reglas comerciales.

¡Es hora de nuestra primera petición! Obtendremos los símbolos que podemos negociar en el intercambio y las reglas comerciales:

OBTENER /api/v3/exchangeInfo

Este no requiere ningún parámetro adicional; puede copiarlo y pegarlo en su barra de direcciones y obtendrá una respuesta. Pero Postman facilita ver y modificar solicitudes donde incluimos varios parámetros.

Para cargar esta solicitud, seleccione Mercado > Información de intercambio. Aparecerá una pestaña como la siguiente:

No necesitamos hacer nada más aquí, así que continúa y presiona Enviar. Luego recibirás una respuesta:

En la sección resaltada superior, verá información importante:

  • El estado de la respuesta (200 significa que hemos tenido éxito, 400-499 significa que hemos tenido un problema).

  • El tiempo que se tardó en recibir la respuesta (menos de un segundo).

  • El tamaño de la respuesta (~22 KB).

En el segundo recuadro se encuentra el grueso de la respuesta. Este cuadro contiene información sobre el intercambio, los pares que puede negociar y sus montos mínimos/máximos.

Parece mucha información, pero el formato facilita el trabajo mediante programación. Al escribir guiones para interactuar con él, podrá seleccionar fácilmente propiedades específicas de elementos específicos de la respuesta.

Consultar los saldos de las cuentas.

Revisemos qué activos tenemos y cuánto de cada uno:

OBTENER /api/v3/cuenta

Puede encontrarlo en Comercio > Información de cuenta. Haga clic en él para ver un diseño similar al anterior. Sin embargo, también notarás que tenemos dos nuevas variables: marca de tiempo y firma. La firma es una medida de seguridad. Como ahora solicitamos información confidencial, demostrará que somos el titular de la cuenta.

La marca de tiempo le indica al servidor cuándo se envió la solicitud. Debido a que las redes pueden ser poco confiables o enfrentar tiempos de inactividad, el servidor podría recibir nuestra solicitud mucho más tarde de lo previsto. Si ha pasado demasiado tiempo, rechazará la solicitud. Puede especificar cuánto tiempo desea esperar con el parámetro recvWindow, que por defecto es 5000 milisegundos.

Postman se encarga de la generación de ambos campos por nosotros. Haga clic en enviar y recibirá una respuesta. Debajo de los saldos, debería ver seis activos: BNB, BTC, BUSD, ETH, LTC y TRX. El saldo se dividirá entre activos libres y bloqueados. Aún no hemos bloqueado ninguno, por lo que todos sus activos deberían ser gratuitos.

Obtener el precio actual de un símbolo

Podemos obtener el precio actual de un activo de diferentes maneras. Quizás la más sencilla sea con la siguiente petición:

OBTENER /api/v3/ticker/24hr

Como puedes imaginar, esto nos dará información sobre los precios de los activos de las últimas veinticuatro horas. Puede encontrarlo en Mercado > Estadísticas de cambio de precio de teletipo las 24 horas. El par predeterminado con el que nos encontramos como variable de símbolo es BTC/USDT.

Puede enviarlo de inmediato para ver un desglose de la información de precios. También puede cambiar el símbolo (a BNB/USDT, LTC/USDT, etc.) o desmarcar la variable para devolver datos de 40 pares.

También tenemos una llamada más simple (Mercado > Símbolo de precio) que devuelve el precio actual al que se cotiza un activo:

OBTENER /api/v3/precio

Al igual que con el anterior, puede cambiar la variable del símbolo o eliminarla por completo y obtener el precio más reciente para todos los símbolos.

Verifique la profundidad del libro de pedidos actual

La profundidad del libro de órdenes, también conocida como profundidad de mercado (DOM), puede decirnos mucho sobre el mercado. Haremos una llamada que nos devolverá información útil:

OBTENER /api/v3/profundidad

Cuando enviamos esto con los valores predeterminados (Mercado > Libro de órdenes), recibimos una respuesta que nos informa sobre las ofertas y solicita BTC/USDT. El servidor testnet no generará tantos datos como el real, por lo que a continuación se muestra una captura de pantalla de lo que esperaría ver en un entorno real:

En la sección resaltada arriba, podemos ver la primera oferta. Dado que estamos mirando el libro de BTC/USDT, el número superior es el precio que alguien está dispuesto a pagar por su BTC. A continuación se muestra la cantidad que están dispuestos a comprar. Por lo tanto, esto dice que esta orden solicita 0,999 BTC a una tasa de 9704,65 USDT por BTC. Si continuamos desplazándonos hacia abajo, veríamos disminuir el precio de oferta, lo que representa a los compradores que pagarían menos.

La oferta superior, naturalmente, será la más atractiva si está buscando sacar el máximo partido a su inversión. Aún así, si estás intentando vender 3 BTC, por ejemplo, sólo podrás vender 0,999 BTC al mejor precio. Deberá aceptar las ofertas posteriores (más baratas) hasta que se complete su pedido.

Sigue desplazándote y verás las preguntas. Son funcionalmente similares a las ofertas, excepto que representan órdenes para vender BTC por USDT.

Realizar un pedido de prueba

Ahora vamos a publicar un pedido de prueba.

ENVIAR /api/v3/order/test

Aunque solo estamos usando fondos de testnet, esta solicitud en realidad no generará un pedido. Puede resultar útil para probar pedidos antes de enviarlos. Encuéntrelo en Comercio > Probar nuevo pedido (COMERCIO).

Puedes ver que tenemos muchos más parámetros involucrados. Repasemos los marcados:

  • símbolo: nos hemos encontrado con este anteriormente. Este es el par que desea intercambiar.

  • lado – aquí estipularás si quieres COMPRAR o VENDER. Con el par BTC/USDT, COMPRAR indica que desea comprar BTC por USDT, mientras que vender venderá BTC por USDT.

  • tipo: el tipo de pedido que desea enviar. Valores posibles (detallados aquí):

    • LÍMITE

    • MERCADO

    • DETENER LA PÉRDIDA DE

    • STOP_LOSS_LIMIT

    • SACA PROVECHO

    • TAKE_PROFIT_LIMIT

    • LIMIT_MAKER

  • timeInForce: este parámetro expresa cómo desea que se ejecute la orden:

    • GTC (válido hasta que se cancele): quizás la configuración más popular, GTC garantizará que su pedido sea válido hasta que se complete o cancele.

    • FOK (completar o matar): FOK le indica al intercambio que ejecute una orden de una vez. Si el intercambio no puede hacerlo, el pedido se cancela inmediatamente.

    • IOC (inmediata o cancelar): la totalidad o parte de la orden debe ejecutarse inmediatamente o se cancelará. A diferencia de FOK, los pedidos no se cancelan si se pueden ejecutar parcialmente.

  • Cantidad: la cantidad del activo que desea comprar o vender.

  • precio: el precio al que desea vender. Para el par BTC/USDT, esto se expresa en USDT.

  • newClientOrderId: un identificador del pedido. Este no es un campo obligatorio, pero puede configurarlo con un identificador que facilitará la consulta más adelante. De lo contrario, el intercambio lo genera aleatoriamente.

¡Bueno! Creemos una orden de prueba ahora. Procederemos con los valores generados automáticamente: una orden límite para vender 0,1 BTC por USDT a $9000. Pulsa Enviar. Si esto tiene éxito, recibiremos {} como respuesta.

Realizar un pedido real

Es hora de hacer un pedido real.

ENVIAR /api/v3/order

Vaya a Comercio > Nueva orden. Ya estás familiarizado con los pedidos de prueba, por lo que los parámetros aquí no te sorprenderán. Dejemos todos los valores como están pero cambiemos el precio que estamos vendiendo a 40.000 USD. Modifique el valor del precio para reflejar esto. Luego, presiona Enviar.

Su respuesta devuelve una gran cantidad de detalles sobre el pedido si se realiza correctamente.

Verificar el estado de una orden abierta

Recibimos confirmación de que el pedido se realizó en la sección anterior, pero ¿qué pasa si queremos volver a verificarlo más tarde? Tenemos algunas solicitudes a nuestra disposición.

OBTENER /api/v3/openOrders

Lo encontrará en Comercio > Órdenes abiertas actuales (USER_DATA). BTC/USDT está seleccionado de forma predeterminada. Si presiona Enviar, recibirá todas sus órdenes BTC/USDT abiertas (hasta ahora, solo debería ver la que configuramos anteriormente). También puede optar por no especificar un símbolo, lo que devolverá todas sus órdenes abiertas.

OBTENER /api/v3/allOrders

Comercio > Todas las órdenes (USER_DATA) le brinda una descripción general de todas las órdenes, no solo de las abiertas. Aquí debe proporcionar un símbolo. orderId, startTime, endTime y limit son parámetros opcionales que pueden ayudarle a refinar su búsqueda. Los dejaremos aquí, así que desmárquelos. Presione Enviar y verá la misma respuesta que antes. Si tuviera algún pedido cerrado o cancelado, también lo verá aquí.

Por último, podemos consultar pedidos específicos con lo siguiente:

OBTENER /api/v3/order

Obtenga esto en Comercio > Consultar orden (USER_DATA). Deberá proporcionar el orderId o el origClientOrderId (la etiqueta opcional "newClientOrderId" que puede agregar a los pedidos). Desmarque ID de pedido. Para origClientOrderId, proporcionaremos la etiqueta predeterminada anterior: "my_order_id_1". Complete el campo y presione Enviar para obtener la respuesta.

Cancelar un pedido

Después de un tiempo, podríamos decidir que el objetivo de 40.000 USD es demasiado optimista, por lo que queremos cancelarlo. En ese caso, usaríamos lo siguiente:

ELIMINAR /api/v3/order

En Comercio > Cancelar orden hay una solicitud que nos permitirá seleccionar órdenes para su cancelación. Desmarque orderId y newClientOrderId y pase "my_order_id_1" como valor de origClientOrderId.

Cuando envíe esta solicitud, el pedido será devuelto. Si se desplaza hacia abajo hasta "estado", verá que efectivamente está cancelado. Para confirmar esto, use el punto final GET /api/v3/openOrders nuevamente (lo que le brinda una lista vacía) o GET /api/v3/order con origClientOrderId.

Realice un pedido que se complete al instante

Nuestra orden anterior no se ejecutó porque era una orden limitada que solo se activaría cuando el precio de BTC alcanzara los 40 000 USD. Con una orden de mercado, básicamente decimos: "Comprar o vender al precio al que se cotiza actualmente el activo". Esto se llenará instantáneamente.

Para eso, volvamos a Comercio > Nuevo Orden. Demostraremos el tipo de respuesta (newOrderRespType), que es un parámetro que podemos modificar según la respuesta que queremos del servidor. Aquí hay tres opciones: ACK, RESULTADO o COMPLETO; puede ver ejemplos de cada respuesta aquí. Iremos con ACK, que nos da un acuse simple de que se recibió el pedido.

A continuación, puede ver que estamos a punto de enviar una orden de mercado para vender BNB por BUSD al precio de mercado actual.

Tenga en cuenta que la respuesta nos proporciona información mínima:

Puede verificar que el pedido se completó con el punto final /api/v3/allOrders.

Comprobando tus operaciones

Por último, veamos el punto final para verificar sus operaciones:

OBTENER /api/v3/myTrades

Se encuentra en Comercio > Lista de transacciones de cuentas (USER_DATA). Le permite verificar cada operación en busca de un símbolo en particular. Si desea ver todas sus operaciones para el símbolo predeterminado (BTC/USDT), simplemente desmarque startTime, endTime y fromId. La respuesta devolverá hasta 500 operaciones; simplemente modifique el límite si desea ver más.

Depuración con cartero

En Postman, es posible revelar más la solicitud HTTP sin procesar y la respuesta.

Este menú abrirá la consola Postman, que imprime los detalles de cada solicitud.

Comience con la API de Binance

El propósito de esta guía fue presentarle suavemente la API de Binance sin escribir una sola línea de código. Si ha seguido las instrucciones, ahora debería tener una idea de cómo podemos solicitar y enviar información.

¿Preguntas mientras tanto? Dirígete a nuestro creciente foro de la comunidad de desarrolladores de Binance o consulta la documentación.

Otras lecturas

  • Glosario: Interfaz de programación de aplicaciones (API)

  • ¿Qué es una clave API y cómo utilizarla de forma segura?

  • Cómo utilizar una clave API de forma segura: 5 consejos de Binance