Обогащённый - Подписка на статьи
WebSocket API finlight.me позволяет подписываться на обновления статей в реальном времени. После подключения и подписки вы сразу получаете самую свежую статью, соответствующую вашему запросу, а затем — любые вновь опубликованные статьи, отвечающие вашим критериям, по мере их появления.
Модель статьи
Модель статьи в ответе содержит всю информацию о статье: ссылку, заголовок, дату публикации и источник. Также она содержит тональность и достоверность по ней.
- Name
link- Type
- string
- Description
URL полной статьи.
- Name
source- Type
- string
- Description
Сайт-источник. Напр.
www.reuters.com
- Name
title- Type
- string
- Description
Заголовок статьи.
- Name
summary- Type
- string
- Description
Краткое содержание статьи, если есть. Может быть null.
- Name
publishDate- Type
- Date
- Description
Дата публикации в виде даты ISO.
- Name
createdAt- Type
- Date
- Description
Внутренняя дата создания статьи в системе finlight в виде даты ISO.
- Name
revisedDate- Type
- Date | null
- Description
Дата последней правки статьи после первоначальной публикации.
null, если статья никогда не правилась. Присутствует, когда включёнincludeUpdatesи статья была отредактирована.
- Name
isUpdate- Type
- boolean
- Description
true, когда эта доставка вызвана обновлением статьи после публикации. Присутствует только при включённомincludeUpdates.
- Name
language- Type
- string
- Description
Код языка в формате ISO 639-1. Напр.
en|de|fr
- Name
sentiment- Type
- string
- Description
Результат анализа тональности. Значения:
positive|neutral|negative
- Name
confidence- Type
- number
- Description
Уровень достоверности анализа тональности, от 0 до 1.
- Name
images- Type
- string[]
- Description
Массив URL изображений из статьи.
- Name
countries- Type
- string[]
- Description
Массив кодов стран в формате ISO 3166-1 alpha-2, представляющих страны, связанные со статьёй. Напр.
["US", "GB", "DE"]. Может быть пустым.
- Name
categories- Type
- string[]
- Description
Массив категорий статьи. Возможные значения:
markets|economy|business|politics|geopolitics|regulation|technology|energy|commodities|crypto|health|climate|security. Может быть пустым.
- Name
companies- Type
- Company[]
- Description
Массив компаний, упомянутых в статье. Отображается/доступен только на определённом уровне подписки. Может быть null.
Модель компании
Модель компании в ответе содержит информацию о компании, упомянутой в статье. Она включает такие сведения, как название компании, тикер, отрасль и другое.
- Name
companyId- Type
- number
- Description
Уникальный идентификатор компании.
- Name
confidence- Type
- string
- Description
Уровень достоверности идентификации компании, от 0 до 1.
- Name
country- Type
- string
- Description
Страна, где базируется компания, в формате ISO 3166-1 alpha-2. Напр.
US|DE|GB
- Name
exchange- Type
- string
- Description
Фондовая биржа, на которой котируется компания.
- Name
industry- Type
- Date
- Description
Отраслевой сектор компании. Напр.
Biotechnology, Technology
- Name
name- Type
- string
- Description
Полное название компании. Напр.
Apple Inc.
- Name
sector- Type
- string
- Description
Сектор компании. Напр.
Technology|Health Care
- Name
ticker- Type
- string
- Description
Биржевой тикер компании. Напр.
AAPL|GOOGL
- Name
isin- Type
- string
- Description
Международный идентификационный номер ценных бумаг (ISIN) компании. Напр.
US0378331005
- Name
openfigi- Type
- string
- Description
Идентификатор OpenFIGI компании. Напр.
BBG000B9XRY4
- Name
primaryListing- Type
- object
- Description
Информация об основном биржевом листинге компании.
- Name
primaryListing.ticker- Type
- string
- Description
Основной тикер на главной бирже.
- Name
primaryListing.exchangeCode- Type
- string
- Description
Код основной биржи, на которой котируется акция.
- Name
primaryListing.exchangeCountry- Type
- string
- Description
Страна основной биржи, на которой котируется акция.
- Name
isins- Type
- string[]
- Description
Массив международных идентификационных номеров ценных бумаг (ISIN) компании.
- Name
otherListings- Type
- object[]
- Description
Массив других биржевых листингов компании.
- Name
otherListings[].ticker- Type
- string
- Description
Тикер на альтернативной бирже.
- Name
otherListings[].exchangeCode- Type
- string
- Description
Код альтернативной биржи, на которой котируется акция.
- Name
otherListings[].exchangeCountry- Type
- string
- Description
Страна альтернативной биржи, на которой котируется акция.
Получение статей
При подписке вы сначала получите самую свежую статью, соответствующую вашему запросу, а затем — новые статьи по мере их публикации.
При подписке вы можете указать различные параметры для фильтрации получаемых статей:
- Name
query- Type
- string
- Description
Поисковый запрос для поиска релевантных статей. Расширенные запросы
- Name
sources- Type
- string[]
- Description
Фильтрация по одному или нескольким источникам статей. Напр. ["www.reuters.com", "www.cnbc.com"]. Допустимые значения см. в эндпоинте источников. Поддерживает подстановочный знак
"*"для включения всех источников.
- Name
excludeSources- Type
- string[]
- Description
Исключает один или несколько источников. Напр. ["www.reuters.com", "www.cnbc.com"]. Допустимые значения см. в эндпоинте источников.
- Name
tickers- Type
- string[]
- Description
Фильтрация по биржевым тикерам (массив строк). Возвращает статьи, упоминающие эти тикеры. Поддерживает подстановочный знак
"*"для включения всех тикеров.
- Name
countries- Type
- string[]
- Description
Фильтрация по стране компании с использованием кодов стран ISO 3166-1 alpha-2 (массив строк). Напр.
["US", "GB", "DE"]
- Name
includeEntities- Type
- boolean
- Description
Включает компании, упомянутые в статье. Требует определённого уровня подписки.
- Name
language- Type
- string
- Description
Фильтрация по языку (ISO 639-1). По умолчанию
en— возвращает только английский и исключает другие языки — см. Язык и охват.
- Name
includeUpdates- Type
- boolean
- Description
Когда включено, обновлённые статьи повторно доставляются с
isUpdate=trueи меткой времениrevisedDate. Полезно для отслеживания исправлений статей или добавления контента после первоначальной публикации.
- Name
extended- Type
- boolean
- Description
(Устарело)
trueдля получения расширенной информации о статье (включаетsummary).
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)
},
)
Управление лимитами подключений: Если ваш уровень подписки ограничивает число параллельных WebSocket-подключений, вы можете использовать опцию takeover, чтобы автоматически закрывать самое старое подключение при попытке открыть новое сверх лимита. Это предотвращает ошибки подключения во время разработки или перезапусков приложения.
// 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)
)
По умолчанию takeover имеет значение false, что означает, что новые подключения будут отклонены, если вы достигли лимита. Включайте его во время разработки для удобства, но в продакшене лучше оставить отключённым для явного управления подключениями.
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": []
}
Вы можете держать подключение открытым и получать статьи в реальном времени без дополнительных запросов. По мере появления новых статей они отправляются напрямую в вашу функцию обратного вызова.