FMP

FMP

Enter

How to pull Stock Information using the FMP API with Python

-

twitterlinkedinfacebook
blog post cover photo

Image credit: Markus Spiske

Accurately analysing stock information, beit price or some ratio, is crucial to making informed investment decisions. Many analysts still use traditional analytical methods with a software like Microsoft Excel but many are turning to data science to leverage the power of languages like Python. In this article, we will teach you the most basic step required to start using Python for analysing stock information. Here is a guide on how to pull stock information using the FMP Stock Market API.

Step 1: Load FMP Developer API Docs Website

From this article go to the top right of the page, click “Developers” and then click "API Docs" from the list below. Make sure you are logged into your account. You should see this in the top right corner:

image

Otherwise, click login and enter your account credentials.

A key piece of information that'll want to write down in a safely secured location is your API Key. This is located in the second section of the API docs page which is called "Your Details". See in the example below, it should be a long series of letters and numbers. As with any key, this unlocks something and in this case it ensures that you have permission to access the API you are requesting. Make sure to keep your key private and safely secured if you are storing it somewhere on your computer. It is against our terms and conditions to share your API key with anyone - your account will be blocked and investigated if we suspect you are doing this.

Step 2: Copy the URL for the API you want to access

For this example, we are going to pull from the company profile API. So scroll down to the section that says Stock Price (You can also use the navigation bar on the left hand side of the screen) and you will see the following:

image

Then right click on the box that contains something that looks like a condensed URL. In this case: api/v3/quote/APPL

Step 3: Open Your Python Environment and copy URL

Now you'll need to open up your Python environment to start writing code. To start with, create a variable called “URL” and give the string version of the URL you copied in step 2. You can simply use Ctrl + V (or cmd + V for mac users) to paste the url you copied.

ERROR ALERT: Make sure to add inverted commas (otherwise called quotation marks) around the copied URL to make the URL variable a string.

url = “https://financialmodelingprep.com/api/v3/quote/AAPL?apikey=demo”

If you're copying directly from this page you'll need to make sure that you replace the ‘demo' with your API key

Step 4: Write the Python code to access the Financial Statement

To learn more about exactly what all the following code means and why it works, visit out guide - How to call a Financial Modeling Prep API

try: # For Python 3.0 and later from urllib.request import urlopen except ImportError: # Fall back to Python 2's urllib2 from urllib2 import urlopen import json def get_jsonparsed_data(url): """ Receive the content of ``url``, parse it as JSON and return the object. Parameters ---------- url : str Returns ------- dict """ response = urlopen(url) data = response.read().decode("utf-8") return json.loads(data) url = ("https://financialmodelingprep.com/api/v3/quote/AAPL?apikey=demo") Quote_APPL = get_jsonparsed_data(url)

The FMP Quote API will return a JSON format data packet which will include the following bits of information:

  • symbol
  • name
  • price
  • changesPercentage
  • change
  • dayLow
  • dayHigh
  • yearHigh
  • yearLow
  • marketCap
  • priceAvg50
  • priceAvg200
  • volume
  • avgVolume
  • exchange
  • open
  • previousClose
  • eps
  • pe
  • earningsAnnouncement
  • sharesOutstanding
  • timestamp

We've left this in the exact format that comes out of the API so that you can easily copy and paste!

Step 5: Look inside the data you just received!

If you're working in a JupyterLab environment you'll be able to see the JSON data you received by simply typing in the name of the variable you've stored the information under and hitting enter. As you can see on the last line of code above, we've named our variable Quote_APPL. If you're working in a regular python environment and want to print the data then use the following:

print(Quote_APPL)

This prints out the JSON format dictionary.

Step 6: Get a specific data point from the larger JSON data provided

Often it's good to take a look at the one basic stock quote delivered to be able to see the way everything has been stored. Assuming you're using JupyterLab, enter the following code to look at the most recent statement:

Quote_APPL[0]

You should see something like this:

image

Now I'm going to show you how to pull one data point from this set. You'll need to index into the particular statement (note that you index in using a number from 0 to the limit you set minus 1) and then index the element of the statement you want to extract. Here's how you could pull the day low for APPL:

Quote_APPL[0][‘dayLow']

ERROR ALERT: To ensure you don't get a DNE error, make sure to directly copy the name of the stock quote element from the sample view generated from printing the received quote.

So there you have it, it's as easy as that to start receiving stock quotes using the Financial Modeling Prep API! Now here's a few bonus things that you can get from FMP API's that may help get you going!

Stock Profile

URL: api/v3/profile/AAPL?apikey=

Data Received: 'symbol', 'price', 'beta', 'volAvg', 'mktCap', 'lastDiv', 'range', 'changes', 'companyName', 'currency', 'cik', 'isin', 'cusip', 'exchange', 'exchangeShortName', 'industry', 'website', 'description', 'ceo', 'sector', 'country', 'fullTimeEmployees', 'phone', 'address', 'city', 'state', 'zip', 'dcfDiff', 'dcf', 'image', 'ipoDate', 'defaultImage', 'isEtf', 'isActivelyTrading'

Stock Rating

URL: api/v3/rating/AAPL?apikey=

Data Received: 'symbol', 'date', 'rating', 'ratingScore', 'ratingRecommendation', 'ratingDetailsDCFScore', 'ratingDetailsDCFRecommendation', 'ratingDetailsROEScore', 'ratingDetailsROERecommendation', 'ratingDetailsROAScore', 'ratingDetailsROARecommendation', 'ratingDetailsDEScore', 'ratingDetailsDERecommendation', 'ratingDetailsPEScore', 'ratingDetailsPERecommendation', 'ratingDetailsPBScore', 'ratingDetailsPBRecommendation'

Quaterly Stock Metrics

URL: api/v3/key-metrics/AAPL?period=quarter&limit=130&apikey=

Data Received: 'symbol', 'date', 'period', 'revenuePerShare', 'netIncomePerShare', 'operatingCashFlowPerShare', 'freeCashFlowPerShare', 'cashPerShare', 'bookValuePerShare', 'tangibleBookValuePerShare', 'shareholdersEquityPerShare', 'interestDebtPerShare', 'marketCap', 'enterpriseValue', 'peRatio', 'priceToSalesRatio', 'pocfratio', 'pfcfRatio', 'pbRatio', 'ptbRatio', 'evToSales', 'enterpriseValueOverEBITDA', 'evToOperatingCashFlow', 'evToFreeCashFlow', 'earningsYield', 'freeCashFlowYield', 'debtToEquity', 'debtToAssets', 'netDebtToEBITDA', 'currentRatio', 'interestCoverage', 'incomeQuality', 'dividendYield', 'payoutRatio', 'salesGeneralAndAdministrativeToRevenue', 'researchAndDdevelopementToRevenue', 'intangiblesToTotalAssets', 'capexToOperatingCashFlow', 'capexToRevenue', 'capexToDepreciation', 'stockBasedCompensationToRevenue', 'grahamNumber', 'roic', 'returnOnTangibleAssets', 'grahamNetNet', 'workingCapital', 'tangibleAssetValue', 'netCurrentAssetValue', 'investedCapital', 'averageReceivables', 'averagePayables', 'averageInventory', 'daysSalesOutstanding', 'daysPayablesOutstanding', 'daysOfInventoryOnHand', 'receivablesTurnover', 'payablesTurnover', 'inventoryTurnover', 'roe', 'capexPerShare'

Other Blogs

May 14, 2024 11:41 AM - Sanzhi Kobzhan

The easiest way to calculate stock’s target price and why the target price is important.

A stock's target price, also known as its fair value, is an indication of what a share can cost based on the company’s forecasted financial statements. It is important to know a stock's fair value to find undervalued stocks with great growth potential. Let's consider how investment analysts calculat...

blog post title

May 16, 2024 8:06 PM - Gordon Thompson

Deutsche Bank Upgrades AST SpaceMobile to Buy Amid Legal Challenges

On Thursday, May 16, 2024, Deutsche Bank upgraded its rating on NASDAQ:ASTS to Buy, maintaining a hold position. At the time of the announcement, ASTS was trading at $4.03. This decision was accompanied by an increase in the price target for AST SpaceMobile, raised to $22 from $19, as detailed in a ...

blog post title

May 24, 2024 9:30 AM - Rajnish Katharotiya

How to Access and Analyze Earnings Call Transcripts

Earnings call transcripts are invaluable resources for investors, analysts, and financial enthusiasts. They provide insights into a company's performance, strategy, and future outlook, making them essential for making informed investment decisions. With Financial Modeling Prep, Earnings Call Transcr...

blog post title
FMP

FMP

Financial Modeling Prep API provides real time stock price, company financial statements, major index prices, stock historical data, forex real time rate and cryptocurrencies. Financial Modeling Prep stock price API is in real time, the company reports can be found in quarter or annual format, and goes back 30 years in history.
twitterlinkedinfacebookinstagram
2017-2024 © Financial Modeling Prep