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.