Updated September 27, 2026

News API

Use Gloomberb's standalone market-news API in your own financial product.

Separate product

The News API is Gloomberb's market news for your own product, backend, model pipeline, or dashboard. It is not needed to use the app and is billed separately from Gloom Cloud.

Access levels

PlanPriceNews
Free keyFreeDelayed 12 hours.
Unlimited$99/mo or $999/yrReal-time.

Both get the same v1 response, including ticker links and source clusters, and neither is metered. Create or rotate a key from News API account.

Authentication

Every /v1/news request requires a News API key. Use either header style:

bash
Authorization: Bearer gloom_news_...

x-api-key: gloom_news_...

Check access state with:

bash
curl -s 'https://api.gloom.sh/v1/me' \
  -H 'Authorization: Bearer gloom_news_...'

/v1/me returns the plan, whether the key has full access, billing interval/status, and dataDelaySeconds.

The market data endpoints under /v1 (quotes, data, history) take Gloom keys instead; see the REST API.

List news

bash
curl -s 'https://api.gloom.sh/v1/news?feed=top&limit=25' \
  -H 'Authorization: Bearer gloom_news_...'
ParameterValues or exampleNotes
feedlatest, top, breaking, ticker, sector, topicDefaults to the service default when omitted. ticker is newest first by last published time.
limit25Clamped between 1 and 100.
cursorvalue from nextCursorUse for pagination.
tickersAAPL, AAPL:XNAS, 7203:XTKSComma-separated. Required for feed=ticker. Use exchange-qualified symbols for ambiguous tickers.
tickerTierprimary, related, anyDefaults depend on feed.
tickerRelationsdirect,parent,brand,counterparty,regulatory,competitorComma-separated relation filters.
topics / categoriesearnings,mnaCategory/topic filters.
sectorsinformation_technologySector filters from /v1/news/facets.
sourcessource keysInclude only specific sources.
excludeSourcessource keysExclude sources.
sentimentpositive, neutral, negativeStory sentiment filter.
minImportance80Minimum importance score.
minUrgency80Minimum urgency score.
breakingtrue or falseFilter breaking state.
since / untilISO date/timeFilters by last seen time.

Feed examples

bash
curl -s 'https://api.gloom.sh/v1/news?feed=ticker&tickers=NVDA:XNAS&tickerTier=primary' \
  -H 'x-api-key: gloom_news_...'

Story detail

bash
curl -s 'https://api.gloom.sh/v1/news/{storyId}' \
  -H 'Authorization: Bearer gloom_news_...'

Detail returns the story plus its source items. Top and breaking lists include source items inline.

Metadata

bash
curl -s 'https://api.gloom.sh/v1/news/sources' \
  -H 'Authorization: Bearer gloom_news_...'

curl -s 'https://api.gloom.sh/v1/news/facets' \
  -H 'Authorization: Bearer gloom_news_...'

Use these to populate filters in your app.

Response shape

json
{
  "items": [
    {
      "id": "story-id",
      "headline": "Company reports earnings beat",
      "summary": "...",
      "topic": "earnings",
      "topics": ["earnings"],
      "sentiment": "positive",
      "sectors": ["information_technology"],
      "scope": "single_ticker",
      "firstPublishedAt": "2026-05-07T11:59:00.000Z",
      "lastPublishedAt": "2026-05-07T12:00:00.000Z",
      "firstSeenAt": "2026-05-07T11:59:08.000Z",
      "lastSeenAt": "2026-05-07T12:00:00.000Z",
      "primaryUrl": "https://example.com/story",
      "primarySource": "example-wire",
      "scores": {
        "importance": 82,
        "urgency": 76,
        "marketImpact": 74,
        "novelty": 88,
        "confidence": 91
      },
      "flags": {
        "breaking": false,
        "developing": false,
        "provisional": false,
        "stale": false
      },
      "breaking": {
        "active": false,
        "provisional": false,
        "kind": null,
        "reason": null,
        "confidence": null,
        "firstDetectedAt": null,
        "lastMeaningfulAt": null,
        "confirmedAt": null,
        "expiresAt": null
      },
      "variantCount": 3,
      "sourceCount": 2,
      "sources": ["example-wire", "example-filings"],
      "tickerLinks": [
        {
          "symbol": "AAPL",
          "exchange": "XNAS",
          "canonicalTicker": "AAPL:XNAS",
          "relationType": "direct",
          "displayTier": "primary",
          "confidence": 0.96,
          "relevanceScore": 92,
          "impactScore": 74,
          "sentiment": "positive"
        }
      ],
      "items": [
        {
          "id": "item-id",
          "sourceKey": "example-wire",
          "sourceName": "Example Wire",
          "title": "Company reports earnings beat",
          "summary": "...",
          "url": "https://example.com/story",
          "publishedAt": "2026-05-07T12:00:00.000Z",
          "hasArticleText": true
        }
      ]
    }
  ],
  "nextCursor": "..."
}

Ticker errors

Ticker problems return 400 with a reasonCode:

reasonCodeFix
TICKERS_REQUIREDfeed=ticker needs tickers. The parameter is plural: tickers=AAPL.
AMBIGUOUS_TICKERSend an exchange-qualified symbol from candidates, such as AAPL:XNAS, or a provider suffix where supported.