List daily totals
curl --request GET \
--url https://app.skcal.fit/api/nutrition \
--cookie __Secure-better-auth.session_token=import requests
url = "https://app.skcal.fit/api/nutrition"
headers = {"cookie": "__Secure-better-auth.session_token="}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {cookie: '__Secure-better-auth.session_token='}};
fetch('https://app.skcal.fit/api/nutrition', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.skcal.fit/api/nutrition",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_COOKIE => "__Secure-better-auth.session_token=",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://app.skcal.fit/api/nutrition"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("cookie", "__Secure-better-auth.session_token=")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://app.skcal.fit/api/nutrition")
.header("cookie", "__Secure-better-auth.session_token=")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.skcal.fit/api/nutrition")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["cookie"] = '__Secure-better-auth.session_token='
response = http.request(request)
puts response.read_body[
{
"userEmail": "nick@mintlify.com",
"date": "2026-06-29",
"kcal": 2150,
"proteinG": 168,
"hitProtein": true,
"adherence": "on"
}
]Nutrition
List daily totals
Returns up to 60 of the caller’s most recent daily nutrition roll-ups, newest first.
GET
/
api
/
nutrition
List daily totals
curl --request GET \
--url https://app.skcal.fit/api/nutrition \
--cookie __Secure-better-auth.session_token=import requests
url = "https://app.skcal.fit/api/nutrition"
headers = {"cookie": "__Secure-better-auth.session_token="}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {cookie: '__Secure-better-auth.session_token='}};
fetch('https://app.skcal.fit/api/nutrition', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.skcal.fit/api/nutrition",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_COOKIE => "__Secure-better-auth.session_token=",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://app.skcal.fit/api/nutrition"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("cookie", "__Secure-better-auth.session_token=")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://app.skcal.fit/api/nutrition")
.header("cookie", "__Secure-better-auth.session_token=")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.skcal.fit/api/nutrition")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["cookie"] = '__Secure-better-auth.session_token='
response = http.request(request)
puts response.read_body[
{
"userEmail": "nick@mintlify.com",
"date": "2026-06-29",
"kcal": 2150,
"proteinG": 168,
"hitProtein": true,
"adherence": "on"
}
]Authorizations
sessionCookiebearerApiKey
Better Auth session. Signing in (Google or email magic link) sets an HttpOnly session cookie that scopes every request to that account. The web app and CLI use this; agents use the OAuth 2.1 flow of the MCP server.
Response
200 - application/json
Daily nutrition totals, newest first.
Owning account email.
Example:
"nick@mintlify.com"
Calendar day these totals cover (YYYY-MM-DD).
Example:
"2026-06-29"
Total calories logged that day.
Example:
2150
Total protein in grams logged that day.
Example:
168
Whether the day's protein target was met.
Example:
true
Calorie adherence bucket for the day.
Available options:
under, on, over, null Example:
"on"