> ## Documentation Index
> Fetch the complete documentation index at: https://docs.benzinga.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Introducción

> Una breve introducción a la transmisión de datos en tiempo real con la API WebSocket de Benzinga.

Bienvenido a la documentación de la API WebSocket de Benzinga. Esta guía le ayudará a empezar a acceder a los flujos de datos en tiempo real de Benzinga, lo que le permitirá suscribirse a actualizaciones continuas de datos financieros, incluidas cotizaciones de mercado en vivo, operaciones, noticias y otra información clave.

<div id="websocket-endpoint">
  ## Endpoint de WebSocket
</div>

Todas las conexiones WebSocket pueden establecerse mediante el siguiente endpoint:

```
wss://api.benzinga.com
```

<div id="authentication">
  ## Autenticación
</div>

La API WebSocket de Benzinga requiere autenticación Bearer. Al iniciar una conexión WebSocket, incluye tu token de API en la URL de conexión como parámetro de consulta en el siguiente formato:
debes incluir tu token de API en el parámetro de consulta `token` con el formato `token: <token>`.

Consulta la página de [Autenticación](./authentication) para obtener más información sobre cómo obtener y administrar tu token de API.

<div id="subscribing-to-streams">
  ## Suscripción a streams
</div>

Una vez conectado, puedes suscribirte a streams de datos específicos según tus necesidades, como cotizaciones de acciones, datos de negociación o actualizaciones de noticias. Cada suscripción requiere un identificador único y parámetros específicos según el tipo de datos.

<div id="example-subscription-message">
  ### Ejemplo de mensaje de suscripción
</div>

Para suscribirse a un flujo de cotizaciones de acciones en tiempo real, envíe un mensaje JSON con el siguiente formato:

```json theme={null}
{
  "action": "subscribe",
  "symbol": "AAPL",
  "type": "quote"
}
```

<div id="heartbeat-mechanism">
  ## Mecanismo de latido
</div>

Para mantener una conexión estable y garantizar que el cliente y el servidor sigan sincronizados, la API WebSocket de Benzinga incluye un mecanismo de latido.

<div id="client-side-heartbeat">
  ### Heartbeat en el lado del cliente
</div>

* Si envías un mensaje ping como un frame de texto sin formato (por ejemplo, la string "ping"), el servidor responderá con un mensaje pong como texto sin formato (por ejemplo, la string "pong").

* Esto se puede usar para verificar que la conexión sigue activa y es receptiva.

<div id="example">
  #### Ejemplo
</div>

* El cliente envía: `ping`

* El servidor responde: `pong`

<div id="server-side-heartbeat">
  ### Heartbeat del lado del servidor
</div>

* El servidor enviará automáticamente un frame de ping al cliente cada 10 segundos para asegurarse de que la conexión se mantenga activa.

* Se espera que el cliente responda a este frame de ping (la mayoría de las bibliotecas de WebSocket lo manejan automáticamente).

<div id="handling-heartbeats">
  ### Manejo de latidos (heartbeats)
</div>

* La mayoría de las librerías cliente WebSocket (por ejemplo, las de JavaScript, Python o Go) manejan automáticamente los pings entrantes del servidor y responden con un pong.

* Sin embargo, si estás implementando un cliente WebSocket personalizado, asegúrate de que responda correctamente a las tramas de ping del servidor para evitar que la conexión se cierre.

<div id="rate-limiting">
  ## Limitación de tasa
</div>

Tenga en cuenta que la API de Benzinga tiene límites de tasa para evitar abusos y garantizar la estabilidad del servicio. Solo se permite 1 conexión por token de API a la vez. Si excede el límite de tasa, recibirá una respuesta de error.

***

Esperamos que esta guía le ayude a comenzar con las API de Benzinga. Si tiene alguna pregunta, no dude en ponerse en contacto con nuestro equipo de soporte.
