NutriGym

NutriGym API

A small read-only API for pulling your NutriGym data into other tools. All endpoints below are versioned under /api/v1 and require an API key.

Authentication

Generate a key from Settings in the app. Send it on every request as a bearer token in the Authorization header:

Authorization: Bearer <your_api_key>

Generating a new key revokes any previous key for your account. Requests with a missing or invalid key receive a 401 response.

Response Shape

Every endpoint returns the same envelope:

{
  "ok": boolean,
  "message": string,
  "data": T | null
}

Endpoints

GET/api/v1/weight

Returns your logged weight entries over a trailing window of days, oldest first.

Query Parameters

NameTypeRequiredDescription
daysintegerNoNumber of trailing days to include. 1–365, defaults to 28.

Example Request

curl "https://nutrigym.softwarerror.com/api/v1/weight?days=7" \
  -H "Authorization: Bearer <your_api_key>"

Example Response

{
  "ok": true,
  "message": "Successfully retrieved weight.",
  "data": [
    { "date": "2026-07-04", "weight": 181.2 },
    { "date": "2026-07-06", "weight": 180.8 },
    { "date": "2026-07-11", "weight": 180.1 }
  ]
}
GET/api/v1/macros

Returns your current active macro goals.

Example Request

curl "https://nutrigym.softwarerror.com/api/v1/macros" \
  -H "Authorization: Bearer <your_api_key>"

Example Response

{
  "ok": true,
  "message": "Successfully retrieved macro goals.",
  "data": {
    "calories": 2400,
    "protein": 180,
    "carbs": 250,
    "fat": 70
  }
}
GET/api/v1/macros/tracked

Returns your logged (tracked) macros for the trailing 7-day window ending on the given date, oldest first.

Query Parameters

NameTypeRequiredDescription
datestring (YYYY-MM-DD)NoAnchor date for the 7-day window. Defaults to today (UTC).

Example Request

curl "https://nutrigym.softwarerror.com/api/v1/macros/tracked?date=2026-07-11" \
  -H "Authorization: Bearer <your_api_key>"

Example Response

{
  "ok": true,
  "message": "Successfully retrieved tracked macros.",
  "data": [
    { "date": "Sat", "protein": 142, "carbs": 210, "fat": 61 },
    { "date": "Sun", "protein": 155, "carbs": 198, "fat": 58 },
    { "date": "Mon", "protein": 130, "carbs": 220, "fat": 65 },
    { "date": "Tue", "protein": 148, "carbs": 205, "fat": 60 },
    { "date": "Wed", "protein": 160, "carbs": 190, "fat": 55 },
    { "date": "Thu", "protein": 138, "carbs": 215, "fat": 63 },
    { "date": "Fri", "protein": 150, "carbs": 200, "fat": 59 }
  ]
}

Errors

A missing or invalid API key returns:

{
  "ok": false,
  "message": "Invalid or missing API key.",
  "data": null
}