finlight Logo

Saturday, June 20, 2026

Getting Started with the finlight Financial News API

Getting Started with the finlight Financial News API

Real-time financial news is messy. Dozens of sources, different formats, no structure, and no signal. finlight turns that firehose into clean, structured, AI-enriched data you can query in a single request, complete with sentiment and the companies each story is about.

This guide takes you from zero to your first API call in about five minutes. By the end you'll have pulled the latest news for a stock, read the response, and seen how to switch on a real-time stream.

What you get

finlight is a financial news API with four ways to consume the same enriched data:

  • REST. Query news on demand (this guide).
  • WebSocket. Stream articles in real time as they're published.
  • Webhooks. Have news pushed to your own endpoint.
  • MCP server. Let an AI assistant (Claude, ChatGPT) query the news for you.

Every article comes back structured and enriched with:

  • Sentiment (positive, neutral, or negative) plus a confidence score.
  • Company entities: tickers, ISIN, exchange listings, sector and industry.
  • Coverage in 9 languages and 13 categories (markets, economy, crypto, technology, and more).

Step 1: Get your API key

  1. Create a free account at app.finlight.me.
  2. Open the dashboard and generate an API key.
  3. Keep it somewhere safe. You'll send it on every request in the X-API-KEY header.

The free plan is REST-only and great for testing. See finlight.me/pricing for current limits and what each plan unlocks.

Step 2: Install the client (optional)

You can call the API with plain HTTP, but the official SDKs handle auth, retries, and types for you.

# TypeScript / Node.js
npm install finlight-client
# Python
pip install finlight-client

Prefer raw HTTP? Skip ahead. Every example below also shows cURL.

Step 3: Your first request

Let's fetch the latest articles about Apple (AAPL). This calls POST /v2/articles with a tickers filter.

# cURL
curl -X POST https://api.finlight.me/v2/articles \
  -H "X-API-KEY: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "tickers": ["AAPL"],
    "pageSize": 5
  }'
// TypeScript
import { FinlightApi } from 'finlight-client';

const client = new FinlightApi({ apiKey: 'YOUR_API_KEY' });

const response = await client.articles.fetchArticles({
  tickers: ['AAPL'],
  pageSize: 5,
});

console.log(`Got ${response.articles.length} articles`);
for (const article of response.articles) {
  console.log(article.publishDate, article.sentiment, article.title);
}
# Python
from finlight_client import FinlightApi, ApiConfig
from finlight_client.models import GetArticlesParams

client = FinlightApi(config=ApiConfig(api_key="YOUR_API_KEY"))

response = client.articles.fetch_articles(
    GetArticlesParams(tickers=["AAPL"], pageSize=5)
)

print(f"Got {len(response.articles)} articles")
for article in response.articles:
    print(article.publishDate, article.sentiment, article.title)

Step 4: Read the response

The response is a paginated envelope. Each article includes its source, headline, summary, and enrichment:

{
  "status": "ok",
  "page": 1,
  "pageSize": 5,
  "articles": [
    {
      "link": "https://www.example.com/apple-earnings",
      "title": "Apple beats expectations on services revenue",
      "summary": "Apple reported quarterly results above analyst estimates...",
      "source": "www.example.com",
      "publishDate": "2026-06-18T14:32:00.000Z",
      "language": "en",
      "sentiment": "positive",
      "confidence": "0.93",
      "images": ["https://www.example.com/img/apple.jpg"]
    }
  ]
}

Two flags let you ask for more when you need it:

  • includeContent: true returns the full scraped article text, not just the summary.
  • includeEntities: true returns the companies array (tickers, ISIN, exchange listings) for each article.

Tip: keep includeContent and includeEntities off for lightweight list views, and turn them on only when you need the detail. It keeps responses small and fast.

Step 5: Go real-time (when you're ready)

Polling is fine to start, but for live dashboards and trading signals you'll want news pushed the moment it's published. That's the WebSocket: same filters, no polling.

// TypeScript
import { FinlightApi } from 'finlight-client';

const client = new FinlightApi({ apiKey: 'YOUR_API_KEY' });

client.websocket.connect({ tickers: ['AAPL'] }, (article) => {
  console.log('New article:', article.sentiment, article.title);
});

WebSocket streaming is available on paid plans. See the WebSocket docs for the full setup.

Next steps

You've made your first call and seen the shape of the data. From here:

  • Read the full API docs for endpoints, parameters, and the WebSocket and webhook guides.
  • Learn advanced filtering. Combine tickers, countries, categories, and a query language to get exactly the news you want (post coming soon).
  • Compare plans when you're ready to move beyond the free tier.

Questions? Join the Discord or email info@finlight.me.

Start building for free →

finlight Quick Start: Financial News API in 5 Minutes