Skip to content

[Feature]: Add Swiss Food Composition Database (naehrwertdaten.ch) as Food Provider #788

@Coven82

Description

@Coven82

Currently, none of the available food providers deliver German-language search results for generic/unprocessed foods. This is a significant limitation for users in the DACH region (Germany, Austria, Switzerland):

  • USDA: English only, no language parameter supported
  • FatSecret: German localization requires a paid Premier account, and SparkyFitness doesn't pass region/language parameters to the API anyway
  • OpenFoodFacts: Primarily covers packaged/branded products with barcodes — searching for generic items like "Mango" or "Reis" yields poor or no results
  • Nutritionix: English only

Searching for basic foods like "Mango", "Kartoffel", or "Haferflocken" in German is currently not possible with any provider.

Proposed Solution

Add the Swiss Food Composition Database (Schweizer Nährwertdatenbank) as a new food provider.

Website: https://naehrwertdaten.ch
Operator: Swiss Federal Food Safety and Veterinary Office (BLV)
API Documentation: https://naehrwertdaten.ch/de/downloads/ (API description available as .docx download)

Why this database is an excellent fit

Feature Detail
Language Native support for German, French, Italian, and English
Content 1,220 generic foods (fruits, vegetables, grains, dairy, meat, etc.) — exactly what users need for daily food tracking
License Free for commercial use with source attribution
API REST API, no API key required
Data quality Maintained by Swiss government, scientifically curated by SGE (Swiss Society for Nutrition)
Nutrients Macronutrients (carbs, protein, fat, fiber, sugar), vitamins, minerals, fatty acid profiles

Key advantages over existing providers for DACH users

  • German food names natively — no translation needed
  • Generic foods focus — covers unprocessed/whole foods that OpenFoodFacts lacks
  • No API key required — zero setup friction for end users
  • Open data — aligns with the self-hosted / open-source philosophy of SparkyFitness
  • Complements existing providers — USDA for English, OpenFoodFacts for branded/packaged, Swiss DB for German generic foods

Implementation Notes

The provider could follow the same architecture as the existing USDA provider. Key API endpoints:

  • Search foods by name (supports German search terms)
  • Retrieve nutrient details per food item
  • Language parameter to switch between de, fr, it, en

The API documentation is available as a downloadable .docx from the official site. The database is also available as an Excel download for reference.

Additional Context

  • SparkyFitness already supports German as a UI language, so this would complete the German-language experience for food tracking
  • The database covers ~1,220 foods which is sufficient for most daily tracking needs of generic/whole foods
  • Users can combine this provider with OpenFoodFacts for branded products, giving full German-language coverage

Who benefits

All SparkyFitness users in German-speaking countries (Germany, Austria, Switzerland) — and potentially French/Italian users as well, since the database supports those languages too.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    Status

    Ready

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions