Skip to main content

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+.

Unofficial member-website recipe CRUD, recipe copying, and RDI operations are available through FatsecretWebClient. To run the optional authenticated HTTP facade, install fatsecret[facade]. These operations automate unstable member HTML forms and are not part of the supported FatSecret Platform API.

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"])

Both Fatsecret and FatsecretWebClient accept timeout and retries configuration. The default retry policy applies only to safe GET requests; mutations are never retried automatically.

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.

Release files for fatsecret 5.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for fatsecret 5.0.0
File Size Uploaded
fatsecret-5.0.0.tar.gz 57.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for fatsecret 5.0.0
File Interpreter ABI Platform
fatsecret-5.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 132.7 kB

Release files / fatsecret-5.0.0.tar.gz

Download URL fatsecret-5.0.0.tar.gz
Size 57.2 kB
Tags Source
SHA-256 checksum
How to use checksums
c0ac00ae53e8a32242da54856b5b180a06337ac6948ce9a5fb573b5fbd19ba5f
BLAKE2b-256 checksum
How to use checksums
b9c38e962ceb7943a6054dab0368eb7759fce473dcfbfc4c24eb98085bd4997b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.7 {"installer":{"name":"uv","version":"0.12.7","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}

Release files / fatsecret-5.0.0-py3-none-any.whl

Download URL fatsecret-5.0.0-py3-none-any.whl
Size 75.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5c5b737e81fb08f18d0bc6d6bf78abe9428372c42019e4c6d0776d76d6e71065
BLAKE2b-256 checksum
How to use checksums
aba331977c03c1b8676376306597602ec9b09de50887f628c167487c9ca381ca
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.7 {"installer":{"name":"uv","version":"0.12.7","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}

Release history Release notifications | RSS feed

5.1.1

2 release files

5.1.0

2 release files

This release

5.0.0 This release

2 release files

4.1.0

2 release files

4.0.9

2 release files

4.0.8

2 release files

4.0.7

2 release files

4.0.6

2 release files

4.0.5

2 release files

4.0.4

2 release files

4.0.3

2 release files

4.0.2

2 release files

4.0.1

2 release files

4.0.0

2 release files

3.2.0

2 release files

3.1.8

2 release files

3.1.7

2 release files

3.1.6

2 release files

3.1.5

2 release files

3.1.4

2 release files

3.1.3

2 release files

3.1.2

2 release files

3.1.1

2 release files

3.1.0

2 release files

3.0.6

2 release files

3.0.5

2 release files

3.0.4

2 release files

3.0.3

2 release files

3.0.2

2 release files

3.0.1

2 release files

3.0.0

2 release files

2.4.0

2 release files

2.3.5

2 release files

2.3.4

2 release files

2.3.3

2 release files

2.3.2

2 release files

2.3.1

2 release files

2.3.0

2 release files

2.2.2

2 release files

2.2.1

2 release files

2.2.0

2 release files

2.1.0

2 release files

2.0.1

2 release files

2.0.0

2 release files

1.9.0

2 release files

1.8.1

2 release files

1.8.0

2 release files

1.7.0

2 release files

1.6.0

2 release files

1.5.15

2 release files

1.5.14

2 release files

1.5.13

2 release files

1.5.12

2 release files

1.5.11

2 release files

1.5.10

2 release files

1.5.9

2 release files

1.5.8

2 release files

1.5.7

2 release files

1.5.6

2 release files

1.5.5

2 release files

1.5.4

2 release files

1.5.3

2 release files

1.5.2

2 release files

1.5.1

2 release files

1.5.0

2 release files

1.4.1

2 release files

1.4.0

2 release files

1.3.0

2 release files

1.2.2

2 release files

1.2.1

2 release files

1.2.0

2 release files

1.1.0

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

0.16.0

2 release files

0.15.0

2 release files

0.14.0

2 release files

0.13.0

2 release files

0.12.0

2 release files

0.11.0

2 release files

0.10.0

2 release files

0.9.0

2 release files

0.8.0

2 release files

0.7.0

2 release files

0.6.0

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.3

1 release file

0.2.1

1 release file

0.2.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page