Getting Started

Introduction

Our API provides global stock market data including real-time, intraday and historical data, plus near real-time and historical crypto and forex data.

Business + stock market news and analysis APIs are also available which can be used to create news feeds. News feed APIs can be filtered with numerous criteria, including symbol, type, exchange, industry, country and much more.

Our news data allow us to identify which stocks are trending (i.e. mentioned more frequently than normal) and identify best and worst performing stocks based on sentiment, all of which is available from our market news analysis endpoints.

We support over 5,000 news sources globally in over 30 languages, tracking over 150,000 entities every minute from over 70 markets worldwide.

To get started simply sign up and use your API token in any of the available API endpoints documented below for instant access.

If you have any questions or concerns, feel free to contact us.

Authentication

When you sign up for free you will find your API token on your dashboard. Simply add this to any of our API endpoints as a GET parameter to gain access. Examples of how this is done can be found below.

API Endpoints

Stock Data

Real-time stock quotes Available on: All plans

Endpoint

            
                GET https://api.stockdata.org/v1/data/quote HTTP/1.1
            
        

Get the latest quotes for all US stocks using this endpoint, updated live from trade reports. Also includes pre and post market data (see extended_hours parameter).

HTTP GET Parameters

name required description
api_token true Your API token which can be found on your account dashboard.
symbols true Specify symbol(s) to return data for. See limits on symbols per request on our pricing page.
Example: symbols=AAPL,TSLA,MSFT
extended_hours false Include pre and post market data when set to true.
key_by_ticker false Key each quote by the ticker/symbol.
include_metadata false Optionally include/exclude metadata with each quote. Setting this to false may slightly improve response times.
Default: true

Response Objects

name description
meta > requested The number of symbols requested.
meta > returned The number of symbols returned.
data > ticker The symbol/ticker of the quote.
data > name The name of the stock.
data > exchange_short The listing exchange of the stock (short code).
data > exchange_long The listing exchange of the stock (full name).
data > mic_code The exchanges ISO 10383 market identifier code.
data > currency Currency of the stock.
data > price Last trade price.
data > day_high Highest trade price that day.
data > day_low Lowest trade price that day.
data > day_open Opening price.
data > 52_week_high Highest trade price in the past 52 weeks.
data > 52_week_low Lowest trade price in the past 52 weeks.
data > market_cap Market cap of the stock.
data > previous_close_price Previous close price.
data > previous_close_price_time Time of the previous close price (local time).
data > day_change Percentage difference between price and previous_close_price.
data > volume Total of all trades for the stock.
data > is_extended_hours_price Boolean to identify if the quote is provided from extended hours data.
data > last_trade_time The time the last trade was identified (local time).

If no results are found, the data object will be empty.

Example Request

            
                GET https://api.stockdata.org/v1/data/quote?symbols=AAPL%2CTSLA%2CMSFT&api_token=YOUR_API_TOKEN
            
        

Example Response

            
                {
    "meta": {
        "requested": 3,
        "returned": 3
    },
    "data": [
        {
            "ticker": "TSLA",
            "name": "Tesla Inc",
            "exchange_short": "NASDAQ",
            "exchange_long": "NASDAQ Stock Exchange",
            "mic_code": "XNAS",
            "currency": "USD",
            "price": 265.11,
            "day_high": 275.52,
            "day_low": 262.54,
            "day_open": 266.15,
            "52_week_high": 414.5,
            "52_week_low": 206.86,
            "market_cap": 266379952128,
            "previous_close_price": 268.27,
            "previous_close_price_time": "2022-09-29T16:00:00.000000",
            "day_change": -1.19,
            "volume": 1453463,
            "is_extended_hours_price": false,
            "last_trade_time": "2022-09-30T16:00:00.000000"
        },
        {
            "ticker": "AAPL",
            "name": "Apple Inc",
            "exchange_short": "NASDAQ",
            "exchange_long": "NASDAQ Stock Exchange",
            "mic_code": "XNAS",
            "currency": "USD",
            "price": 138.32,
            "day_high": 143.1,
            "day_low": 138,
            "day_open": 141.23,
            "52_week_high": 182.94,
            "52_week_low": 129.04,
            "market_cap": 2267364458496,
            "previous_close_price": 142.59,
            "previous_close_price_time": "2022-09-29T16:00:00.000000",
            "day_change": -3.09,
            "volume": 2260449,
            "is_extended_hours_price": false,
            "last_trade_time": "2022-09-30T16:00:00.000000"
        },
        {
            "ticker": "V",
            "name": "Visa Inc",
            "exchange_short": "NYSE",
            "exchange_long": "New York Stock Exchange",
            "mic_code": "XNYS",
            "currency": "USD",
            "price": 177.83,
            "day_high": 182.92,
            "day_low": 177.61,
            "day_open": 179.96,
            "52_week_high": 236.96,
            "52_week_low": 174.83,
            "market_cap": null,
            "previous_close_price": 180.1,
            "previous_close_price_time": "2022-09-29T15:59:58.000000",
            "day_change": -1.28,
            "volume": 341575,
            "is_extended_hours_price": false,
            "last_trade_time": "2022-09-30T16:00:00.000000"
        }
    ]
}
            
        

Intraday data Available on: All plans

Endpoint

            
                GET https://api.stockdata.org/v1/data/intraday HTTP/1.1
            
        

Get the latest intraday data for all US stocks using this endpoint, updated live from trade reports. Also includes pre and post market data (see extended_hours parameter). You can also obtain 5+ years of historical intraday data using this endpoint. Note that historical intraday data is not currently split or dividend adjusted.

HTTP GET Parameters

name required description
api_token true Your API token which can be found on your account dashboard.
symbols true Specify symbol(s) to return data for. See limits on symbols per request on our pricing page.
Example: symbols=AAPL
interval false Specify the interval at which you want to retrieve data.
Options: minute | hour | day | week | month | quarter | year
Default interval=minute

IMPORTANT: the max range for minute interval is 7 days and 180 days for the hour interval due to these intervals retrieving a lot of data. If the range from the date_from and date_to parameters is larger than these limits, the max interval will be applied starting at the date_from parameter. If the date parameters are omitted the max range will be applied.
sort false Specify the sort order by date.
Options: asc | desc
Default desc
date_from false Find all data after the specified date. Supported formats include: Y-m-d | Y-m | Y.
Examples: 2022-10-03 | 2022-10 | 2022
date_to false Find all data before the specified date. Supported formats include: Y-m-d | Y-m | Y.
Examples: 2022-10-03 | 2022-10 | 2022
date false Find all data on the specified date. Supported formats include: Y-m-d.
Example: 2022-10-03
extended_hours false Include pre and post market data when set to true.
key_by_date false Key each result by date/time.
key_by_ticker false Key each quote by the ticker/symbol.

Response Objects

name description
meta > date_from Date that data was collected from.
meta > date_to Date that data was collected to. This will be overridden if the interval max period is exceeded.
meta > max_period_days Max period in days depending on the interval. Will return null if no max period is specified for the interval.
data > date Date of the related data (local time).
data > ticker The symbol/ticker of the quote.
data > data > open Open price for the specified date/time range.
data > data > high Highest price for the specified date/time range.
data > data > low Lowest price for the specified date/time range.
data > data > close Close price for the specified date/time range.
data > data > volume Trading volume for the specified date/time range.
data > data > is_extended_hours Specifies if the open price in the time frame is a pre/post trading hours price. Mainly useful for the minute interval.

If no results are found, the data object will be empty.

Example Request

            
                GET https://api.stockdata.org/v1/data/intraday?symbols=AAPL&api_token=YOUR_API_TOKEN
            
        

Example Response

            
                {
    "meta": {
        "date_from": "2022-09-30",
        "date_to": "2022-10-03",
        "max_period_days": 7
    },
    "data": [
        {
            "date": "2022-09-30T16:00:00.000Z",
            "ticker": "AAPL",
            "data": {
                "open": 138.32,
                "high": 138.34,
                "low": 138,
                "close": 138.32,
                "volume": 1342,
                "is_extended_hours": false
            }
        },
        {
            "date": "2022-09-30T15:59:00.000Z",
            "ticker": "AAPL",
            "data": {
                "open": 138.25,
                "high": 138.46,
                "low": 138.12,
                "close": 138.43,
                "volume": 106379,
                "is_extended_hours": false
            }
        },
        {
            "date": "2022-09-30T15:58:00.000Z",
            "ticker": "AAPL",
            "data": {
                "open": 138.26,
                "high": 138.34,
                "low": 138.21,
                "close": 138.25,
                "volume": 57453,
                "is_extended_hours": false
            }
        },
        {
            "date": "2022-09-30T15:57:00.000Z",
            "ticker": "AAPL",
            "data": {
                "open": 138.32,
                "high": 138.34,
                "low": 138.11,
                "close": 138.28,
                "volume": 71829,
                "is_extended_hours": false
            }
        },
        {
            "date": "2022-09-30T15:56:00.000Z",
            "ticker": "AAPL",
            "data": {
                "open": 138.43,
                "high": 138.43,
                "low": 138.2,
                "close": 138.32,
                "volume": 48160,
                "is_extended_hours": false
            }
        },
        ...
    ]
}
            
        

End-of-day historical data Available on: All plans

Endpoint

            
                GET https://api.stockdata.org/v1/data/eod HTTP/1.1
            
        

Get 40+ years of historical end of day data for 70+ exchanges, adjusted for splits.
This endpoint also supports crypto and forex history.

HTTP GET Parameters

name required description
api_token true Your API token which can be found on your account dashboard.
symbols true Specify symbol to return data for.
Example: symbols=AAPL
sort false Specify the sort order by date.
Options: asc | desc
Default desc
date_from false Find all data after the specified date. Supported formats include: Y-m-d | Y-m | Y.
Examples: 2022-10-03 | 2022-10 | 2022
date_to false Find all data before the specified date. Supported formats include: Y-m-d | Y-m | Y.
Examples: 2022-10-03 | 2022-10 | 2022
date false Find all data on the specified date. Supported formats include: Y-m-d.
Example: 2022-10-03
key_by_date false Key each result by date/time.

Response Objects

name description
meta > ticker The symbol/ticker of the history data.
meta > name The symbol/ticker of the history data.
meta > exchange > exchange_short The listing exchange of the stock (short code).
meta > exchange > exchange_long The listing exchange of the stock (full name).
meta > exchange > mic_code The exchanges ISO 10383 market identifier code.
meta > exchange > country Country of the symbol/ticker listing exchange.
meta > exchange > timezone_name Timezone of the symbol/ticker listing exchange.
data > date Date of the related data.
data > open Open price for the specified date/time range.
data > high Highest price for the specified date/time range.
data > low Lowest price for the specified date/time range.
data > close Close price for the specified date/time range.
data > volume Trading volume for the specified date/time range.

If no results are found, the data object will be empty.

Example Request

            
                GET https://api.stockdata.org/v1/data/eod?symbols=AAPL&api_token=YOUR_API_TOKEN
            
        

Example Response

            
                {
    "meta": {
        "ticker": "AAPL",
        "name": "Apple Inc",
        "exchange": {
            "exchange_short": "NASDAQ",
            "exchange_long": "NASDAQ Stock Exchange",
            "mic_code": "XNAS",
            "country": "us",
            "timezone_name": "America/New_York"
        },
        "found": 10542,
        "returned": 10542
    },
    "data": [
        {
            "date": "2022-09-30T16:00:00.000000Z",
            "open": 141.28,
            "high": 143.1,
            "low": 138,
            "close": 138.2,
            "volume": 124925274
        },
        {
            "date": "2022-09-29T16:00:00.000000Z",
            "open": 146.1,
            "high": 146.72,
            "low": 140.68,
            "close": 142.48,
            "volume": 128138237
        },
        {
            "date": "2022-09-28T16:00:00.000000Z",
            "open": 147.64,
            "high": 150.64,
            "low": 144.84,
            "close": 149.84,
            "volume": 146691387
        },
        {
            "date": "2022-09-27T16:00:00.000000Z",
            "open": 152.74,
            "high": 154.72,
            "low": 149.95,
            "close": 151.76,
            "volume": 84442741
        },
        {
            "date": "2022-09-26T16:00:00.000000Z",
            "open": 149.66,
            "high": 153.77,
            "low": 149.64,
            "close": 150.77,
            "volume": 93339409
        },
        ...
    ]
}
            
        

End-of-day multiple Available on: All plans

Endpoint

            
                GET https://api.stockdata.org/v1/data/eod/multiple HTTP/1.1
            
        

Get end-of-day data based on a specific date, or omit the date parameter to get the latest value available.
This endpoint also supports crypto and forex history.

The symbol limits for this endpoint are the same as the real-time quote endpoint.

HTTP GET Parameters

name required description
api_token true Your API token which can be found on your account dashboard.
symbols true Specify symbols to return data for.
Example: symbols=AAPL,TSLA,MSFT
date false Find data on the specified date. Supported formats include: Y-m-d.
Example: 2022-10-03

Response Objects

name description
meta > requested The number of symbols requested.
meta > returned The number of symbols requested.
data > ticker Ticker of the related data.
data > date Date of the related data.
data > open Open price for the specified date/time range.
data > high Highest price for the specified date/time range.
data > low Lowest price for the specified date/time range.
data > close Close price for the specified date/time range.
data > volume Trading volume for the specified date/time range.

If no results are found, the data object will be empty.

Example Request

            
                GET https://api.stockdata.org/v1/data/eod/multiple?symbols=AAPL%2CTSLA%2CMSFT&api_token=YOUR_API_TOKEN
            
        

Example Response

            
                {
    "meta": {
        "found": 3,
        "returned": 3
    },
    "data": [
        {
            "symbol": "AAPL",
            "date": "2022-09-30T16:00:00.000000Z",
            "open": 141.28,
            "high": 143.1,
            "low": 138,
            "close": 138.2,
            "volume": 124925274
        },
        {
            "symbol": "MSFT",
            "date": "2022-09-30T16:00:00.000000Z",
            "open": 238.29,
            "high": 240.54,
            "low": 232.73,
            "close": 232.9,
            "volume": 35694832
        },
        {
            "symbol": "TSLA",
            "date": "2022-09-30T16:00:00.000000Z",
            "open": 266.15,
            "high": 275.57,
            "low": 262.47,
            "close": 265.25,
            "volume": 67726598
        }
    ]
}
            
        

Crypto and Forex Data

Real-time crypto and forex quotes Available on: All plans

Endpoint

            
                GET https://api.stockdata.org/v1/data/currency/latest HTTP/1.1
            
        

Get the latest crypto and forex quotes, near real time.

HTTP GET Parameters

name required description
api_token true Your API token which can be found on your account dashboard.
symbols true Specify symbol(s) to return data for. See limits on symbols per request on our pricing page.
Example: symbols=BTCUSD,USDGBP

Response Objects

name description
meta > requested The number of symbols requested.
meta > returned The number of symbols returned.
data > symbol The symbol of the currency quote.
data > price Last trade price.
data > day_open Opening price.
data > day_high Highest trade price that day.
data > day_low Lowest trade price that day.
data > 52_week_high Highest trade price in the past 52 weeks.
data > 52_week_low Lowest trade price in the past 52 weeks.
data > change_percent Percentage difference between price and previous_close_price.
data > previous_close_price Previous close price.
data > volume Total of all trades for the currency (crypto only).
data > market_cap Market cap of the currency (crypto only).
data > last_update The time the last time the quote was updated.

If no results are found, the data object will be empty.

Example Request

            
                GET https://api.stockdata.org/v1/data/currency/latest?symbols=BTCUSD%2CUSDGBP&api_token=YOUR_API_TOKEN
            
        

Example Response

            
                {
    "meta": {
        "requested": 2,
        "returned": 2
    },
    "data": [
        [
            {
                "symbol": "BTCUSD",
                "price": 19201.854,
                "day_open": 19039.137,
                "day_high": 19278.645,
                "day_low": 19039.137,
                "52_week_high": 68789.625,
                "52_week_low": 17708.623,
                "change_percent": -0.389255,
                "previous_close_price": 19039.137,
                "volume": 24850927616,
                "market_cap": 368056074240,
                "last_update": "2022-10-03T08:58:00.000000Z"
            }
        ],
        [
            {
                "symbol": "USDGBP",
                "price": 0.89203,
                "day_open": 0.89409,
                "day_high": 0.90198,
                "day_low": 0.88693,
                "52_week_high": 0.96348,
                "52_week_low": 0.722857,
                "change_percent": -0.395277,
                "previous_close_price": 0.89557,
                "volume": 0,
                "market_cap": 0,
                "last_update": "2022-10-03T08:58:22.000000Z"
            }
        ]
    ]
}
            
        

EOD crypto and forex data Available on: All plans

End of day crypto and forex data is available from the stock end-of-day data endpoint.

News Feeds

Finance & Market News Available on: All plans

Endpoint

            
                GET https://api.stockdata.org/v1/news/all HTTP/1.1
            
        

Get all the latest global financial news and filter by entities identified within articles to build concise news feeds. Also provided is analysis of each entity identified in articles. Note that not every article may have entities identified. To retrieve all news for articles with identified entities, use the parameter must_have_entities, or specify any of the entity params such as symbols or exchanges as defined below to produce more concise results.

All news dates are returned as UTC +0.

HTTP GET Parameters

name required description
api_token true Your API token which can be found on your account dashboard.
symbols false Specify entity symbol(s) which have been identified within the article. Find entity symbols in our entity search endpoint.
Example: symbols=TSLA,AMZN,MSFT
exchanges false Specify exchange(s) of entities which have been identified within the article. Find exchanges in our exchanges metadata endpoint.
Example: exchanges=NASDAQ,NYSE
entity_types false Specify the type of entities which have been identified within the article. Find entity types in our entity type metadata endpoint.
Example: entity_types=index,equity
industries false Specify the industries of entities which have been identified within the article. Find entity types in our entity industry metadata endpoint.
Example: industries=Technology,Industrials
countries false Specify the country of the exchange of which entities have been identified within the article. Find countries as part of our entity exchanges metadata endpoint.
Example: countries=us,ca
sentiment_gte false Use this to find all articles with entities with a sentiment_score of greater than or equal to x.
Example: sentiment_gte=0 - this will find all articles which are neutral or positive

Sentiment is between -1 and +1. Anything 0 = neutral, above 0 = positive, below 0 = negative. The higher or lower the sentiment score the more positive or negative it is identified as.
sentiment_lte false Use this to find all articles with entities with a sentiment_score of less than or equal to x.
Example: sentiment_lte=0 - this will find all articles which are neutral or negative
min_match_score false Use this to find all articles with entities with a match_score of geater than or equal to min_match_score.
filter_entities false By default all entities for each article are returned - by setting this to true, only the relevant entities to your query will be returned with each article. For example, if you set symbols=TSLA and filter_entities=true, only "TSLA" entities will be returned with the articles.
Default: false
must_have_entities false By default all articles are returned, set this to true to ensure that at least one entity has been identified within the article.
Default: false
group_similar false Group similar articles to avoid displaying multiple articles on the same topic/subject.
Default: true
search false Use the search as a basic search tool by entering regular search terms or it has more advanced usage to build search queries:
+ signifies AND operation
| signifies OR operation
- negates a single token
" wraps a number of tokens to signify a phrase for searching
* at the end of a term signifies a prefix query
( and ) signify precedence
To use one of these characters literally, escape it with a preceding backslash (\).
This searches the full body of the text and the title.

Example: "ipo" -nasdaq (searches for articles which must include the string "ipo" but articles must NOT mention Nasdaq.)

For more advanced query examples, see our API Examples section.
domains false Comma separated list of domains to include. List of domains can be obtained through our Sources endpoint, found further down this page.
Example: adweek.com,adage.com
exclude_domains false Comma separated list of domains to exclude
source_ids false Comma separated list of source_ids to include. List of source_ids can be obtained through our Sources endpoint, found further down this page.
Example: adweek.com-1,adage.com-1
exclude_source_ids false Comma separated list of source_ids to exclude.
language false Comma separated list of languages to include. Default is all.
Click here for a list of supported languages.
Examples: en,es (English + Spanish)
published_before false Find all articles published before the specified date. Supported formats include: Y-m-d\TH:i:s | Y-m-d\TH:i | Y-m-d\TH | Y-m-d | Y-m | Y.
Examples: 2022-10-03T09:00:06 | 2022-10-03T09:00 | 2022-10-03T09 | 2022-10-03 | 2022-10 | 2022
published_after false Find all articles published after the specified date. Supported formats include: Y-m-d\TH:i:s | Y-m-d\TH:i | Y-m-d\TH | Y-m-d | Y-m | Y.
Examples: 2022-10-03T09:00:06 | 2022-10-03T09:00 | 2022-10-03T09 | 2022-10-03 | 2022-10 | 2022
published_on false Find all articles published on the specified date. Supported formats include: Y-m-d.
Examples: 2022-10-03
sort false Sort by published_on, entity_match_score, entity_sentiment_score or relevance_score (only available when used in conjunction with search). Default is published_at unless search is used and sorting by published_at is not included, in which case relevance_score is used.
When using entity_match_score, entity_sentiment_score this will sort by the average of the filtered entities (filter_entities does not need to be applied for this).
sort_order false Sort order of the sort parameter. NOTE: this can only be used with sort = entity_match_score or entity_sentiment_score.
Options: desc | asc
Default: desc
limit false Specify the number of articles you want to return in the request. The maximum limit is based on your plan. The default limit is the maximum specified for your plan.
page false Use this to paginate through the result set. Default is 1. Note that the max result set can't exceed 20,000. For example if your limit is 50, the max page you can have is 400 (50 * 400 = 20,000).
Example: page=2

Response Objects

name description
meta > found The number of articles found for the request.
meta > returned The number of articles returned on the page. This is useful to determine the end of the result set as if this is lower than limit, there are no more articles after this page.
meta > limit The limit based on the limit parameter.
meta > page The page number based on the page parameter.
data > uuid The unique identifier for an article in our system. Store this and use it to find specific articles using our single article endpoint.
data > title The article title.
data > description The article meta description.
data > keywords The article meta keywords.
data > snippet A short snippet of the article body.
data > url The URL to the article.
data > image_url The URL to the article image.
data > language The language of the source.
data > published_at The datetime the article was published.
data > source The domain of the source.
data > relevance_score Relevance score based on the search parameter. If the search parameter is not used, this will be null.
data > entities > symbol Symbol of the identified entity.
data > entities > name Name of the identified entity.
data > entities > exchange Exchange identifier of the identified entity.
data > entities > exchange_long Exchange name of the identified entity.
data > entities > country Exchange country of the identified entity.
data > entities > type Type of the identified entity.
data > entities > industry Industry of the identified entity.
data > entities > match_score The overall strength of the matching for the identified entity.
data > entities > sentiment_score Average sentiment of all highlighted text found for the identified entity.
data > entities > highlights > highlight Snippet of text from the article where the entity has been identified.
data > entities > highlights > sentiment The sentiment of the highlighed text.
data > entities > highlights > highlighted_in Where the highlight was found (title | main_text).
data > similar Array of news articles which are very similar to the main article.

If no results are found, the data object will be empty.

Example Request

            
                GET https://api.stockdata.org/v1/news/all?symbols=TSLA%2CAMZN%2CMSFT&filter_entities=true&language=en&api_token=YOUR_API_TOKEN
            
        

Example Response

            
                {
    "meta": {
        "found": 70975,
        "returned": 3,
        "limit": 3,
        "page": 1
    },
    "data": [
        {
            "uuid": "d4cd32b6-616f-46fa-a13c-1ad28630a97d",
            "title": "Markets Remain Under Pressure",
            "description": "Stocks Analysis by Michael Kramer covering: S&P 500, Invesco QQQ Trust, Alphabet Inc Class A, iShares TIPS Bond ETF. Read Michael Kramer's latest article on Investing.com",
            "keywords": "",
            "snippet": "US500 -1.51% Add to/Remove from Watchlist QQQ -1.70% Add to/Remove from Watchlist GOOGL -1.82% Add to/Remove from Watchlist TIP -0.68% Add to/Remove from Watchl...",
            "url": "https://www.investing.com/analysis/markets-remain-under-pressure-200630559",
            "image_url": "https://i-invdn-com.investing.com/redesign/images/seo/investingcom_analysis_og.jpg",
            "language": "en",
            "published_at": "2022-10-03T07:32:00.000000Z",
            "source": "investing.com",
            "relevance_score": null,
            "entities": [
                {
                    "symbol": "TSLA",
                    "name": "Tesla, Inc.",
                    "exchange": "NASDAQ",
                    "exchange_long": "NASDAQ Stock Exchange",
                    "country": "us",
                    "type": "equity",
                    "industry": "Consumer Cyclical",
                    "match_score": 23.99003,
                    "sentiment_score": 0.1196,
                    "highlights": [
                        {
                            "highlight": "Shopify Daily Chart\n\nTesla\n\nTesla (NASDAQ: ) has surprisingly held up very well throughout most of the carnage, and the company should be announcing third-quarter deliveries today. But upward momentum is broken. The stock has stalled and fallen below an uptrend, leading to the stock falling to around $246 and filling the gap.",
                            "sentiment": -0.5325,
                            "highlighted_in": "main_text"
                        },
                        {
                            "highlight": "Tesla Inc Daily Chart\n\nAlphabet\n\nAlphabet (NASDAQ: ) has struggled and has fallen below support at $95. While the stock doesn’t look great over the short-term, the long-term outlook remains strong, in my opinion, and so even if the shares should fall back to, say, $83 and fill the gap, I do not think the long-term prospects have been damaged.",
                            "sentiment": 0.7717,
                            "highlighted_in": "main_text"
                        }
                    ]
                }
            ],
            "similar": []
        },
        {
            "uuid": "fadafabd-2ef5-40d9-bdad-1410bcafbb49",
            "title": "Want to invest like Cathie Wood? Use these 3 principles",
            "description": "ARK Invest's strategy emphasizes the power of innovation, even if it's risky and pricey to invest in.",
            "keywords": "",
            "snippet": "You’re reading a free article with opinions that may differ from The Motley Fool’s Premium Investing Services. Become a Motley Fool member today to get inst...",
            "url": "https://www.fool.com.au/2022/10/03/want-to-invest-like-cathie-wood-use-these-3-principles-usfeed/",
            "image_url": "https://www.fool.com.au/wp-content/uploads/2021/09/alligator-16_9.jpg",
            "language": "en",
            "published_at": "2022-10-03T07:00:00.000000Z",
            "source": "fool.com.au",
            "relevance_score": null,
            "entities": [
                {
                    "symbol": "TSLA",
                    "name": "Tesla, Inc.",
                    "exchange": "NASDAQ",
                    "exchange_long": "NASDAQ Stock Exchange",
                    "country": "us",
                    "type": "equity",
                    "industry": "Consumer Cyclical",
                    "match_score": 21.67862,
                    "sentiment_score": 0.632933,
                    "highlights": [
                        {
                            "highlight": "Between its holdings in lesser-known businesses with big potential, like Ginkgo Bioworks (NYSE: DNA), and its investments in more familiar names like Tesla (NASDAQ: TSLA), there's a lot to appreciate about Wood's approach to buying stocks.",
                            "sentiment": 0.7902,
                            "highlighted_in": "main_text"
                        },
                        {
                            "highlight": "A month before, in late July, Wood had set an ambitious price target: Tesla shares would be worth $4,600 by 2026. That means within three and a half years, she anticipated that shares would grow by around 416%.",
                            "sentiment": 0.8126,
                            "highlighted_in": "main_text"
                        },
                        {
                            "highlight": "For example, in the first quarter of 2022, she bought shares of Tesla on numerous occasions. At the time, Tesla's trailing 12-month price-to-earnings (P/E) ratio was between 343 and 219. For reference, the market's average P/E since 1990 is a little over 23, so Tesla's valuation was (and still is) on the very high side in comparison.",
                            "sentiment": 0.296,
                            "highlighted_in": "main_text"
                        }
                    ]
                }
            ],
            "similar": []
        },
        ...
    ]
}
            
        

Similar News Available on: All plans

Endpoint

            
                GET https://api.stockdata.org/v1/news/similar/uuid HTTP/1.1
            
        

Use this endpoint to find similar stories to a specific article based on its UUID.

HTTP GET Parameters

name required description
api_token true Your API token which can be found on your account dashboard.
symbols false Specify entity symbol(s) which have been identified within the article. Find entity symbols in our entity search endpoint.
Example: symbols=TSLA,AMZN,MSFT
exchanges false Specify exchange(s) of entities which have been identified within the article. Find exchanges in our exchanges metadata endpoint.
Example: exchanges=NASDAQ,NYSE
entity_types false Specify the type of entities which have been identified within the article. Find entity types in our entity type metadata endpoint.
Example: entity_types=index,equity
industries false Specify the industries of entities which have been identified within the article. Find entity types in our entity industry metadata endpoint.
Example: industries=Technology,Industrials
countries false Specify the country of the exchange of which entities have been identified within the article. Find countries as part of our entity exchanges metadata endpoint.
Example: countries=us,ca
sentiment_gte false Use this to find all articles with entities with a sentiment_score of greater than or equal to x.
Example: sentiment_gte=0 - this will find all articles which are neutral or positive
sentiment_lte false Use this to find all articles with entities with a sentiment_score of less than or equal to x.
Example: sentiment_lte=0 - this will find all articles which are neutral or negative
filter_entities false By default all entities for each article are returned - by setting this to true, only the relevant entities to your query will be returned with each article. For example, if you set symbols=TSLA and filter_entities=true, only "TSLA" entities will be returned with the articles.
Default: false
must_have_entities false By default all articles are returned, set this to true to ensure that at least one entity has been identified within the article.
Default: false
group_similar false Group similar articles to avoid displaying multiple articles on the same topic/subject.
Default: true
domains false Comma separated list of domains to include. List of domains can be obtained through our Sources endpoint, found further down this page.
Example: adweek.com,adage.com
exclude_domains false Comma separated list of domains to exclude
source_ids false Comma separated list of source_ids to include. List of source_ids can be obtained through our Sources endpoint, found further down this page.
Example: adweek.com-1,adage.com-1
exclude_source_ids false Comma separated list of source_ids to exclude.
language false Comma separated list of languages to include. Default is all.
Click here for a list of supported languages.
Examples: en,es (English + Spanish)
published_before false Find all articles published before the specified date. Supported formats include: Y-m-d\TH:i:s | Y-m-d\TH:i | Y-m-d\TH | Y-m-d | Y-m | Y.
Examples: 2022-10-03T09:00:06 | 2022-10-03T09:00 | 2022-10-03T09 | 2022-10-03 | 2022-10 | 2022
published_after false Find all articles published after the specified date. Supported formats include: Y-m-d\TH:i:s | Y-m-d\TH:i | Y-m-d\TH | Y-m-d | Y-m | Y.
Examples: 2022-10-03T09:00:06 | 2022-10-03T09:00 | 2022-10-03T09 | 2022-10-03 | 2022-10 | 2022
published_on false Find all articles published on the specified date. Supported formats include: Y-m-d.
Examples: 2022-10-03
limit false Specify the number of articles you want to return in the request. The maximum limit is based on your plan. The default limit is the maximum specified for your plan.
page false Use this to paginate through the result set. Default is 1. Note that the max result set can't exceed 20,000. For example if your limit is 50, the max page you can have is 400 (50 * 400 = 20,000).
Example: page=2

Response Objects

name description
meta > found The number of articles found for the request.
meta > returned The number of articles returned on the page. This is useful to determine the end of the result set as if this is lower than limit, there are no more articles after this page.
meta > limit The limit based on the limit parameter.
meta > page The page number based on the page parameter.
data > uuid The unique identifier for an article in our system. Store this and use it to find specific articles using our single article endpoint.
data > title The article title.
data > description The article meta description.
data > keywords The article meta keywords.
data > snippet The first 60 characters of the article body.
data > url The URL to the article.
data > image_url The URL to the article image.
data > language The language of the source.
data > published_at The datetime the article was published.
data > source The domain of the source.
data > relevance_score Relevance score based on the article provided.
data > entities > symbol Symbol of the identified entity.
data > entities > name Name of the identified entity.
data > entities > exchange Exchange identifier of the identified entity.
data > entities > exchange_long Exchange name of the identified entity.
data > entities > country Exchange country of the identified entity.
data > entities > type Type of the identified entity.
data > entities > industry Industry of the identified entity.
data > entities > match_score The overall strength of the matching for the identified entity.
data > entities > sentiment_score Average sentiment of all highlighted text found for the identified entity.
data > entities > highlights > highlight Snippet of text from the article where the entity has been identified.
data > entities > highlights > sentiment The sentiment of the highlighed text.
data > entities > highlights > highlighted_in Where the highlight was found (title | main_text).
data > similar Array of news articles which are very similar to the main article.

If no results are found, the data object will be empty.

Example Request

            
                GET https://api.stockdata.org/v1/news/similar/cc11e3ab-ced0-4a42-9146-e426505e2e67?api_token=YOUR_API_TOKEN&language=en&published_on=2020-12-01
            
        

Example Response

            
                
            {
                "meta": {
                    "found": 222,
                    "returned": 3,
                    "limit": 3,
                    "page": 1
                },
                "data": [
                    {
                        "uuid": "489e4ec4-84a9-4628-966c-95c3741c6dfc",
                        "title": "Bitcoin Drops below $47K: Is BTC in a Bear Market?",
                        "description": "Bitcoin's rally seems to have made a sharp U-turn. Is this a short-lived correction or a longer-term trend?",
                        "keywords": "",
                        "snippet": "The market correction that many crypto analysts have been predicting for weeks seems to have finally arrived. Indeed, crypto markets are seeing red across the ...",
                        "url": "https://www.financemagnates.com/cryptocurrency/news/bitcoin-drops-below-47k-is-btc-in-a-bear-market/",
                        "image_url": "https://www.financemagnates.com/wp-content/uploads/2020/02/bitcoin-tightrope.jpg",
                        "language": "en",
                        "published_at": "2021-02-23T11:00:40.000000Z",
                        "source": "financemagnates.com",
                        "relevance_score": 106.05874,
                        "entities": [ ],
                        "similar": [ ]
                    },
                    {
                        "uuid": "61be555e-3120-44b0-ad13-6f985ea92f63",
                        "title": "Bitcoin ETFs vs Spot BTC",
                        "description": "Bitcoin is now the largest and most well-known cryptocurrency. This cryptocurrency has a market cap of several hundred billion dollars and as a result, has ...",
                        "keywords": "",
                        "snippet": "Bitcoin is now the largest and most well-known cryptocurrency. This cryptocurrency has a market cap of several hundred billion dollars and as a result, has mass...",
                        "url": "https://www.benzinga.com/markets/cryptocurrency/21/02/19808328/bitcoin-etfs-vs-spot-btc",
                        "image_url": "https://cdn.benzinga.com/files/imagecache/og_image_social_share_1200x630/images/story/2012/investing.jpg",
                        "language": "en",
                        "published_at": "2021-02-23T21:11:34.000000Z",
                        "source": "benzinga.com",
                        "relevance_score": 95.900276,
                        "entities": [ ],
                        "similar": [ ]
                    },
                    ...
                ]
            }
        
            
        

News by UUID Available on: All plans

Endpoint

            
                GET https://api.stockdata.org/v1/news/uuid/uuid HTTP/1.1
            
        

Use this endpoint to find specific articles by the UUID which is returned on our search endpoints. This is useful if you wish to store the UUID to return the article later.

HTTP GET Parameters

name required description
api_token true Your API token which can be found on your account dashboard.

Response Objects

name description
uuid The unique identifier for an article in our system. Store this and use it to find specific articles using our single article endpoint.
title The article title.
description The article meta description.
keywords The article meta keywords.
snippet The first 60 characters of the article body.
url The URL to the article.
image_url The URL to the article image.
language The language of the source.
published_at The datetime the article was published.
source The domain of the source.
entities > symbol Symbol of the identified entity.
entities > name Name of the identified entity.
entities > exchange Exchange identifier of the identified entity.
entities > exchange_long Exchange name of the identified entity.
entities > country Exchange country of the identified entity.
entities > type Type of the identified entity.
entities > industry Industry of the identified entity.
entities > match_score The overall strength of the matching for the identified entity.
entities > sentiment_score Average sentiment of all highlighted text found for the identified entity.
entities > highlights > highlight Snippet of text from the article where the entity has been identified.
entities > highlights > sentiment The sentiment of the highlighed text.
entities > highlights > highlighted_in Where the highlight was found (title | main_text).

If no results are found, a resource_not_found error will be returned.

Example Request

            
                GET https://api.stockdata.org/v1/news/uuid/147013d8-6c2c-4d50-8bad-eb3c8b7f5740?api_token=YOUR_API_TOKEN
            
        

Example Response

            
                
            {
                "uuid": "9b9fb67e-9438-4263-815e-ef6a7d36af07",
                "title": "Bitcoin (BTC/USD), Ethereum (ETH/USD) Crushed as Cryptocurrency Market is Overrun by Sellers",
                "description": "The cryptocurrency market has been experiencing wild price swings over the last two days with sellers in complete control as prices slump across the board",
                "keywords": "",
                "snippet": "Bitcoin (BTC/USD) Price, Analysis and Chart: Bullish channel is broken in a two day sell-off...",
                "url": "https://www.dailyfx.com/forex/market_alert/2021/02/23/Bitcoin-BTCUSD-Ethereum-ETHUSD-Crushed-as-Cryptocurrency-Market-is-Overrun-by-Sellers.html",
                "image_url": "https://a.c-dn.net/b/2jPuVf/headline_shutterstock_365875643.jpg",
                "language": "en",
                "published_at": "2021-02-23T10:30:00.000000Z",
                "source": "dailyfx.com",
                "entities": [
                    {
                        "symbol": "BTCUSD",
                        "name": "Bitcoin USD",
                        "exchange": "CC",
                        "exchange_long": "Cryptocurrency",
                        "country": "global",
                        "type": "cryptocurrency",
                        "industry": "N/A",
                        "match_score": 82.04055,
                        "sentiment_score": -0.177075,
                        "highlights": [
                            {
                                "highlight": "Bitcoin (BTC/USD) Price, Analysis and Chart: Bullish channel is broken in a two day sell-off. No specific driver of price action.",
                                "sentiment": -0.6486,
                                "highlighted_in": "main_text"
                            },
                            ...
                        ]
                    },
                    {
                        "symbol": "ETHUSD",
                        "name": "Ethereum USD",
                        "exchange": "CC",
                        "exchange_long": "Cryptocurrency",
                        "country": "global",
                        "type": "cryptocurrency",
                        "industry": "N/A",
                        "match_score": 65.22654,
                        "sentiment_score": -0.4215,
                        "highlights": [
                            {
                                "highlight": "Bitcoin (BTC/USD), Ethereum (ETH/USD) Crushed as Cryptocurrency Market is Overrun by Sellers",
                                "sentiment": -0.4215,
                                "highlighted_in": "title"
                            }
                        ]
                    }
                ]
            }
        
            
        

Market News Analysis

Entity Stats (time series) Available on: Standard and above

Endpoint

            
                GET https://api.stockdata.org/v1/news/stats/intraday HTTP/1.1
            
        

Get an intraday view of how well entities performed over different intervals using this endpoint. Find the best or worst performing entities broken down to every minute, hour, day, week, month, quarter or year. Useful for comparing entities and creating graphs and charts

Adding symbols to the request is not necessary - by default all of the best performing stocks are returned. Filter entities by symbols, exchanges, industries, countries, entity types and more.

HTTP GET Parameters

name required description
api_token true Your API token which can be found on your account dashboard.
interval false The interval of the time series.

Options: minute | hour | day | week | month | quarter | year
Default: day
Example: interval=day

Note: there are restrictions on the maximum time frame for each interval. This is based on the published_before parameter. From the published_before date specified, the maximum time frame that can be retrieved is as following:

minute = 7 days
hour = 1 month
day = 3 years
week = 5 years
month = 5 years
quarter = 10 years
year = 10 years

By default the maximum allowed time frame will be applied. If the time frame is exceeded by the date parameters provided, the default will be applied - no error will be thrown.

For example, if interval=minute and published_before=2021-01-10, the max that can be returned will be back to 2021-01-03. You can specify a published_after value to reduce this time frame if necessary (e.g. published_after=2021-01-08).
group_by false Group results by symbol | exchange | industry | country
Default: symbol
min_doc_count false The minimum number of total_documents an entity should be identified within to be returned with the results.
Example: min_doc_count=10
symbols false Specify entity symbol(s) which have been identified within the article. Find entity symbols in our entity search endpoint.
Example: symbols=TSLA,AMZN,MSFT
exchanges false Specify exchange(s) of entities which have been identified within the article. Find exchanges in our exchanges metadata endpoint.
Example: exchanges=NASDAQ,NYSE
entity_types false Specify the type of entities which have been identified within the article. Find entity types in our entity type metadata endpoint.
Example: entity_types=index,equity
industries false Specify the industries of entities which have been identified within the article. Find entity types in our entity industry metadata endpoint.
Example: industries=Technology,Industrials
countries false Specify the country of the exchange of which entities have been identified within the article. Find countries as part of our entity exchanges metadata endpoint.
Example: countries=us,ca
sentiment_avg_gte false Use this to refine results to find all entities with an overall sentiment_avg greater than or equal to x.
Example: sentiment_avg_gte=0 - this will find all entities which are neutral or positive
sentiment_avg_lte false Use this to refine results to find all entities with an overall sentiment_avg less than or equal to x.
Example: sentiment_avg_lte=0 - this will find all entities which are neutral or negative
sentiment_gte false Use this to refine results to find all documents for entities with a sentiment_score greater than or equal to x.
Example: sentiment_gte=0 - this will find all document entities which are neutral or positive
sentiment_lte false Use this to refine results to find all documents for entities with a sentiment_score less than or equal to x.
Example: sentiment_lte=0 - this will find all document entities which are neutral or negative
search false Use the search as a basic search tool by entering regular search terms or it has more advanced usage to build search queries:
+ signifies AND operation
| signifies OR operation
- negates a single token
" wraps a number of tokens to signify a phrase for searching
* at the end of a term signifies a prefix query
( and ) signify precedence
To use one of these characters literally, escape it with a preceding backslash (\).
This searches the full body of the text and the title.

Example: "ipo" -nasdaq (searches for articles which must include the string "ipo" but articles must NOT mention Nasdaq.)

For more advanced query examples, see our API Examples section.
domains false Comma separated list of domains to include. List of domains can be obtained through our Sources endpoint, found further down this page.
Example: adweek.com,adage.com
exclude_domains false Comma separated list of domains to exclude
source_ids false Comma separated list of source_ids to include. List of source_ids can be obtained through our Sources endpoint, found further down this page.
Example: adweek.com-1,adage.com-1
exclude_source_ids false Comma separated list of source_ids to exclude.
language false Comma separated list of languages to include. Default is all.
Click here for a list of supported languages.
Examples: en,es (English + Spanish)
published_before false Refine results for articles before the specified date. Supported formats include: Y-m-d\TH:i:s | Y-m-d\TH:i | Y-m-d\TH | Y-m-d | Y-m | Y.
Examples: 2022-10-03T09:00:06 | 2022-10-03T09:00 | 2022-10-03T09 | 2022-10-03 | 2022-10 | 2022
published_after false Refine results for articles published after the specified date. Supported formats include: Y-m-d\TH:i:s | Y-m-d\TH:i | Y-m-d\TH | Y-m-d | Y-m | Y.
Examples: 2022-10-03T09:00:06 | 2022-10-03T09:00 | 2022-10-03T09 | 2022-10-03 | 2022-10 | 2022
published_on false Refine results for articles published on the specified date. Supported formats include: Y-m-d.
Examples: 2022-10-03
sort false Sort by total_documents or sentiment_avg
Default: total_documents
sort_order false Sort order of the sort parameter.
Options: desc | asc
Default: desc
date_order false Ordering of the date keys.
Options: desc | asc
Default: desc
limit false Specify the number of entities you want to return in the request. The maximum limit is based on your plan. The default limit is the maximum specified for your plan.

Response Objects

name description
data > date Date of the time series data.
data > data > key The key based on the group_by parameter. For example, this could be symbol, exchange, industry or country.
data > data > total_documents Total number of documents identified for the key and also based on the query parameters provided.
data > data > sentiment_avg Average sentiment of the key and also based on the query parameters provided.

If no results are found, the data object will be empty.

Example Request

            
                GET https://api.stockdata.org/v1/news/stats/intraday?symbols=TSLA%2CAMZN%2CMSFT&interval=day&published_after=2022-10-02T09%3A00&language=en&api_token=YOUR_API_TOKEN
            
        

Example Response

            
                {
    "data": [
        {
            "date": "2022-10-03T00:00:00.000Z",
            "data": [
                {
                    "key": "TSLA",
                    "total_documents": 8,
                    "sentiment_avg": 0.31969912688509794
                },
                {
                    "key": "MSFT",
                    "total_documents": 3,
                    "sentiment_avg": 0.6973666648070017
                },
                {
                    "key": "AMZN",
                    "total_documents": 2,
                    "sentiment_avg": 0.273250013589859
                }
            ]
        },
        {
            "date": "2022-10-02T00:00:00.000Z",
            "data": [
                {
                    "key": "TSLA",
                    "total_documents": 26,
                    "sentiment_avg": 0.025213692193994157
                },
                {
                    "key": "AMZN",
                    "total_documents": 23,
                    "sentiment_avg": 0.3794873045838397
                },
                {
                    "key": "MSFT",
                    "total_documents": 22,
                    "sentiment_avg": 0.35305282041769137
                }
            ]
        }
    ]
}
            
        

Entity Stats (aggregation) Available on: Standard and above

Endpoint

            
                GET https://api.stockdata.org/v1/news/stats/aggregation HTTP/1.1
            
        

Similar to the entity stats time series endpoint, this returns an aggregation of entities for a single time frame, rather than being broken down by date. Useful to find the best or worst performing stocks.

HTTP GET Parameters

name required description
api_token true Your API token which can be found on your account dashboard.
group_by false Group results by symbol | exchange | industry | country
Default: symbol
min_doc_count false The minimum number of total_documents an entity should be identified within to be returned with the results.
Example: min_doc_count=10
symbols false Specify entity symbol(s) which have been identified within the article. Find entity symbols in our entity search endpoint.
Example: symbols=TSLA,AMZN,MSFT
exchanges false Specify exchange(s) of entities which have been identified within the article. Find exchanges in our exchanges metadata endpoint.
Example: exchanges=NASDAQ,NYSE
entity_types false Specify the type of entities which have been identified within the article. Find entity types in our entity type metadata endpoint.
Example: entity_types=index,equity
industries false Specify the industries of entities which have been identified within the article. Find entity types in our entity industry metadata endpoint.
Example: industries=Technology,Industrials
countries false Specify the country of the exchange of which entities have been identified within the article. Find countries as part of our entity exchanges metadata endpoint.
Example: countries=us,ca
sentiment_avg_gte false Use this to refine results to find all entities with an overall sentiment_avg greater than or equal to x.
Example: sentiment_avg_gte=0 - this will find all entities which are neutral or positive
sentiment_avg_lte false Use this to refine results to find all entities with an overall sentiment_avg less than or equal to x.
Example: sentiment_avg_lte=0 - this will find all entities which are neutral or negative
sentiment_gte false Use this to refine results to find all documents for entities with a sentiment_score greater than or equal to x.
Example: sentiment_gte=0 - this will find all document entities which are neutral or positive
sentiment_lte false Use this to refine results to find all documents for entities with a sentiment_score less than or equal to x.
Example: sentiment_lte=0 - this will find all document entities which are neutral or negative
search false Use the search as a basic search tool by entering regular search terms or it has more advanced usage to build search queries:
+ signifies AND operation
| signifies OR operation
- negates a single token
" wraps a number of tokens to signify a phrase for searching
* at the end of a term signifies a prefix query
( and ) signify precedence
To use one of these characters literally, escape it with a preceding backslash (\).
This searches the full body of the text and the title.

Example: "ipo" -nasdaq (searches for articles which must include the string "ipo" but articles must NOT mention Nasdaq.)

For more advanced query examples, see our API Examples section.
domains false Comma separated list of domains to include. List of domains can be obtained through our Sources endpoint, found further down this page.
Example: adweek.com,adage.com
exclude_domains false Comma separated list of domains to exclude
source_ids false Comma separated list of source_ids to include. List of source_ids can be obtained through our Sources endpoint, found further down this page.
Example: adweek.com-1,adage.com-1
exclude_source_ids false Comma separated list of source_ids to exclude.
language false Comma separated list of languages to include. Default is all.
Click here for a list of supported languages.
Examples: en,es (English + Spanish)
published_before false Refine results for articles published before the specified date. Supported formats include: Y-m-d\TH:i:s | Y-m-d\TH:i | Y-m-d\TH | Y-m-d | Y-m | Y.
Examples: 2022-10-03T09:00:06 | 2022-10-03T09:00 | 2022-10-03T09 | 2022-10-03 | 2022-10 | 2022
published_after false Refine results for articles published after the specified date. Supported formats include: Y-m-d\TH:i:s | Y-m-d\TH:i | Y-m-d\TH | Y-m-d | Y-m | Y.
Examples: 2022-10-03T09:00:06 | 2022-10-03T09:00 | 2022-10-03T09 | 2022-10-03 | 2022-10 | 2022
published_on false Refine results for articles published on the specified date. Supported formats include: Y-m-d.
Examples: 2022-10-03
sort false Sort by total_documents or sentiment_avg
Default: total_documents
sort_order false Sort order of the sort parameter.
Options: desc | asc
Default: desc
limit false Specify the number of entities you want to return in the request. The maximum limit is based on your plan. The default limit is the maximum specified for your plan.

Response Objects

name description
meta > returned The number of entities returned.
meta > limit The limit based on the limit parameter.
data > key The key based on the group_by parameter. For example, this could be symbol, exchange, industry or country.
data > total_documents Total number of documents identified for the key and also based on the query parameters provided.
data > sentiment_avg Average sentiment of the key and also based on the query parameters provided.

If no results are found, the data object will be empty.

Example Request

            
                GET https://api.stockdata.org/v1/news/stats/aggregation?symbols=TSLA%2CAMZN%2CMSFT&published_after=2022-10-02T09%3A00&language=en&api_token=YOUR_API_TOKEN
            
        

Example Response

            
                {
    "meta": {
        "returned": 3,
        "limit": 100
    },
    "data": [
        {
            "key": "TSLA",
            "total_documents": 34,
            "sentiment_avg": 0.09450438270954799
        },
        {
            "key": "AMZN",
            "total_documents": 25,
            "sentiment_avg": 0.3709883213043213
        },
        {
            "key": "MSFT",
            "total_documents": 25,
            "sentiment_avg": 0.3943704817444086
        }
    ]
}
            
        

Endpoint

            
                GET https://api.stockdata.org/v1/news/stats/trending HTTP/1.1
            
        

Use this endpoint to identify trending entities. Filter by time frame and much more; e.g. find which stocks were trending on a specific day, within the past 24 hours, past 7 days, etc.

HTTP GET Parameters

name required description
api_token true Your API token which can be found on your account dashboard.
group_by false Group results by symbol | exchange | industry | country
Default: symbol
min_doc_count false The minimum number of total_documents an entity should be identified within to be returned with the results.
Example: min_doc_count=10
symbols false Specify entity symbol(s) which have been identified within the article. Find entity symbols in our entity search endpoint.
Example: symbols=TSLA,AMZN,MSFT
exchanges false Specify exchange(s) of entities which have been identified within the article. Find exchanges in our exchanges metadata endpoint.
Example: exchanges=NASDAQ,NYSE
entity_types false Specify the type of entities which have been identified within the article. Find entity types in our entity type metadata endpoint.
Example: entity_types=index,equity
industries false Specify the industries of entities which have been identified within the article. Find entity types in our entity industry metadata endpoint.
Example: industries=Technology,Industrials
countries false Specify the country of the exchange of which entities have been identified within the article. Find countries as part of our entity exchanges metadata endpoint.
Example: countries=us,ca
sentiment_avg_gte false Use this to refine results to find all entities with an overall sentiment_avg greater than or equal to x.
Example: sentiment_avg_gte=0 - this will find all entities which are neutral or positive
sentiment_avg_lte false Use this to refine results to find all entities with an overall sentiment_avg less than or equal to x.
Example: sentiment_avg_lte=0 - this will find all entities which are neutral or negative
sentiment_gte false Use this to refine results to find all documents for entities with a sentiment_score greater than or equal to x.
Example: sentiment_gte=0 - this will find all document entities which are neutral or positive
sentiment_lte false Use this to refine results to find all documents for entities with a sentiment_score less than or equal to x.
Example: sentiment_lte=0 - this will find all document entities which are neutral or negative
search false Use the search as a basic search tool by entering regular search terms or it has more advanced usage to build search queries:
+ signifies AND operation
| signifies OR operation
- negates a single token
" wraps a number of tokens to signify a phrase for searching
* at the end of a term signifies a prefix query
( and ) signify precedence
To use one of these characters literally, escape it with a preceding backslash (\).
This searches the full body of the text and the title.

Example: "ipo" -nasdaq (searches for articles which must include the string "ipo" but articles must NOT mention Nasdaq.)

For more advanced query examples, see our API Examples section.
domains false Comma separated list of domains to include. List of domains can be obtained through our Sources endpoint, found further down this page.
Example: adweek.com,adage.com
exclude_domains false Comma separated list of domains to exclude
source_ids false Comma separated list of source_ids to include. List of source_ids can be obtained through our Sources endpoint, found further down this page.
Example: adweek.com-1,adage.com-1
exclude_source_ids false Comma separated list of source_ids to exclude.
language false Comma separated list of languages to include. Default is all.
Click here for a list of supported languages.
Examples: en,es (English + Spanish)
published_before false Refine results for articles published before the specified date. Supported formats include: Y-m-d\TH:i:s | Y-m-d\TH:i | Y-m-d\TH | Y-m-d | Y-m | Y.
Examples: 2022-10-03T09:00:06 | 2022-10-03T09:00 | 2022-10-03T09 | 2022-10-03 | 2022-10 | 2022
published_after false Refine results for articles published after the specified date. Supported formats include: Y-m-d\TH:i:s | Y-m-d\TH:i | Y-m-d\TH | Y-m-d | Y-m | Y.
Examples: 2022-10-03T09:00:06 | 2022-10-03T09:00 | 2022-10-03T09 | 2022-10-03 | 2022-10 | 2022
published_on false Refine results for articles published on the specified date. Supported formats include: Y-m-d.
Examples: 2022-10-03
sort false Sort by total_documents or sentiment_avg
Default: total_documents
sort_order false Sort order of the sort parameter.
Options: desc | asc
Default: desc
limit false Specify the number of entities you want to return in the request. The maximum limit is based on your plan. The default limit is the maximum specified for your plan.

Response Objects

name description
meta > returned The number of entities returned.
meta > limit The limit based on the limit parameter.
data > key The key based on the group_by parameter. For example, this could be symbol, exchange, industry or country.
data > total_documents Total number of documents identified for the key and also based on the query parameters provided.
data > sentiment_avg Average sentiment of the key and also based on the query parameters provided.
data > score The relevance score for the trending entity.

If no results are found, the data object will be empty.

Example Request

            
                GET https://api.stockdata.org/v1/news/stats/trending?exchanges=nyse%2Cnasdaq&min_doc_count=10&published_after=2022-10-02T09%3A00&language=en&api_token=YOUR_API_TOKEN
            
        

Example Response

            
                {
    "meta": {
        "returned": 45,
        "limit": 100
    },
    "data": [
        {
            "key": "WFC",
            "total_documents": 165,
            "sentiment_avg": 0.1796296427647273,
            "score": 3.9942385843194907
        },
        {
            "key": "JPM",
            "total_documents": 189,
            "sentiment_avg": 0.2933055504013306,
            "score": 3.81129579233733
        },
        {
            "key": "DB",
            "total_documents": 151,
            "sentiment_avg": 0.2349192068375499,
            "score": 3.7839623098705273
        },
        {
            "key": "BLK",
            "total_documents": 116,
            "sentiment_avg": 0.7747617010669462,
            "score": 2.4491800891156865
        },
        {
            "key": "UBS",
            "total_documents": 70,
            "sentiment_avg": 0.4000448996999434,
            "score": 2.345293633773461
        },
        ...
    ]
}
            
        

Stock Metadata

Endpoint

            
                GET https://api.stockdata.org/v1/entity/search HTTP/1.1
            
        

Use this endpoint to search for all entities we support. Note that the limit is 50 for all requests.

HTTP GET Parameters

name required description
api_token true Your API token which can be found on your account dashboard.
search false Dynamic search function to find entities.
symbols false Enter specific symbols to return.
exchanges false Filter results by specific exchanges. Comma separated list.
types false Filter results by entity types. Comma separated list.
industries false Filter results by industries. Comma separated list.
countries false Filter results by ISO 3166-1 two-letter country code of the exchange. Comma separated list.
page false Use this to paginate through the result set. Default is 1.
Example: page=2

Response Objects

name description
meta > found The number of entities found for the request.
meta > returned The number of entities returned on the page.
meta > limit The limit is 50. This currently can not be changed.
meta > page The page number based on the page parameter.
data > symbol Unique entity symbol (or ticker).
data > name Entity name.
data > type The entity type.
data > industry The entity industry.
data > exchange The exchange identifier.
data > exchange_long The exchange name.
data > mic_code The exchanges ISO 10383 market identifier code.
data > country The ISO 3166-1 two-letter country code of the exchange locale.

If no results are found, the data object will be empty.

Example Request

            
                GET https://api.stockdata.org/v1/entity/search?search=tsla&api_token=YOUR_API_TOKEN
            
        

Example Response

            
                {
    "meta": {
        "found": 1,
        "returned": 1,
        "limit": 50,
        "page": 1
    },
    "data": [
        {
            "symbol": "TSLA",
            "name": "Tesla Inc",
            "type": "equity",
            "industry": null,
            "exchange": "NASDAQ",
            "exchange_long": "NASDAQ Stock Exchange",
            "mic_code": "XNAS",
            "country": "us"
        }
    ]
}
            
        

Exchange List Available on: All plans

Endpoint

            
                GET https://api.stockdata.org/v1/entity/exchange/list HTTP/1.1
            
        

Use this endpoint to return a list of all supported exchanges.

HTTP GET Parameters

name required description
api_token true Your API token which can be found on your account dashboard.

Response Objects

name description
data > mic_code The exchanges ISO 10383 market identifier code.
data > exchange The unique identifier of the exchange.
data > exchange_long The name of the exchange.
data > country The ISO 3166-1 two-letter country code of the exchange locale.
data > append The appended characters for the exchange tickers.
data > timezone Non DST timezone of the exchange.
data > timezone_dst DST timezone (daylight saving time).
data > timezone_name The name of the timezone.
data > is_dst Specifies if the timezone is currently daylight saving time.

If no results are found, the data object will be empty.

Example Request

            
                GET https://api.stockdata.org/v1/entity/exchange/list?api_token=YOUR_API_TOKEN
            
        

Example Response

            
                {
    "data": [
        {
            "mic_code": "XLON",
            "exchange": "LSE",
            "stock_exchange_long": "London Stock Exchange",
            "country": "gb",
            "append": ".L",
            "timezone": "GMT",
            "timezone_dst": "BST",
            "timezone_name": "Europe/London",
            "is_dst": 1
        },
        {
            "mic_code": "INDX",
            "exchange": "INDEXASX",
            "stock_exchange_long": "",
            "country": "au",
            "append": "",
            "timezone": "AEDT",
            "timezone_dst": "AEST",
            "timezone_name": "Australia/Sydney",
            "is_dst": 1
        },
        {
            "mic_code": "BATS",
            "exchange": "CBOE",
            "stock_exchange_long": "BATS Global Markets",
            "country": "us",
            "append": "",
            "timezone": "EST",
            "timezone_dst": "EDT",
            "timezone_name": "America/New_York",
            "is_dst": 1
        },
        {
            "mic_code": "INDX",
            "exchange": "INDEXBIT",
            "stock_exchange_long": "",
            "country": "it",
            "append": "",
            "timezone": "CET",
            "timezone_dst": "CEST",
            "timezone_name": "Europe/Rome",
            "is_dst": 1
        },
        {
            "mic_code": "XHKG",
            "exchange": "HKSE",
            "stock_exchange_long": "Hong Kong Stock Exchange",
            "country": "hk",
            "append": ".HK",
            "timezone": "HKT",
            "timezone_dst": "HKT",
            "timezone_name": "Asia/Hong_Kong",
            "is_dst": 0
        },
        ...
    ]
}
            
        

Entity Type List Available on: All plans

Endpoint

            
                GET https://api.stockdata.org/v1/entity/type/list HTTP/1.1
            
        

Use this endpoint to return all supported entity types.

HTTP GET Parameters

name required description
api_token true Your API token which can be found on your account dashboard.

Response Objects

name description
data Array of entity types.

If no results are found, the data object will be empty.

Example Request

            
                GET https://api.stockdata.org/v1/entity/type/list?api_token=YOUR_API_TOKEN
            
        

Example Response

            
                {
    "data": [
        "equity",
        "index",
        "etf",
        "mutualfund",
        "currency",
        "cryptocurrency"
    ]
}
            
        

Industry List Available on: All plans

Endpoint

            
                GET https://api.stockdata.org/v1/entity/industry/list HTTP/1.1
            
        

Use this endpoint to return all supported entity industries.

HTTP GET Parameters

name required description
api_token true Your API token which can be found on your account dashboard.

Response Objects

name description
data Array of industries.

If no results are found, the data object will be empty.

Example Request

            
                GET https://api.stockdata.org/v1/entity/industry/list?api_token=YOUR_API_TOKEN
            
        

Example Response

            
                {
    "data": [
        "Technology",
        "Industrials",
        "N/A",
        "Consumer Cyclical",
        "Healthcare",
        "Communication Services",
        "Financial Services",
        "Consumer Defensive",
        "Basic Materials",
        "Real Estate",
        "Energy",
        "Utilities",
        "Financial",
        "Services",
        "Consumer Goods",
        "Industrial Goods"
    ]
}
            
        

Company Profiles Available on: All plans

Endpoint

            
                GET https://api.stockdata.org/v1/entity/profile HTTP/1.1
            
        

Use this endpoint to get a profile for a company based on its ticker.

HTTP GET Parameters

name required description
api_token true Your API token which can be found on your account dashboard.
symbols false Ticker of the stock you wish to retrieve the profile for.

Response Objects

name description
data > ticker Entity ticker
data > address1 Address line 1.
data > address2 Address line 2.
data > address3 Address line 3.
data > address4 Address line 4.
data > address5 Address line 5.
data > city City of the company.
data > state State of the company.
data > zip ZIP/postal code of the company.
data > country Country of the company.
data > phone Phone number of the company.
data > website Website of the company.
data > industry Comapny industry.
data > sector Company sector.
data > full_time_employees Number of company full time employees.
data > description Company description.

If no results are found, the data object will be empty.

Example Request

            
                GET https://api.stockdata.org/v1/entity/profile?symbols=AAPL&api_token=YOUR_API_TOKEN
            
        

Example Response

            
                {
    "data": [
        {
            "ticker": "AAPL",
            "address1": "One Apple Park Way",
            "address2": null,
            "address3": null,
            "address4": null,
            "address5": null,
            "city": "Cupertino",
            "state": "CA",
            "zip": "95014",
            "country": "United States",
            "phone": "408-996-1010",
            "website": "http://www.apple.com",
            "industry": "Consumer Electronics",
            "sector": "Technology",
            "full_time_employees": 147000,
            "description": "Apple Inc. designs, manufactures, and markets smartphones, personal computers, tablets, wearables, and accessories worldwide. It also sells various related services. The company offers iPhone, a line of smartphones; Mac, a line of personal computers; iPad, a line of multi-purpose tablets; and wearables, home, and accessories comprising AirPods, Apple TV, Apple Watch, Beats products, HomePod, iPod touch, and other Apple-branded and third-party accessories. It also provides AppleCare support services; cloud services store services; and operates various platforms, including the App Store, that allow customers to discover and download applications and digital content, such as books, music, video, games, and podcasts. In addition, the company offers various services, such as Apple Arcade, a game subscription service; Apple Music, which offers users a curated listening experience with on-demand radio stations; Apple News+, a subscription news and magazine service; Apple TV+, which offers exclusive original content; Apple Card, a co-branded credit card; and Apple Pay, a cashless payment service, as well as licenses its intellectual property. The company serves consumers, and small and mid-sized businesses; and the education, enterprise, and government markets. It sells and delivers third-party applications for its products through the App Store. The company also sells its products through its retail and online stores, and direct sales force; and third-party cellular network carriers, wholesalers, retailers, and resellers. Apple Inc. was founded in 1977 and is headquartered in Cupertino, California."
        }
    ]
}
            
        

News Metadata

Sources Available on: All plans

Endpoint

            
                GET https://api.stockdata.org/v1/news/sources HTTP/1.1
            
        

Use this endpoint to view sources which can be used in other API requests. Note that the limit is 50 for all requests.

HTTP GET Parameters

name required description
api_token true Your API token which can be found on your account dashboard.
distinct_domain false Use this to group distinct domains from sources. This will make source_id null.
Example: distinct_domain=true
language false Comma separated list of languages to include. Default is all.
Click here for a list of supported languages.
Examples: en,es (English + Spanish)
page false Use this to paginate through the result set. Default is 1.
Example: page=2

Response Objects

name description
meta > found The number of sources found for the request.
meta > returned The number of sources returned on the page.
meta > limit The limit is 50. This currently can not be changed.
meta > page The page number based on the page parameter.
data > source_id The unique ID of the source feed. Use this for the source_ids or exclude_source_ids parameters in the news endpoints. There may be many source_ids for each domain, therefore we would generally suggest using the domains filter instead the source_ids filter.
data > domain The domain of the source. You can use this for the domains or exclude_domains parameters in the news endpoints.
data > language The source language.

If no results are found, the data object will be empty.

Example Request

            
                GET https://api.stockdata.org/v1/news/sources?api_token=YOUR_API_TOKEN&language=en
            
        

Example Response

            
                
            {
                "meta": {
                    "found": 5327,
                    "returned": 50,
                    "limit": 50,
                    "page": 1
                },
                "data": [
                    {
                        "source_id": "adweek.com-1",
                        "domain": "adweek.com",
                        "language": "en"
                    },
                    {
                        "source_id": "adage.com-1",
                        "domain": "adage.com",
                        "language": "en"
                    },
                    {
                        "source_id": "avc.com-1",
                        "domain": "avc.com",
                        "language": "en"
                    },
                    ...
                ]
            }
        
            
        

Misc

US Trading Holidays Available on: All plans

Endpoint

            
                GET https://api.stockdata.org/v1/data/holidays HTTP/1.1
            
        

Use this endpoint to get a list of US trading holidays from the year 2000 to 2+ years into the future.

HTTP GET Parameters

name required description
api_token true Your API token which can be found on your account dashboard.

Response Objects

name description
data > date Date of the holiday

If no results are found, the data object will be empty.

Example Request

            
                GET https://api.stockdata.org/v1/data/holidays?api_token=YOUR_API_TOKEN
            
        

Example Response

            
                {
    "data": [
        {
            "date": "2024-12-25T00:00:00.000000Z"
        },
        ...
    ]
}
            
        

Errors

Errors

If your request was unsuccessful, you will receive a JSON formatted error. Below you will find the potential errors you may encounter when using the API.

Errors

error code HTTP status description
malformed_parameters 400 Validation of parameters failed. The failed parameters are usually shown in the error message.
invalid_api_token 401 Invalid API token.
usage_limit_reached 402 Usage limit of your plan has been reached. Usage limit and remaining requests can be found on the X-UsageLimit-Limit header.
endpoint_access_restricted 403 Access to the endpoint is not available on your current subscription plan.
resource_not_found 404 Resource could not be found.
invalid_api_endpoint 404 API route does not exist.
rate_limit_reached 429 Too many requests in the past 60 seconds. Rate limit and remaining requests can be found on the X-RateLimit-Limit header.
server_error 500 A server error occured.
maintenance_mode 503 The service is currently under maintenance.

Example Error Response

            
                
            {
                "error": {
                    "code": "malformed_parameters",
                    "message": "The published_before parameter(s) are incorrectly formatted."
                }
            }
        
            
        

Examples

API Examples

There are unlimited ways to filter and refine your results with our API, see a few examples below to help you get started.

If you need assistance creating the perfect query, feel free to contact us.

Retrieve all articles which have entities mentioned that exist in NASDAQ or NYSE exchanges

    
        GET https://api.stockdata.org/v1/news/all?exchanges=NYSE%2CNASDAQ&api_token=YOUR_API_TOKEN
    

Retrieve all articles which have mentioned AAPL and TSLA, and filter the entities array so ONLY these are displayed with articles

    
        GET https://api.stockdata.org/v1/news/all?symbols=AAPL%2CTSLA&filter_entities=true&api_token=YOUR_API_TOKEN
    

Find all articles with positive entity sentiment in English

    
        GET https://api.stockdata.org/v1/news/all?sentiment_gte=0.1&language=en&api_token=YOUR_API_TOKEN
    

Find all articles with neutral entity sentiment in English

    
        GET https://api.stockdata.org/v1/news/all?sentiment_gte=0&sentiment_lte=0&language=en&api_token=YOUR_API_TOKEN
    

Find all articles with negative entity sentiment in English

    
        GET https://api.stockdata.org/v1/news/all?sentiment_lte=-0.1&language=en&api_token=YOUR_API_TOKEN
    

Get a day-by-day breakdown of top mentioned entities for exchanges in the US for last month (September 2022)

    
        GET https://api.stockdata.org/v1/news/stats/intraday?interval=day&group_by=symbol&countries=us&published_after=2022-09-01T00%3A00&published_before=2022-09-30T23%3A59&api_token=YOUR_API_TOKEN
    

Get an aggregation for the top entities by sentiment yesterday (02 October 2022)

    
        GET https://api.stockdata.org/v1/news/stats/intraday?group_by=symbol&sort=sentiment_avg&sort_order=desc&published_on=2022-10-02&api_token=YOUR_API_TOKEN
    

Code Examples

See our prepared examples below to quickly get started implementing our API into your next project.

PHP

    
        $queryString = http_build_query([
            'api_token' => 'YOUR_API_TOKEN',
            'symbols' => 'AAPL,TSLA',
            'filter_entities' => 'true',
            'limit' => 50,
        ]);

        $ch = curl_init(sprintf('%s?%s', 'https://api.stockdata.org/v1/news/all', $queryString));
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

        $json = curl_exec($ch);

        curl_close($ch);

        $apiResult = json_decode($json, true);

        print_r($apiResult);
    

Python

    
        # Python 3
        import http.client, urllib.parse

        conn = http.client.HTTPSConnection('api.stockdata.org')

        params = urllib.parse.urlencode({
            'api_token': 'YOUR_API_TOKEN',
            'symbols': 'AAPL,TSLA',
            'limit': 50,
            })

        conn.request('GET', '/v1/news/all?{}'.format(params))

        res = conn.getresponse()
        data = res.read()

        print(data.decode('utf-8'))
    

Go

    
        package main

        import (
            "fmt"
            "io/ioutil"
            "net/http"
            "net/url"
        )

        func main() {
            baseURL, _ := url.Parse("https://api.stockdata.org")

            baseURL.Path += "v1/news/all"

            params := url.Values{}
            params.Add("api_token", "YOUR_API_TOKEN")
            params.Add("symbols", "aapl,tsla")
            params.Add("search", "ipo")
            params.Add("limit", "50")

            baseURL.RawQuery = params.Encode()

            req, _ := http.NewRequest("GET", baseURL.String(), nil)

            res, _ := http.DefaultClient.Do(req)

            defer res.Body.Close()

            body, _ := ioutil.ReadAll(res.Body)

            fmt.Println(string(body))
        }
    

JavaScript

    
        var requestOptions = {
            method: 'GET'
        };

        var params = {
            api_token: 'YOUR_API_TOKEN',
            symbols: 'msft,fb',
            limit: '50'
        };

        var esc = encodeURIComponent;
        var query = Object.keys(params)
            .map(function(k) {return esc(k) + '=' + esc(params[k]);})
            .join('&');

        fetch("https://api.stockdata.org/v1/news/all?" + query, requestOptions)
          .then(response => response.text())
          .then(result => console.log(result))
          .catch(error => console.log('error', error));
    

C#

    
        var client = new RestClient("https://api.stockdata.org/v1/news/all");
        client.Timeout = -1;

        var request = new RestRequest(Method.GET);

        request.AddQueryParameter("api_token", "YOUR_API_TOKEN");
        request.AddQueryParameter("symbols", "aapl,amzn");
        request.AddQueryParameter("limit", "50");

        IRestResponse response = client.Execute(request);
        Console.WriteLine(response.Content);
    

Java

    
        OkHttpClient client = new OkHttpClient().newBuilder()
          .build();

        HttpUrl.Builder httpBuilder = HttpUrl.parse("https://api.stockdata.org/v1/news/all").newBuilder();
        httpBuilder.addQueryParameter("api_token", "YOUR_API_TOKEN");
        httpBuilder.addQueryParameter("symbols", "aapl,msft");
        httpBuilder.addQueryParameter("limit", "50");

        Request request = new Request.Builder().url(httpBuilder.build()).build();

        Response response = client.newCall(request).execute();