|

|  How to Fetch Cryptocurrency Market Data Using CryptoCompare API in Node.js

How to Fetch Cryptocurrency Market Data Using CryptoCompare API in Node.js

October 31, 2024

Learn how to fetch cryptocurrency market data with CryptoCompare's API in Node.js. Step-by-step guide for seamless integration and data retrieval.

How to Fetch Cryptocurrency Market Data Using CryptoCompare API in Node.js

 

Installation and Setup

 

  • Ensure you have Node.js and npm installed on your machine. You can verify this by running node -v and npm -v.
  •  

  • Create a new Node.js project if you haven't already. Run npm init -y to generate a package.json file with default settings.
  •  

  • Install the necessary packages for making HTTP requests. Given the simplicity, we'll use axios because it has a clean API. Install it by running npm install axios.

 

Setup Environment Variables

 

  • The CryptoCompare API often requires an API key for access. Store this securely using environment variables. Create a file named .env in your project's root directory.
  •  

  • Add your CryptoCompare API key to the .env file like this: CRYPTOCOMPARE_API_KEY=your_api_key\_here.
  •  

  • Install the dotenv package to access environment variables within your Node.js application by running npm install dotenv.

 

Fetching Market Data from CryptoCompare

 

  • Create a new file, for example, fetchCryptoData.js, and include the following code:

 

require('dotenv').config();
const axios = require('axios');

// Function to fetch cryptocurrency market data
async function getCryptoMarketData(cryptoSymbols, currency) {
    const apiKey = process.env.CRYPTOCOMPARE_API_KEY;
    const url = `https://min-api.cryptocompare.com/data/pricemulti?fsyms=${cryptoSymbols}&tsyms=${currency}&api_key=${apiKey}`;

    try {
        const response = await axios.get(url);
        console.log(response.data);
        return response.data;
    } catch (error) {
        console.error('Error fetching data:', error);
        return null;
    }
}

// Example usage: Fetch data for BTC and ETH in USD
getCryptoMarketData('BTC,ETH', 'USD');

 

  • This script fetches market data for specified cryptocurrencies in the desired fiat currency. You can adjust the parameters as needed in the getCryptoMarketData function call.
  •  

  • Ensure that the script correctly accesses the API key stored in your .env file.

 

Advanced Customizations

 

  • To fetch additional types of data (like historical pricing or exchange volumes), refer to the CryptoCompare API documentation for the correct endpoints and parameters.
  •  

  • You can add more arguments to the function and dynamically build the URL based on the required data. Here’s an illustrative example of fetching historical data:

 

async function getHistoricalData(cryptoSymbol, currency, limit=10) {
    const apiKey = process.env.CRYPTOCOMPARE_API_KEY;
    const url = `https://min-api.cryptocompare.com/data/v2/histoday?fsym=${cryptoSymbol}&tsym=${currency}&limit=${limit}&api_key=${apiKey}`;

    try {
        const response = await axios.get(url);
        console.log(response.data.Data);
        return response.data.Data;
    } catch (error) {
        console.error('Error fetching historical data:', error);
        return null;
    }
}

// Example usage: Fetch historical data for BTC in USD with a limit of 5 days
getHistoricalData('BTC', 'USD', 5);

 

  • This example shows how to fetch daily historical data. You can adjust the limit parameter to customize the number of data points returned.
  •  

  • Use different endpoints within the CryptoCompare API to obtain various data metrics such as minute-by-minute data, daily averages, etc.