StockData News API

Global financial news with sentiment analysis

Operations 7

GET /news/all Get Financial News #
GET /news/similar/{uuid} Get Similar News Articles #
GET /news/uuid/{uuid} Get News Article By UUID #
GET /news/stats/intraday Get Entity News Stats Intraday #
GET /news/stats/aggregation Get Entity News Stats Aggregation #
GET /news/stats/trending Get Trending Entities #
GET /news/sources Get News Sources #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/stockdata-news-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

stockdata-news-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: StockData Entities News API
  description: StockData.org provides free real-time, intraday, and historical stock, forex, and cryptocurrency market data along with global financial news and sentiment analysis. The API delivers market data for US-listed stocks including OHLCV data, splits, dividends, and entity-level news sentiment from 5,000+ sources in 30+ languages. All endpoints require an api_token parameter.
  version: '1.0'
  contact:
    url: https://www.stockdata.org/
  termsOfService: https://www.stockdata.org/terms
servers:
- url: https://api.stockdata.org/v1
  description: Production Server
security:
- ApiToken: []
tags:
- name: News
  description: Global financial news with sentiment analysis
paths:
  /news/all:
    get:
      operationId: getFinancialNews
      summary: Get Financial News
      description: Get all the latest global financial news filtered by entities identified within articles, with sentiment analysis for each entity.
      tags:
      - News
      parameters:
      - name: api_token
        in: query
        required: true
        schema:
          type: string
        description: Your API token from the StockData dashboard.
      - name: symbols
        in: query
        required: false
        schema:
          type: string
        description: Filter news by comma-separated ticker symbols.
      - name: entity_types
        in: query
        required: false
        schema:
          type: string
        description: Filter by entity types (e.g., index, equity, etf).
      - name: industries
        in: query
        required: false
        schema:
          type: string
        description: Filter by industry classification.
      - name: countries
        in: query
        required: false
        schema:
          type: string
        description: Filter by country code.
      - name: sentiment_gte
        in: query
        required: false
        schema:
          type: number
          format: float
        description: Minimum sentiment score filter.
      - name: sentiment_lte
        in: query
        required: false
        schema:
          type: number
          format: float
        description: Maximum sentiment score filter.
      - name: search
        in: query
        required: false
        schema:
          type: string
        description: Full-text search query across article titles and descriptions.
      - name: language
        in: query
        required: false
        schema:
          type: string
        description: Filter by language code (e.g., en, de, fr).
      - name: page
        in: query
        required: false
        schema:
          type: integer
        description: Page number for pagination.
      - name: limit
        in: query
        required: false
        schema:
          type: integer
        description: Number of results per page (max 50).
      responses:
        '200':
          description: News articles returned successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NewsResponse'
        '401':
          description: Invalid or missing API token.
        '429':
          description: Rate limit exceeded.
  /news/similar/{uuid}:
    get:
      operationId: getSimilarNews
      summary: Get Similar News Articles
      description: Find articles similar to a specific article identified by its UUID, with relevance scores and entity data.
      tags:
      - News
      parameters:
      - name: uuid
        in: path
        required: true
        schema:
          type: string
        description: UUID of the reference article.
      - name: api_token
        in: query
        required: true
        schema:
          type: string
        description: Your API token from the StockData dashboard.
      - name: symbols
        in: query
        required: false
        schema:
          type: string
        description: Filter similar articles by ticker symbols.
      - name: language
        in: query
        required: false
        schema:
          type: string
        description: Filter by language code.
      responses:
        '200':
          description: Similar articles returned successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NewsResponse'
        '401':
          description: Invalid or missing API token.
        '404':
          description: Article not found.
  /news/uuid/{uuid}:
    get:
      operationId: getNewsByUuid
      summary: Get News Article By UUID
      description: Retrieve a specific news article by its unique identifier.
      tags:
      - News
      parameters:
      - name: uuid
        in: path
        required: true
        schema:
          type: string
        description: UUID of the article to retrieve.
      - name: api_token
        in: query
        required: true
        schema:
          type: string
        description: Your API token from the StockData dashboard.
      responses:
        '200':
          description: News article returned successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NewsArticle'
        '401':
          description: Invalid or missing API token.
        '404':
          description: Article not found.
  /news/stats/intraday:
    get:
      operationId: getNewsStatsIntraday
      summary: Get Entity News Stats Intraday
      description: Get an intraday time-series view of entity performance based on news sentiment, grouped by intervals.
      tags:
      - News
      parameters:
      - name: api_token
        in: query
        required: true
        schema:
          type: string
        description: Your API token from the StockData dashboard.
      - name: interval
        in: query
        required: false
        schema:
          type: string
          enum:
          - minute
          - hour
          - day
          - week
          - month
          - quarter
          - year
        description: Aggregation interval for the time series.
      - name: group_by
        in: query
        required: false
        schema:
          type: string
        description: Field to group results by (e.g., symbol).
      - name: symbols
        in: query
        required: false
        schema:
          type: string
        description: Filter by comma-separated ticker symbols.
      - name: sentiment_gte
        in: query
        required: false
        schema:
          type: number
          format: float
        description: Minimum sentiment score filter.
      - name: min_doc_count
        in: query
        required: false
        schema:
          type: integer
        description: Minimum number of articles required to include an entity.
      responses:
        '200':
          description: Intraday entity news stats returned successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NewsStatsResponse'
        '401':
          description: Invalid or missing API token.
  /news/stats/aggregation:
    get:
      operationId: getNewsStatsAggregation
      summary: Get Entity News Stats Aggregation
      description: Get a single-timeframe aggregation showing best and worst performing entities based on news sentiment.
      tags:
      - News
      parameters:
      - name: api_token
        in: query
        required: true
        schema:
          type: string
        description: Your API token from the StockData dashboard.
      - name: group_by
        in: query
        required: false
        schema:
          type: string
        description: Field to group results by.
      - name: symbols
        in: query
        required: false
        schema:
          type: string
        description: Filter by comma-separated ticker symbols.
      - name: sentiment_gte
        in: query
        required: false
        schema:
          type: number
          format: float
        description: Minimum sentiment score filter.
      - name: min_doc_count
        in: query
        required: false
        schema:
          type: integer
        description: Minimum number of articles required.
      responses:
        '200':
          description: Aggregated entity news stats returned successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NewsAggregationResponse'
        '401':
          description: Invalid or missing API token.
  /news/stats/trending:
    get:
      operationId: getTrendingEntities
      summary: Get Trending Entities
      description: Identify trending entities based on news volume and sentiment within a specified timeframe.
      tags:
      - News
      parameters:
      - name: api_token
        in: query
        required: true
        schema:
          type: string
        description: Your API token from the StockData dashboard.
      - name: group_by
        in: query
        required: false
        schema:
          type: string
        description: Field to group results by.
      - name: sentiment_gte
        in: query
        required: false
        schema:
          type: number
          format: float
        description: Minimum sentiment score filter.
      - name: date_from
        in: query
        required: false
        schema:
          type: string
          format: date-time
        description: Start date/time for the trending window.
      - name: date_to
        in: query
        required: false
        schema:
          type: string
          format: date-time
        description: End date/time for the trending window.
      - name: min_doc_count
        in: query
        required: false
        schema:
          type: integer
        description: Minimum number of articles required.
      responses:
        '200':
          description: Trending entities returned successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TrendingResponse'
        '401':
          description: Invalid or missing API token.
  /news/sources:
    get:
      operationId: getNewsSources
      summary: Get News Sources
      description: View all available news sources that can be used to filter other API requests. Sources span 5,000+ outlets in 30+ languages.
      tags:
      - News
      parameters:
      - name: api_token
        in: query
        required: true
        schema:
          type: string
        description: Your API token from the StockData dashboard.
      - name: distinct_domain
        in: query
        required: false
        schema:
          type: boolean
        description: Return only distinct domains.
      - name: language
        in: query
        required: false
        schema:
          type: string
        description: Filter sources by language code.
      - name: page
        in: query
        required: false
        schema:
          type: integer
        description: Page number for pagination.
      responses:
        '200':
          description: News sources returned successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SourcesResponse'
        '401':
          description: Invalid or missing API token.
components:
  schemas:
    EntityStats:
      type: object
      properties:
        entity_key:
          type: string
          description: Entity identifier (symbol or key).
        total_documents:
          type: integer
          description: Total number of articles mentioning this entity.
        sentiment_avg:
          type: number
          format: float
          description: Average sentiment score across all articles.
    TrendingResponse:
      type: object
      properties:
        meta:
          $ref: '#/components/schemas/Meta'
        data:
          type: array
          items:
            $ref: '#/components/schemas/TrendingEntity'
    TrendingEntity:
      type: object
      properties:
        entity_key:
          type: string
          description: Entity identifier.
        document_count:
          type: integer
          description: Number of articles mentioning this entity.
        sentiment_avg:
          type: number
          format: float
          description: Average sentiment score.
        relevance_score:
          type: number
          format: float
          description: Trending relevance score.
    NewsStatsResponse:
      type: object
      properties:
        meta:
          $ref: '#/components/schemas/Meta'
        data:
          type: object
          description: Date-keyed time series of entity stats.
    Highlight:
      type: object
      properties:
        highlight:
          type: string
          description: Highlighted text excerpt.
        sentiment:
          type: number
          format: float
          description: Sentiment score for this highlight.
        highlighted_in:
          type: string
          description: Article section where highlight appears.
    NewsArticle:
      type: object
      properties:
        uuid:
          type: string
          description: Unique identifier for the article.
        title:
          type: string
          description: Article headline.
        description:
          type: string
          description: Article summary or excerpt.
        keywords:
          type: string
          description: Keywords associated with the article.
        snippet:
          type: string
          description: Short snippet from the article body.
        url:
          type: string
          format: uri
          description: URL of the original article.
        image_url:
          type: string
          format: uri
          description: URL of the article's featured image.
        language:
          type: string
          description: Language code of the article.
        published_at:
          type: string
          format: date-time
          description: Publication timestamp.
        source:
          type: string
          description: News source domain.
        relevance_score:
          type: number
          format: float
          description: Relevance score for the query.
        entities:
          type: array
          items:
            $ref: '#/components/schemas/NewsEntity'
        similar:
          type: array
          items:
            $ref: '#/components/schemas/NewsArticle'
    NewsSource:
      type: object
      properties:
        source_id:
          type: string
          description: Unique source identifier.
        domain:
          type: string
          description: Source domain name.
        language:
          type: string
          description: Primary language of the source.
    Meta:
      type: object
      properties:
        found:
          type: integer
          description: Total number of records matching the query.
        returned:
          type: integer
          description: Number of records returned in this response.
        limit:
          type: integer
          description: Maximum records per page.
        page:
          type: integer
          description: Current page number.
    NewsEntity:
      type: object
      properties:
        symbol:
          type: string
          description: Entity ticker symbol.
        name:
          type: string
          description: Entity name.
        exchange:
          type: string
          description: Exchange name.
        exchange_long:
          type: string
          description: Exchange full name.
        mic_code:
          type: string
          description: Market identifier code.
        country:
          type: string
          description: Country code.
        type:
          type: string
          description: Entity type.
        industry:
          type: string
          description: Industry classification.
        match_score:
          type: number
          format: float
          description: Entity match confidence score.
        sentiment_score:
          type: number
          format: float
          description: Entity sentiment score for this article (-1 to 1).
        highlights:
          type: array
          items:
            $ref: '#/components/schemas/Highlight'
    SourcesResponse:
      type: object
      properties:
        meta:
          $ref: '#/components/schemas/Meta'
        data:
          type: array
          items:
            $ref: '#/components/schemas/NewsSource'
    NewsAggregationResponse:
      type: object
      properties:
        meta:
          $ref: '#/components/schemas/Meta'
        data:
          type: array
          items:
            $ref: '#/components/schemas/EntityStats'
    NewsResponse:
      type: object
      properties:
        meta:
          $ref: '#/components/schemas/Meta'
        data:
          type: array
          items:
            $ref: '#/components/schemas/NewsArticle'
  securitySchemes:
    ApiToken:
      type: apiKey
      in: query
      name: api_token
      description: API token obtained from the StockData dashboard.