fintopic.

Finance Pulse API · v2.0.0

Financial news as structured, sourced data

Finance Pulse reads financial news as it is published and turns every article into short, dated facts with sentiment, tickers and a source, clustered into the developments the market is talking about.

Start in 60 secondsGet a free API key ↗

On this page
  1. What you get
  2. Quick start
  3. The data model
  4. Conventions
  5. What this data is, and what it is not
  6. Versions and changes

What you get

Every article the pipeline reads is broken into statements: one-sentence facts such as "Nvidia expects to grow at a strong pace again in 2027", each with its sentiment (bullish, bearish or neutral), importance (low, medium, high, ultra), the symbols and sector it concerns, the source URL and domain, the article's post time and, when the article has one, its image.

Statements that report the same development are clustered into topics: "30-year Treasury yield breaks 5%" holds 139 statements from 43 outlets. Topics are grouped into standing themes such as Central banks & rates or Energy. Every 2 hours the API ranks the developments the most outlets picked up.

This site, fintopic.news, is a front page built entirely on the same API.

Quick start

1. Get a key. Pick a plan on RapidAPI: the free plan is enough to try every endpoint. Then copy your X-RapidAPI-Key from the endpoint playground.

2. Make a request. The newest high-importance statements about Nvidia:

curl -G https://finance-pulse.p.rapidapi.com/v2/statements \
  --data-urlencode "symbol=NVDA" \
  --data-urlencode "importance_min=high" \
  --data-urlencode "limit=3" \
  -H "X-RapidAPI-Key: YOUR_RAPIDAPI_KEY" \
  -H "X-RapidAPI-Host: finance-pulse.p.rapidapi.com"
import requests

API = "https://finance-pulse.p.rapidapi.com"
HEADERS = {"X-RapidAPI-Key": "YOUR_RAPIDAPI_KEY", "X-RapidAPI-Host": "finance-pulse.p.rapidapi.com"}

r = requests.get(f"{API}/v2/statements", headers=HEADERS,
                 params={"symbol": "NVDA", "importance_min": "high", "limit": 3})
for s in r.json()["data"]:
    print(s["published_at"][:16], s["sentiment"], s["statement"], f"({s['source_domain']})")
const API = "https://finance-pulse.p.rapidapi.com";
const HEADERS = { "X-RapidAPI-Key": "YOUR_RAPIDAPI_KEY", "X-RapidAPI-Host": "finance-pulse.p.rapidapi.com" };

const r = await fetch(`${API}/v2/statements?symbol=NVDA&importance_min=high&limit=3`, { headers: HEADERS });
for (const s of (await r.json()).data) console.log(s.published_at.slice(0, 16), s.sentiment, s.statement);

3. Read the response. One statement, plus the snapshot block every v2 response carries:

Response · captured 2 Oct 2026 10:46 UTC
{
  "data": [
    {
      "id": "c3341069-59d6-562d-8a9e-935cdc514665",
      "statement": "Amazon is reportedly seeking investors for an $8 billion financing structure for Nvidia chips",
      "published_at": "2026-10-02T10:29:29Z",
      "indexed_at": "2026-10-02T10:42:04.715725Z",
      "sentiment": "bullish",
      "importance": "high",
      "source_type": "news",
      "source_url": "https://finance.yahoo.com/technology/ai/articles/amazon-reportedly-seeks-investors-8-102929408.html",
      "source_domain": "finance.yahoo.com",
      "image_url": "https://s.yimg.com/ny/mysterio/api/01795bc4f58861436819644f026638cbfdd2437e6e71782cc8c2e46b97cf9a8a/ynews/resizefill_w1200/https://media.zenfs.com/en/investorshub_458/35437a5a165ffeadb112d825c6043626.png",
      "symbols": ["AMZN", "NVDA"],
      "entities": [
        {
          "code": "AMZN",
          "kind": "equity",
          "name": "Amazon.com Inc",
          "exchange": "NASDAQ",
          "country": "USA"
        },
        {
          "code": "NVDA",
          "kind": "equity",
          "name": "NVIDIA Corporation",
          "exchange": "NASDAQ",
          "country": "USA"
        }
      ],
      "sectors": ["InformationTechnology"],
      "topic_id": "f14f34e4-ebdc-407a-a189-a1d6ad9134a6",
      "topic_name": "Amazon offloads $8 billion of Nvidia chips to investors",
      "theme_id": "7059ad1e-8ecb-52cc-99fd-c8457a534fda"
    },
    … 2 more
  ],
  "next_cursor": "WzE3OTA5MzM4MjAsImMyZmE0YWU3LWQwNDEtNWEwZi1iNzc1LWNkYjMxYmY2NTlmYyJd",
  "snapshot": {
    "built_at": "2026-10-02T10:45:28.835156+00:00",
    "anchor": "2026-10-02T10:45:28.835156+00:00",
    "window_start": "2026-08-01T10:45:28.835156+00:00",
    "lag_days": 0.0
  }
}

published_at is when the article was published; indexed_at is when the statement entered the API. topic_id links the fact to its development, and next_cursor continues the list. GET /v2/meta lists every accepted filter value.

Prefer Python, or an AI assistant? pip install finance-pulse gives you a Python client and an MCP server for Claude and Cursor: see Use Finance Pulse from Claude, Cursor or Python.

The data model

Level What it is Example Endpoints
Statement One extracted fact from one article "Brent fell 3% to $81" (reuters.com, bearish, high) /v2/statements, /v2/feed
Topic One development: the statements of many outlets about the same event "Oil prices slide to 2-week lows": 188 statements, 42 outlets /v2/topics, /v2/trending
Theme A standing subject that groups topics Energy /v2/themes

Counts on topics and themes (statements, sources) cover the 62-day window; total_statements is everything the topic ever held. sources always means distinct outlets (domains), not URLs.

Sentiment is a label on a statement. A symbol's, topic's or theme's sentiment is the count of its statements' labels, and score is (bullish − bearish) / statements. A bearish sentence that names NVDA and AMD counts for both.

Conventions

What this data is, and what it is not

Versions and changes

Data incidents (also in GET /v2/meta → incidents): 20 Aug – 16 Sep 2026, news ingestion outage; 26–27 Sep, statement extraction up to a day late; 29 Sep 07:20–10:40 UTC and 30 Sep 14:00–15:00 UTC, short processing delays (nothing missing).

Guides

/v2/statements

Grounding an LLM in today's market news

Short, dated, sourced facts make better model context than whole articles. Build a prompt block about any ticker in a few lines of Python.

6 min read →

/v2/feed

Never miss a statement: an alert stream with /v2/feed

A cursor feed in the order statements enter the API gives you every new fact exactly once, including late articles. Run it as an alert loop, and keep the log as your own point-in-time history.

6 min read →

/v2/series

A news-attention and sentiment series for any ticker

How much is the news talking about a company, and in what tone? Hourly or daily, zero-filled, in one request, plus the normalisation that makes it comparable.

7 min read →

/v2/symbols

Screening for unusual news attention

Which names is the news suddenly talking about? One request ranks every symbol by its change in mentions, outlets and tone, and one more does the same for sectors. Then filter it the way a quant should.

6 min read →

/v2/topics

Detecting developing stories

A story is moving when more outlets pick it up, faster. Rank developments by velocity, check their breadth, and follow one from first report to peak.

7 min read →

/v2/statements

Use Finance Pulse from Claude, Cursor or Python

One package gives you both a Python client for scripts and notebooks, and an MCP server so Claude, Cursor and other MCP clients can query the news directly.

5 min read →