Skip to main content

Python wrapper for the Fatsecret API

Project description

fatsecret

status Documentation Status

This library provides a lightweight python wrapper for the Fatsecret API with the goal of making it easier to visualize the data retrieved from the API. To that end, this library will usually return lists of identical elements for ease of plotting, discarding extra header fields that the Fatsecret API otherwise includes. All API calls return either a single or list of JSON dictionaries.

What's new in v3

Methods on the namespaced surface (fs.foods.*, fs.recipes.*, fs.diary.*, fs.profile.*, fs.weight.*, fs.exercises.*) now return typed Pydantic v2 models — Food, Recipe, Profile, FoodEntry, ExerciseEntry, Day, etc. — instead of plain dicts. Use dotted attribute access (food.food_id, not food["food_id"]) or call .to_dict() on any model for the v2 dict shape. pydantic>=2.7 is now a base dependency. See the v3 migration guide for side-by-side examples and the four resources (Food Classification, Saved Meals, Native APIs, Feedback) that intentionally still return dicts.

Installation

pip install fatsecret

Requires Python 3.11+.

Config

Register for a developer account at Fatsecret. You will need your Consumer Key and Consumer Secret key for your application.

Usage

Fatsecret supports both delegated and public calls. Only through delegated calls can you access Fatsecret user profile data.

If you only need public data:

from fatsecret import Fatsecret

fs = Fatsecret(consumer_key, consumer_secret)
foods = fs.foods_search_v5("Tacos")          # current upstream version
# or, to pin to a specific historical shape:
foods = fs.foods_search_v1("Tacos")

Every method carries an explicit _vN version suffix matching FatSecret's multi-version API. Unsuffixed names (foods_search, food_get, …) still exist as DeprecationWarning-emitting aliases and will be removed in v2.0. Surface the warnings during development:

python -W default::DeprecationWarning:fatsecret your_script.py

For OAuth2 client-credentials (required for Premier / Native endpoints):

fs = Fatsecret(client_id, client_secret, auth="oauth2", scopes=["basic", "premier"])

Refer to the documentation for further examples and detail.

Documentation

Docs are published to Read the Docs. Every released tag and the current master branch are auto-built — use the version dropdown in the bottom-left flyout to switch between them.

Contributing

All contributions are welcome! I'm not actively maintaining this library, so there's a good chance that any API changes have not been implemented in this wrapper.

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fatsecret-3.0.0.tar.gz (25.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

fatsecret-3.0.0-py3-none-any.whl (39.2 kB view details)

Uploaded Python 3

File details

Details for the file fatsecret-3.0.0.tar.gz.

File metadata

  • Download URL: fatsecret-3.0.0.tar.gz
  • Upload date:
  • Size: 25.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.14 {"installer":{"name":"uv","version":"0.11.14","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for fatsecret-3.0.0.tar.gz
Algorithm Hash digest
SHA256 e33f94ab76227356e1b1f42f7e81f5f2dc49cf6dba6d3c4d5f22da87995c138d
MD5 1be922f716a0ceecb7c211938e12017a
BLAKE2b-256 79a6f08d18725c86b182b08f7f29b6ca3909fc56375efac0472f798e3f0ced43

See more details on using hashes here.

File details

Details for the file fatsecret-3.0.0-py3-none-any.whl.

File metadata

  • Download URL: fatsecret-3.0.0-py3-none-any.whl
  • Upload date:
  • Size: 39.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.14 {"installer":{"name":"uv","version":"0.11.14","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for fatsecret-3.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c4275d84e508b242e528b9e9ac79d3d983d43fbcf2a66b7bd93cbdd1c83b39c9
MD5 fd6b31f4d8b7a8e3914642aadf53bd59
BLAKE2b-256 1064fc37e6b64bf186f91975610fe4c41cb0bb4e2ac8bd553c923da277c2d568

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page