Enriquecido - Suscribirse a artículos
La API WebSocket de finlight.me te permite suscribirte a actualizaciones de artículos en tiempo real. Una vez conectado y suscrito, recibes de inmediato el artículo más reciente que coincide con tu consulta, seguido de cualquier artículo recién publicado que cumpla tus criterios a medida que aparece.
Modelo de artículo
El modelo de artículo de la respuesta contiene toda la información sobre un artículo, como el enlace, el título, la fecha de publicación y la fuente. También incluye un sentimiento y su confianza al respecto.
- Name
link- Type
- string
- Description
URL del artículo completo.
- Name
source- Type
- string
- Description
Sitio web de origen. P. ej.
www.reuters.com
- Name
title- Type
- string
- Description
Título del artículo.
- Name
summary- Type
- string
- Description
Resumen del artículo si existe. Puede ser nulo.
- Name
publishDate- Type
- Date
- Description
Fecha de publicación como fecha ISO.
- Name
createdAt- Type
- Date
- Description
Fecha de creación interna del artículo en el sistema de finlight como fecha ISO.
- Name
revisedDate- Type
- Date | null
- Description
Fecha de la última revisión del artículo tras la publicación inicial.
nullcuando el artículo nunca se ha revisado. Presente cuandoincludeUpdatesestá habilitado y el artículo ha sido revisado.
- Name
isUpdate- Type
- boolean
- Description
truecuando esta entrega se desencadena por una actualización del artículo posterior a la publicación. Solo presente cuandoincludeUpdatesestá habilitado.
- Name
language- Type
- string
- Description
Código de idioma en ISO 639-1. P. ej.
en|de|fr
- Name
sentiment- Type
- string
- Description
Resultado del análisis de sentimiento. Los valores pueden ser
positive|neutral|negative
- Name
confidence- Type
- number
- Description
Nivel de confianza del análisis de sentimiento, de 0 a 1.
- Name
images- Type
- string[]
- Description
Array de URLs de imágenes del artículo.
- Name
countries- Type
- string[]
- Description
Array de códigos de país en formato ISO 3166-1 alpha-2 que representan los países relacionados con el artículo. P. ej.
["US", "GB", "DE"]. Puede estar vacío.
- Name
categories- Type
- string[]
- Description
Array de categorías del artículo. Valores posibles:
markets|economy|business|politics|geopolitics|regulation|technology|energy|commodities|crypto|health|climate|security. Puede estar vacío.
- Name
companies- Type
- Company[]
- Description
Array de empresas mencionadas en el artículo. Solo se muestra/está disponible con un nivel de suscripción específico. Puede ser nulo.
Modelo de empresa
El modelo de empresa de la respuesta contiene información sobre una empresa mencionada en un artículo. Incluye detalles como el nombre de la empresa, el símbolo de ticker, la industria y más.
- Name
companyId- Type
- number
- Description
Identificador único de la empresa.
- Name
confidence- Type
- string
- Description
Nivel de confianza de la identificación de la empresa, de 0 a 1.
- Name
country- Type
- string
- Description
País donde se basa la empresa en formato ISO 3166-1 alpha-2. P. ej.
US|DE|GB
- Name
exchange- Type
- string
- Description
Bolsa de valores donde cotiza la empresa.
- Name
industry- Type
- Date
- Description
Sector industrial de la empresa. P. ej.
Biotechnology, Technology
- Name
name- Type
- string
- Description
Nombre completo de la empresa. P. ej.
Apple Inc.
- Name
sector- Type
- string
- Description
Sector de la empresa. P. ej.
Technology|Health Care
- Name
ticker- Type
- string
- Description
Símbolo de ticker de la empresa. P. ej.
AAPL|GOOGL
- Name
isin- Type
- string
- Description
Número Internacional de Identificación de Valores (ISIN) de la empresa. P. ej.
US0378331005
- Name
openfigi- Type
- string
- Description
Identificador OpenFIGI de la empresa. P. ej.
BBG000B9XRY4
- Name
primaryListing- Type
- object
- Description
Información de la cotización principal de la empresa en bolsa.
- Name
primaryListing.ticker- Type
- string
- Description
Símbolo de ticker principal en la bolsa principal.
- Name
primaryListing.exchangeCode- Type
- string
- Description
Código de la bolsa principal donde cotiza la acción.
- Name
primaryListing.exchangeCountry- Type
- string
- Description
País de la bolsa principal donde cotiza la acción.
- Name
isins- Type
- string[]
- Description
Array de Números Internacionales de Identificación de Valores (ISIN) de la empresa.
- Name
otherListings- Type
- object[]
- Description
Array de otras cotizaciones en bolsa de la empresa.
- Name
otherListings[].ticker- Type
- string
- Description
Símbolo de ticker en la bolsa alternativa.
- Name
otherListings[].exchangeCode- Type
- string
- Description
Código de la bolsa alternativa donde cotiza la acción.
- Name
otherListings[].exchangeCountry- Type
- string
- Description
País de la bolsa alternativa donde cotiza la acción.
Obtener artículos
Cuando te suscribas, recibirás primero el artículo más reciente que coincida con tu consulta, seguido de cualquier artículo nuevo a medida que se publique.
Al suscribirte, puedes especificar varios parámetros para filtrar los artículos que recibes:
- Name
query- Type
- string
- Description
Consulta de búsqueda para encontrar artículos relevantes. Consultas avanzadas
- Name
sources- Type
- string[]
- Description
Filtra por una o varias fuentes de artículos. P. ej. ["www.reuters.com", "www.cnbc.com"]. Consulta el endpoint de fuentes para los valores válidos. Admite el comodín
"*"para incluir todas las fuentes.
- Name
excludeSources- Type
- string[]
- Description
Excluye una o varias fuentes. P. ej. ["www.reuters.com", "www.cnbc.com"]. Consulta el endpoint de fuentes para los valores válidos.
- Name
tickers- Type
- string[]
- Description
Filtra por símbolos de ticker (array de cadenas). Esto devolverá artículos que mencionan estos tickers. Admite el comodín
"*"para incluir todos los tickers.
- Name
countries- Type
- string[]
- Description
Filtra por país de la empresa usando códigos de país ISO 3166-1 alpha-2 (array de cadenas). P. ej.
["US", "GB", "DE"]
- Name
includeEntities- Type
- boolean
- Description
Incluye las empresas mencionadas en el artículo. Requiere un nivel de suscripción específico.
- Name
language- Type
- string
- Description
Filtra por idioma (ISO 639-1). Por defecto es
en, que devuelve solo inglés y excluye otros idiomas — consulta Idioma y cobertura.
- Name
includeUpdates- Type
- boolean
- Description
Cuando está habilitado, los artículos actualizados se vuelven a entregar con
isUpdate=truey una marca de tiemporevisedDate. Útil para monitorear correcciones de artículos o adiciones de contenido tras la publicación inicial.
- Name
extended- Type
- boolean
- Description
(Obsoleto)
truepara recibir información extendida del artículo (incluyesummary).
Request
import { FinlightApi } from 'finlight-client'
const client = new FinlightApi({
apiKey: 'YOUR_API_KEY', // Replace with your API key
})
client.websocket.connect(
{
query: 'Nvidia',
language: 'en',
extended: true,
countries: ['US', 'GB'],
},
(article) => {
console.log('New article received:', article)
},
)
Gestión de los límites de conexión: Si tu nivel de suscripción limita el número de conexiones WebSocket paralelas, puedes usar la opción takeover para cerrar automáticamente la conexión más antigua al intentar abrir una nueva más allá de tu límite. Esto evita errores de conexión durante el desarrollo o los reinicios de la aplicación.
// TypeScript example with takeover enabled
const client = new FinlightApi(
{
apiKey: 'YOUR_API_KEY',
},
{
takeover: true, // Automatically close oldest connection when limit is reached
},
)
# Python example with takeover enabled
from finlight_client import FinlightApi, ApiConfig, WebSocketOptions
client = FinlightApi(
config=ApiConfig(api_key="YOUR_API_KEY"),
websocket_options=WebSocketOptions(takeover=True)
)
Por defecto, takeover está en false, lo que significa que las nuevas conexiones serán rechazadas si has alcanzado tu límite. Habilítalo durante el desarrollo por comodidad, pero considera mantenerlo deshabilitado en producción para una gestión explícita de las conexiones.
Response
{
"link": "https://www.example.com/article1",
"source": "www.example.com",
"title": "Stock Market Hits New Highs",
"summary": "A brief summary of the article...",
"publishDate": "2023-10-01T12:34:56Z",
"createdAt": "2023-10-01T12:35:10Z",
"language": "en",
"sentiment": "positive",
"confidence": 0.95,
"images": [
"https://www.example.com/image1.jpg",
"https://www.example.com/image2.jpg"
],
"countries": ["US"],
"categories": ["markets", "technology"],
"companies": [
{
"companyId": 41494,
"confidence": "0.9335401058197021",
"country": "US",
"exchange": "XNAS",
"industry": "Biotechnology: Pharmaceutical Preparations",
"name": "Summit Therapeutics Inc. Common Stock",
"sector": "Health Care",
"ticker": "SMMT",
"isin": "US86627T1088",
"openfigi": "BBG01PH11VP5",
"primaryListing": {
"ticker": "SMMT",
"exchangeCode": "XNAS",
"exchangeCountry": "US"
},
"isins": ["US86627T1088", "US86627T2088"],
"otherListings": [
{
"ticker": "SMMT.L",
"exchangeCode": "XLON",
"exchangeCountry": "GB"
}
]
}
]
}
Response (includeUpdates: true)
{
"link": "https://www.example.com/article1",
"source": "www.example.com",
"title": "Stock Market Hits New Highs — Updated",
"summary": "An updated summary of the article...",
"publishDate": "2023-10-01T12:34:56Z",
"createdAt": "2023-10-01T12:35:10Z",
"revisedDate": "2023-10-02T08:00:00Z",
"isUpdate": true,
"language": "en",
"sentiment": "positive",
"confidence": 0.95,
"images": [
"https://www.example.com/image1.jpg"
],
"countries": ["US"],
"categories": ["markets"],
"companies": []
}
Puedes mantener la conexión abierta y recibir artículos en tiempo real sin solicitudes adicionales. A medida que hay nuevos artículos disponibles, se envían directamente a tu función de callback.