Raw - Подписка на статьи
Raw WebSocket — это лёгкая и упрощённая альтернатива обогащённому WebSocket. Он доставляет основные данные статьи в реальном времени без сопоставления тикеров, обогащения ИИ или разрешения сущностей компаний. Это делает его идеальным для случаев, когда нужны быстрые базовые данные статей без накладных расходов на сложную обработку.
Ключевые отличия от обогащённого WebSocket:
- Эндпоинт:
wss://wss.finlight.me/raw(вместоwss://wss.finlight.me) - Без начальных данных: В отличие от обогащённого WebSocket, Raw WebSocket не отправляет самую свежую подходящую статью при подключении или переподключении. Вы будете получать только вновь опубликованные статьи после подключения.
- Без обогащения ИИ: Статьи доставляются без анализа тональности, сопоставления компаний или разрешения тикеров.
- Упрощённые параметры: Нет параметров
tickers,countries,includeEntitiesилиextended.
Модель статьи
Raw WebSocket возвращает упрощённую модель статьи только с основными полями. Сущности компаний и сгенерированные ИИ обогащения не включаются.
- 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
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
query- Type
- string
- Description
Поисковый запрос для поиска релевантных статей. Поддерживает фильтрацию на уровне полей для
source,titleиsummary. Расширенные запросы
- Name
sources- Type
- string[]
- Description
Фильтрация по одному или нескольким источникам. Напр.
["www.reuters.com", "www.cnbc.com"]. Допустимые значения см. в эндпоинте источников.
- Name
excludeSources- Type
- string[]
- Description
Исключает один или несколько источников. Напр.
["www.reuters.com", "www.cnbc.com"]. Допустимые значения см. в эндпоинте источников.
- Name
language- Type
- string
- Description
Фильтрация по языку (ISO 639-1). По умолчанию
en— возвращает только английский и исключает другие языки — см. Язык и охват.
- Name
includeUpdates- Type
- boolean
- Description
Когда включено, обновлённые статьи повторно доставляются с
isUpdate=trueи меткой времениrevisedDate.
Request
import { FinlightApi } from 'finlight-client'
const client = new FinlightApi(
{
apiKey: 'YOUR_API_KEY', // Replace with your API key
},
{
takeover: true, // WebSocket options
},
)
client.rawWebsocket.connect(
{
query: 'Nvidia',
language: 'en',
sources: ['www.reuters.com', 'www.cnbc.com'],
},
(article) => {
console.log('New article received:', article)
},
)
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",
"images": [
"https://www.example.com/image1.jpg",
"https://www.example.com/image2.jpg"
],
"countries": ["US"],
"categories": ["markets"]
}
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",
"images": [
"https://www.example.com/image1.jpg"
],
"countries": ["US"],
"categories": ["markets"]
}
Фильтрация query на уровне полей
Raw WebSocket поддерживает фильтрацию на уровне полей внутри параметра query для следующих полей:
source- фильтрация по источнику статьиtitle- фильтрация по содержимому заголовка статьиsummary- фильтрация по содержимому краткого описания статьи
Примеры:
query=title:Nvidia
query=summary:earnings +title:Tesla
query=source:www.reuters.com -crypto
Подробнее о синтаксисе запросов см. в руководстве Расширенное построение запросов.
Поведение подключения
- Аутентификация: Использует тот же заголовок
x-api-key, что и обогащённый WebSocket. Подробнее см. Основы WebSocket. - Ping/Pong: Применяется тот же механизм поддержания соединения. Отправляйте периодические сообщения
ping, чтобы поддерживать подключение. - Длительность подключения: Действует тот же лимит подключения в 2 часа. Реализуйте логику переподключения соответствующим образом.
- Без начальных данных: В отличие от обогащённого WebSocket, подключение или переподключение не возвращает самую свежую подходящую статью. После подключения доставляются только вновь опубликованные статьи.