Calories Burned API

The Calories Burned API calculates the total calories burned for hundreds of sports and activities. It supports custom weight and duration.

/v1/caloriesburnedactivities

HTTP GET

Returns the full list of activities supported by this API.

Parameters

None

Headers

X-Api-Key (required) - API Key associated with your account.

Request URL

https://api.api-ninjas.com/v1/caloriesburnedactivities

/v1/caloriesburned

HTTP GET

Returns the calories burned per hour and total calories burned according to given parameters for given activities (up to 10).

Parameters

activity (required) - name of the given activity. This value can be partial (e.g. ski will match water skiing and downhill skiing)

weight (optional) - weight of the user performing the activity in pounds. Must be between 50 and 500. Default value is 160.

duration (optional) - how long the activity was performed in minutes. Must be 1 or greater. Default value is 60 (1 hour).

Headers

X-Api-Key (required) - API Key associated with your account.

Sample Request URL

Live Demo!

https://api.api-ninjas.com/v1/caloriesburned?activity=

Sample Response

[
  {
    "name": "Skiing, water skiing",
    "calories_per_hour": 354,
    "duration_minutes": 60,
    "total_calories": 354
  },
  {
    "name": "Cross country snow skiing, slow",
    "calories_per_hour": 413,
    "duration_minutes": 60,
    "total_calories": 413
  },
  {
    "name": "Cross country skiing, moderate",
    "calories_per_hour": 472,
    "duration_minutes": 60,
    "total_calories": 472
  },
  {
    "name": "Cross country skiing, vigorous",
    "calories_per_hour": 531,
    "duration_minutes": 60,
    "total_calories": 531
  },
  {
    "name": "Cross country skiing, racing",
    "calories_per_hour": 826,
    "duration_minutes": 60,
    "total_calories": 826
  },
  {
    "name": "Cross country skiing, uphill",
    "calories_per_hour": 974,
    "duration_minutes": 60,
    "total_calories": 974
  },
  {
    "name": "Snow skiing, downhill skiing, light",
    "calories_per_hour": 295,
    "duration_minutes": 60,
    "total_calories": 295
  },
  {
    "name": "Downhill snow skiing, moderate",
    "calories_per_hour": 354,
    "duration_minutes": 60,
    "total_calories": 354
  },
  {
    "name": "Downhill snow skiing, racing",
    "calories_per_hour": 472,
    "duration_minutes": 60,
    "total_calories": 472
  }
]

import requests

activity = 'skiing'
api_url = 'https://api.api-ninjas.com/v1/caloriesburned?activity={}'.format(activity)
response = requests.get(api_url, headers={'X-Api-Key': 'YOUR_API_KEY'})
if response.status_code == requests.codes.ok:
    print(response.text)
else:
    print("Error:", response.status_code, response.text)
var activity = 'skiing'
$.ajax({
    method: 'GET',
    url: 'https://api.api-ninjas.com/v1/caloriesburned?activity=' + activity,
    headers: { 'X-Api-Key': 'YOUR_API_KEY'},
    contentType: 'application/json',
    success: function(result) {
        console.log(result);
    },
    error: function ajaxError(jqXHR) {
        console.error('Error: ', jqXHR.responseText);
    }
});
const request = require('request');
var activity = 'skiing';
request.get({
  url: 'https://api.api-ninjas.com/v1/caloriesburned?activity=' + activity,
  headers: {
    'X-Api-Key': 'YOUR_API_KEY'
  },
}, function(error, response, body) {
  if(error) return console.error('Request failed:', error);
  else if(response.statusCode != 200) return console.error('Error:', response.statusCode, body.toString('utf8'));
  else console.log(body)
});
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;

import com.fasterxml.jackson.databind.ObjectMapper;

URL url = new URL("https://api.api-ninjas.com/v1/caloriesburned?activity=skiing");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestProperty("accept", "application/json");
InputStream responseStream = connection.getInputStream();
ObjectMapper mapper = new ObjectMapper();
JsonNode root = mapper.readTree(responseStream);
System.out.println(root.path("fact").asText());
let activity = "skiing".addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)
let url = URL(string: "https://api.api-ninjas.com/v1/caloriesburned?activity="+activity!)!
var request = URLRequest(url: url)
request.setValue("YOUR_API_KEY", forHTTPHeaderField: "X-Api-Key")
let task = URLSession.shared.dataTask(with: request) {(data, response, error) in
    guard let data = data else { return }
    print(String(data: data, encoding: .utf8)!)
}
task.resume()
If your programming language is not listed in the Code Example above, you can still make API calls by using a HTTP request library written in your programming language and following the above documentation.