The CoinMarketCap Pro API is a great source for cryptocurrency data on current and historical prices, exchange information and more. If it is your wish to use Excel to import CoinMarketCap API data, and have it updated live, look no further. In this article, I will show you how to use a query to import current prices into Excel and have them updated regularly using the methods shown in the Import JSON Data in Excel article. Be aware that this works best with Excel 2016 or greater, and doesn’t work with Excel for Mac. If you are using Excel 2013 or prior, you will need to install Power Query before attempting these steps.
Getting Current Latest Price Quotes
With the CoinMarketCap API, current quotes are handled by the https://pro-api.coinmarketcap.com/v1/cryptocurrency/quotes/latest
endpoint. In order for proper data to be returned, a proper API key (sign up on their website) must be passed as a header item and cryptocurrencies to return selected by the id/slug/symbol parameters. For this example, I will use the symbol parameter.
Step 1: Setup the CoinMarketCap Web Request in Excel
To pull the data into Excel, we use a web query. Under the Data tab in the ribbon, select Get Data > From Other Sources > From Web.

Next, we need to input the URL we want to use and setup our API key as a header item to authenticate with CoinMarketCap. Make sure the Advanced radio button is selected. Enter the API URL you would like to get data from in the top box of URL parts. In this case, I have used https://pro-api.coinmarketcap.com/v1/cryptocurrency/quotes/latest?symbol=BTC,LTC
to get the latest prices of BTC and LTC. Then, under HTTP request header parameters type X-CMC_PRO_API_KEY in the dropdown box. Paste your API key from CoinMarketCap in the box beside. Click OK. If you are asked how you would like to authenticate with the website, choose Anonymous. By putting our API key as a header item, we are already setup to authenticate with CoinMarketCap, so no further configuration is necessary.

Step 2: Create the Tables in the Excel Query Editor
Next, create the right tables using the query editor from the returned data. Because this takes many clicks, please refer to the video below to guide you. The flow is essentially to click into data, we can disregard the status object. Then, convert to table by clicking Into Table as this is already the point we will see the list of quotes. Then, expand the value record by clicking the two arrows on the header and check off anything you are interested in. In this case, I just want the quote so I only expand that and keep expanding records as long as you want to get the data you need. Then, Close & Load.
Step 3: Finished CoinMarketCap Table in Excel and Setup Auto Refresh
Once you click Close & Load in the query editor, you should see the data in Excel as a table.

At this point, you may wish to setup auto-refresh. To do this, go into Connection Properties under Refresh All. Make sure your cursor is on a cell in the table if the Connection Properties button is greyed out.

Then, you can configure auto-refresh in the properties by checking the “Refresh every” box and setting the frequency. You can also choose to have the data updated every time the file is opened. Keep in mind that on the Basic plan, CoinMarketCap only allows 300 requests per day so refreshing more often isn’t necessarily better if you don’t require frequent refreshes for your purposes.

That’s it!
Next step: Become a Power Query wizard!
Recommended reading: Collect, Combine, and Transform Data Using Power Query in Excel
There are no words to show my appreciation!
How can we import data of all cryptocurrencies since CMC limits the data to 100 for 1 query…thank you.
would be of interest for me as well-thx
https://pro-api.coinmarketcap.com/v1/cryptocurrency/listings/latest?symbol=BTC&CMC_PRO_API_KEY=YOUR_API_KEY&start=1&limit=600
This will pull the 1st 600 Cryptos
Great, worked a treat.
Can you show how to get either BTC into Excel in Euros, or, show how to get the USD/EUR FX rate into excel.
Thanks.
Would be of interest for me as well-thx
Converting in Excel by using a fixed exchange rate does not match the figures you see on CMC…
If you convert the rate using a fixed exchange rate it probably won’t match CMC because the EUR market will be run separately than the USD market and therefore converting the BTCUSD rate to BTCEUR won’t necessarily match the exchange rate exactly. Might even be an arbitrage opportunity but usually not.
Great job! Thanks
Thank you! The video was especially helpful
Thank you! Very thorough and explanatory! I have a problem tho, I can’t sign up fro CoinMarketCap free API, it simply results ‘Not Found’ after I click the button for Sign up. Is this feature still available?
try to log out from you current coinmarketcap account, I had the same problem and after that I was able to activate my api account using the same credential (email and name + adding of course the name and selecting the plan)
Thanks for the instructions, they were quite helpful. Is there a way to return the price of a coin in BTC value (sats)? E.g. ETH/BTC instead of ETH/USD
The convert option doesn’t just accept fiat currencies, it also accepts BTC as a value. You can use it to get ETH/BTC.
This is great news. Except, I don’t see anything in the instructions about the “convert option”. Can you advise how to do this please?
You need to add it into the URL. It is documented in CoinMarketCap’s documentation, not this tutorial.
Are there any work-arounds to getting this to work on a Mac?
Not that I know of at the moment using this method. I know they have implemented some of the query code but don’t have the interface set up so you may be able to get someone to set it up on Windows and then open the file on a Mac if you have the latest 365 version. Otherwise, have a look at my Google Maps VBA tutorial (https://syntaxbytetutorials.com/excel-function-to-calculate-distance-using-google-maps-api-with-vba/) The code there could be adapted for use with CoinMarketCap and that will work on mac.
How could I connect from excel to an API that needs me to send him first by POST USER and Password and he answers me with a json where they see a token and then consult again by GET placing the token in the head all this from excel.
You may need to use VBA or multiple queries in this case. However, you could try the “Access Web content” dialog box that pops up when you connect.
I have been working on this for 3 hours, saw your video and i was done in 20 minutes. Thank you so much.
Great tutorial! Thanks!
How would i display prices in GBP instead of USD?
By adding the convert option to the URL, just like so: https://pro-api.coinmarketcap.com/v1/cryptocurrency/quotes/latest?symbol=btc&convert=gbp
How to set this link up for multiple crypto? for example BTC and LTC?
https://pro-api.coinmarketcap.com/v1/cryptocurrency/quotes/latest?symbol=BTC,LTC,ETH,XRP&convert=gbp
Hi,
All works well until excel is closed. I use version 2016
When open the file again is deleting the API.
It says: ,, we foun a problem ……query tables deleted”
Don’t understand what the problem is ???
Do you have any idea?
Thank you.
Sounds like it’s a rare bug. Make sure you are saving the file before you close it. Maybe the solution presented here will help you: https://social.technet.microsoft.com/Forums/en-US/f08eb38c-36ba-4b06-9f3c-597f5a3966d3/excel-deletes-the-query-tables-automatically-on-reopening-the-file?forum=excel
Do you know how I might get historical Bitcoin prices? Thanks
Rather than using
https://pro-api.coinmarketcap.com/v1/cryptocurrency/quotes/latest
you would usehttps://pro-api.coinmarketcap.com/v1/cryptocurrency/quotes/historical
. This is a premium endpoint of CoinMarketCap’s API and is only available on the standard plan and up.Would you need historical access to get all time high prices for a list of coins ?
Been tryign to add a column for ATH for data im receiving through the API using the above explained method. – Any ideas ?
It’s possible to get historical data using CMC but I believe data more than a certain age is paid. Have a look at their API docs.
Some coins use the same symbol. For instance, CND may refer to Cindicator or Cannadrix. How can I specify that I want “CND” to get the quote for Cindicator in my query?
Have a look at their best practices doc: https://coinmarketcap.com/api/documentation/v1/#section/Best-Practices. As they mention, you need to use a CMC id in these cases.
Where can you find the IDs on Coinmarketcap.com? I can’t find them for the life of me on a given coin/token page and the ID isn’t used in the URL.
I notice on coinmarketcap that they list specific exchanges including ByBit – I would love to get the perpetual contracts BTCUSD price specifically from the ByBit exchange – any idea if this is possible and what the endpoint would be? (and if available to non-subscribers) Thanks.
anyone?
is there any way to stop the data being presented as a table? Can it just be embedded into a cell and look and appear just like normal text? To be able to change its font colour, background colour, yet still function as a live update query cell? Thanks.
Very Nice tutorial. Worked perfectly. Thanks!
It’s such a great tutorial, but I get stuck in the loading data step. Instead of show table with data, it show the login page instead. Please help me with this error. Thank you very much.
I don’t understand where you are stuck. Does the Query editor open with the login page data from CMC or there is an Excel login page? For the Excel login page, usually you just want to choose anonymous. The CMC auth is done using HTTP headers. If excel isn’t showing an anonymous option, just start again with a fresh workbook. If it’s pulling the login page data from CMC, something is wrong with your URL or HTTP headers.