Tiingo News API

The News API from Tiingo — 3 operation(s) for news.

Operations 3

GET /tiingo/news Get curated financial news articles #
GET /tiingo/news/bulk_download List available bulk news download files #
GET /tiingo/news/bulk_download/{id} Download a bulk news batch file #

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/tiingo-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

tiingo-news-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Tiingo News API
  version: 1.0.0
  description: 'Tiingo''s REST API for financial market data: end-of-day equity prices, IEX intraday, BOATS overnight equity data, consolidated equity realtime snapshots, crypto, crypto yield, forex, fundamentals, mutual fund and ETF fees, corporate actions, curated news, and asset search. Most endpoints return JSON by default and support CSV via the format parameter. Generated by API Evangelist from Tiingo''s published documentation (https://www.tiingo.com/documentation/) - Tiingo does not publish an OpenAPI itself.'
  termsOfService: https://www.tiingo.com/about/terms
  contact:
    name: Tiingo Support
    url: https://www.tiingo.com/support
    email: support@tiingo.com
  x-apievangelist:
    generated: '2026-07-22'
    method: generated
    source: https://apimedia.tiingo.com/dist/src_app_api_documentation_documentation_module_ts-es2015.f5eea3d64917e26bb724.js
servers:
- url: https://api.tiingo.com
security:
- apiTokenHeader: []
- apiTokenQuery: []
tags:
- name: News
paths:
  /tiingo/news:
    get:
      operationId: listNews
      summary: Get curated financial news articles
      tags:
      - News
      externalDocs:
        url: https://www.tiingo.com/documentation/news
      parameters:
      - name: tickers
        in: query
        required: false
        description: 'A comma-separated list of the tickers requested. When passing via GET parameter (not in URL), use a JSON array, otherwise use a comma-separated list. #Use the below format if querying directly in the URL https://api.tiingo.com/tiingo/news?tickers=aapl,googl #Otherwise, if passing GET parameters via a request library, use a JSON array like this: tickers : [''aapl'',''googl'']'
        schema:
          type: array
          items:
            type: string
      - name: source
        in: query
        required: false
        description: 'A comma-separated list of the tags requested. When passing via GET parameter (not in URL), use a JSON array, otherwise use a comma-separated list. #Use the below format if querying directly in the URL https://api.tiingo.com/tiingo/news?source=bloomberg.com,reuters.com #Otherwise, if passing GET parameters via a request library, use a JSON array like this: source : [''bloomberg.com'',''reuters.com'']'
        schema:
          type: array
          items:
            type: string
      - name: startDate
        in: query
        required: false
        description: If startDate or endDate is not null, historical data will be queried. This filter limits news stories to on or later than the publishedDate (>=). Parameter must be in YYYY-MM-DD format.
        schema:
          type: string
          format: date
      - name: endDate
        in: query
        required: false
        description: If startDate or endDate is not null, historical data will be queried. This filter limits news stories to on or less than the publishedDate (<=). Parameter must be in YYYY-MM-DD format.
        schema:
          type: string
          format: date
      - name: limit
        in: query
        required: false
        description: The maximum number of news objects to return in the array. The default is 100 and the max is 1000. This is maxed to 1,000 as any more than that tends to lead to longer wait times. If you would like this adjusted, please contact us at support@tiingo.com .
        schema:
          type: integer
      - name: offset
        in: query
        required: false
        description: 'This is a "pagination" variable that is often used alongside limit. It returns an array with the results shifted by "offset". For example, when limit is 0 you may get the following: 0. News Story A 1. News Story B 2. News Story C 3. News Story D When offset is "2" you will receive: 0. News Story C 1. News Story D 2. News Story E 3. News Story F This, when used alongside "limit" allows for pagination and more efficient queries.'
        schema:
          type: integer
      - name: sortBy
        in: query
        required: false
        description: The field can take either "publishedDate" or "crawlDate". The date field specified will be used to sort the results in descending order. The results can either be sorted by when the news outlet reported the publish time ("datePublished") or when our feeds came across is ("crawlDate"). Defaults to "publishedDate" if no value provided
        schema:
          type: string
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/NewsArticle'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/TooManyRequests'
  /tiingo/news/bulk_download:
    get:
      operationId: listNewsBulkFiles
      summary: List available bulk news download files
      tags:
      - News
      externalDocs:
        url: https://www.tiingo.com/documentation/news
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/NewsBulkFile'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/TooManyRequests'
  /tiingo/news/bulk_download/{id}:
    get:
      operationId: downloadNewsBulkFile
      summary: Download a bulk news batch file
      tags:
      - News
      externalDocs:
        url: https://www.tiingo.com/documentation/news
      parameters:
      - name: id
        in: path
        required: true
        description: The unique "id" that corresponds to the batch file you would like to download. If none is supplied, returns a list of the available batch files.
        schema:
          type: integer
      responses:
        '200':
          description: Successful response
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/TooManyRequests'
components:
  schemas:
    NewsArticle:
      type: object
      properties:
        id:
          type: integer
          description: Unique identifier specific to the news article.
        title:
          type: string
          description: Title of the news article.
        url:
          type: string
          description: URL of the news article.
        description:
          type: string
          description: Long-form descripton of the news story.
        publishedDate:
          type: string
          format: date-time
          description: The datetime the news story was published in UTC. This is usually reported by the news source and not by Tiingo. If the news source does not declare a published date, Tiingo will use the time the news story was discovered by our crawler farm.
        crawlDate:
          type: string
          format: date-time
          description: The datetime the news story was added to our database in UTC. This is always recorded by Tiingo and the news source has no input on this date. If you note a large gap between crawlDate and publishedDate, it means the news article was backfilled, which usually happens when we add a new data source or gain access to historical data archives.
        source:
          type: string
          description: The domain the news source is from.
        tickers:
          type: array
          items:
            type: string
          description: What tickers are mentioned in the news story using Tiingo's proprietary tagging algo.
        tags:
          type: array
          items:
            type: string
          description: Tags that are mapped and discovered by Tiingo using Tiingo's proprietary tagging algo.
    NewsBulkFile:
      type: object
      properties:
        id:
          type: integer
          description: Unique identifier specific to the bulk download file. Used to select which file to download.
        url:
          type: string
          description: 'A url you can use to directly download the batch file. NOTE : This url contains your Auth Token and is meant to be a "copy/paste" url for your convenience'
        filename:
          type: string
          description: The filename of the batch file.
        batchType:
          type: string
          description: 'Describes what kind of batch file this is. The value will either be: "base" or "incremental". base is an entire dump of the data and incremental is a partial dump of the data. This should be used in conjunction with the startDate and endDate parameters to identify the bounds of the data dump.'
        startDate:
          type: string
          format: date
          description: The end date that was used to select the News objects to generate the batch file. This is not inclusive. publishedDate < endDate.
        fileSizeCompressed:
          type: integer
          description: The size of the file in bytes compressed using gzip.
        fileSizeUncompressed:
          type: integer
          description: The size of the file in bytes uncompressed.
  responses:
    Unauthorized:
      description: Missing or invalid API token.
    TooManyRequests:
      description: Usage limit exceeded. Tiingo limits by hourly requests (reset every hour), daily requests (reset at midnight EST), and monthly bandwidth (reset the first of every month at midnight EST); there is no per-minute or per-second rate limit.
  securitySchemes:
    apiTokenHeader:
      type: apiKey
      in: header
      name: Authorization
      description: 'Pass your API token in the Authorization header as: Authorization: Token <your-token>.'
    apiTokenQuery:
      type: apiKey
      in: query
      name: token
      description: Pass your API token directly in the request URL via the token query parameter.
externalDocs:
  description: Tiingo API documentation
  url: https://www.tiingo.com/documentation/general/overview