SparkyFitness Nutrition & Meals API

Food database, diary logging, meal planning, and nutritional preferences.

Operations 88

POST /custom-nutrients Create a new custom nutrient #
GET /custom-nutrients Retrieve all custom nutrients #
POST /custom-nutrients/from-catalog Find-or-create custom nutrients from the canonical micronutrient catalog #
GET /custom-nutrients/{id} Retrieve a single custom nutrient by ID #
PUT /custom-nutrients/{id} Update a custom nutrient #
DELETE /custom-nutrients/{id} Delete a custom nutrient #
GET /favorites List the user's favorite (starred) foods and meals #
POST /favorites/{type}/{id} Star a food or meal as a favorite #
DELETE /favorites/{type}/{id} Remove a food or meal from favorites #
GET /foods/search Search for foods (AI-dedicated) #
GET /foods Search for foods #
POST /foods Create a new food #
GET /foods/foods-paginated Get foods with pagination #
POST /foods/food-variants Create a new food variant #
GET /foods/food-variants Get food variants by food ID #
POST /foods/food-variants/bulk Bulk create food variants #
GET /foods/food-variants/{id} Get a food variant by ID #
PUT /foods/food-variants/{id} Update a food variant #
DELETE /foods/food-variants/{id} Delete a food variant #
GET /foods/barcode/{barcode} Look up a food by barcode #
GET /foods/{foodId} Get a food by ID #
PUT /foods/{id} Update a food #
DELETE /foods/{id} Delete a food #
GET /foods/{id}/deletion-impact Get food deletion impact #
POST /foods/import-from-csv Import foods from CSV #
GET /foods/needs-review Get foods needing review #
POST /foods/update-snapshot Update food entries snapshot #
POST /food-entry-meals Create a new FoodEntryMeal #
GET /food-entry-meals/by-date/{date} Get FoodEntryMeals by date #
GET /food-entry-meals/{id} Get a specific FoodEntryMeal with its components #
PUT /food-entry-meals/{id} Update an existing FoodEntryMeal #
DELETE /food-entry-meals/{id} Delete a FoodEntryMeal #
POST /food-entry-meals/{id}/image Set a logged meal's override photo #
DELETE /food-entry-meals/{id}/image Clear a logged meal's override photo #
GET /food-entries/export/csv Export all food entries as CSV #
POST /food-entries/import-from-csv Import diary log entries from CSV #
POST /food-entries Create a new food entry #
GET /food-entries Get food entries by selected date #
POST /food-entries/copy Copy food entries from one meal to another #
POST /food-entries/copy-from-user Copy food entries from a family member's diary to the active user's diary #
POST /food-entries/copy-reviewed-from-user Copy an unchanged reviewed family meal into the authenticated user's diary #
POST /food-entries/copy-selected-from-user Copy selected food entries from a family member's diary #
POST /food-entries/copy-to-user Copy food entries from the active user's diary to a family member's diary #
POST /food-entries/copy-yesterday Copy food entries from yesterday's meal #
POST /food-entries/copy-all Copy all food entries from one day to another #
POST /food-entries/copy-all-yesterday Copy all food entries from yesterday #
PUT /food-entries/{id} Update a food entry #
DELETE /food-entries/{id} Delete a food entry #
GET /food-entries/by-date/{date} Get all food entries for a specific date #
GET /food-entries/range/{startDate}/{endDate} Get food entries within a date range #
GET /food-entries/nutrition/today Get daily nutrition summary #
POST /food-entries/{id}/image Set the per-entry override photo for a diary entry #
DELETE /food-entries/{id}/image Clear a diary entry's override photo #
GET /foods/food-entries/{date} Get food entries by date (re-routed) #
POST /meal-plan-templates Create a new meal plan template #
GET /meal-plan-templates Get all meal plan templates for a user #
PUT /meal-plan-templates/{id} Update a meal plan template #
DELETE /meal-plan-templates/{id} Delete a meal plan template #
POST /meal-plan-templates/{id}/duplicate Duplicate a meal plan template #
POST /meals/plan Create a new meal plan entry #
GET /meals/plan Get meal plan entries for a specific date or date range #
PUT /meals/plan/{id} Update a meal plan entry #
DELETE /meals/plan/{id} Delete a meal plan entry #
POST /meals Create a new meal template #
GET /meals Get all meal templates for the user #
GET /meals/recent Get recently logged meal templates #
GET /meals/top Get most frequently logged meal templates #
GET /meals/search Search for meal templates #
GET /meals/{id} Get a specific meal template by ID #
PUT /meals/{id} Update an existing meal template #
DELETE /meals/{id} Delete a meal template #
GET /meals/{id}/deletion-impact Get the deletion impact for a meal #
POST /meals/plan/{id}/log-to-diary Log a specific meal plan entry to the food diary #
POST /meals/plan/log-day-to-diary Log all meal plan entries for a specific day to the food diary #
GET /meals/needs-review Get meals needing review #
POST /meals/update-snapshot Update meal entries snapshot #
POST /meals/create-meal-from-diary Create a meal from diary entries #
GET /meal-types Retrieve all meal types #
POST /meal-types Create a new custom meal type #
GET /meal-types/{id} Retrieve a single meal type by ID #
PUT /meal-types/{id} Update a meal type #
DELETE /meal-types/{id} Delete a custom meal type #
GET /preferences/nutrient-display Get all nutrient display preferences for the logged-in user #
PUT /preferences/nutrient-display/{viewGroup}/{platform} Upsert a nutrient display preference #
DELETE /preferences/nutrient-display/{viewGroup}/{platform} Reset a nutrient display preference to default #
GET /nutrient-goal-preferences Get effective goal-direction preferences for every nutrient #
PUT /nutrient-goal-preferences/{nutrientKey} Set a nutrient's goal-direction override #
DELETE /nutrient-goal-preferences/{nutrientKey} Reset a nutrient's goal direction to its built-in default #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/sparkyfitness-nutrition-meals-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

sparkyfitness-nutrition-meals-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: SparkyFitness Nutrition & Meals API
  version: 1.0.0
  description: API documentation for the SparkyFitness application, providing a comprehensive guide to all available endpoints.
  contact:
    name: SparkyFitness Support
servers:
- url: https://{host}/api
  description: Self-hosted SparkyFitness instance (the operator supplies the host). The upstream spec declares the relative base "/api".
  variables:
    host:
      default: sparkyfitness.example.com
      description: Hostname of your own SparkyFitness deployment. SparkyFitness is self-hosted; there is no vendor-operated API host.
security:
- apiKeyAuth: []
tags:


# --- truncated at 32 KB (104 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/sparkyfitness/refs/heads/main/openapi/sparkyfitness-nutrition-meals-api-openapi.yml