Skip welcome & menu and move to editor
Welcome to JS Bin
Load cached copy from
 
<!DOCTYPE html>
<html>
<head>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/3.7.1/chart.min.js"></script>
  <script src="https://cdn.jsdelivr.net/npm/chartjs-adapter-date-fns/dist/chartjs-adapter-date-fns.bundle.min.js"></script>
</head>
<body>
  <canvas id="chart" width="800" height="400"></canvas>
</body>
</html>
 
// jshint esnext: true
// This API key is only for testing, don't use this in production
const apiKey = 'coinrankingchartexample';
const url = 'https://api.coinranking.com/v2/coin/Qwsogvtv82FCd/history';
const queryString = new URLSearchParams({
  'x-access-token': apiKey,
});
const ctx = document.getElementById('chart');
const valutaFormatter = new Intl.NumberFormat('en-US', {
  style: 'currency',
  currency: 'USD',
});
// Add the API key to the querystring
fetch(`${url}?${queryString}`)
  .then((response) => response.json())
  .then((response) => {
    if (response.status === 'success') {
      const history = response.data.history.reverse();
      const dataset = history.map((item) => item.price);
      const labels = history.map((item) => Number(item.timestamp) * 1000);
      const data = {
        datasets: [{
          label: 'Bitcoin price',
          data: dataset,
          borderColor: '#307eff',
          backgroundColor: 'rgba(18, 107, 255, 0.3)',
        }],
        labels: labels,
      };
      const config = {
        type: 'line',
        data: data,
        options: {
          responsive: false,
          scales: {
            y: {
              ticks: {
                // Include a dollar sign in the ticks
                callback: (value) => valutaFormatter.format(value),
              },
            },
            x: {
              type: 'timeseries',
            },
          },
        },
      };
      const chart = new Chart(ctx, config);
    } else {
      // Show error message if the request failed
      document.write(response.message);
    }
  })
  .catch((error) => {
    console.error(error);
  });
Output

You can jump to the latest bin by adding /latest to your URL

Dismiss x
public
Bin info
nickpaterpro
0viewers