Skip to main content

Official Python SDK of Open Food Facts

Project description

Open Food Facts Python SDK

Open Food Facts

Status

Project Status Build Status codecov Latest Version License: MIT

Description

This is the official Python SDK for the Open Food Facts project. It provides a simple interface to the Open Food Facts API and allows you to:

  • Get information about a product
  • Perform text search
  • Create a new product or update an existing one

It also provides some helper functions to make it easier to work with Open Food Facts data and APIs, such as:

  • getting translation of a taxonomized field in a given language
  • downloading and iterating over the Open Food Facts data dump
  • handling OCRs of Open Food Facts images generated by Google Cloud Vision

Please note that this SDK is still in beta and the API is subject to change. Make sure to pin the version in your requirements file.

Third party applications

If you use this SDK or want to use this SDK, make sure to read the REUSE and ensure you comply with the OdBL licence, in addition to the licence of this package (MIT). Make sure you at least fill the form, and feel free to open a PR to add your application in this list :-)

Installation

The easiest way to install the SDK is through pip:

pip install openfoodfacts

or manually from source:

git clone https://github.com/openfoodfacts/openfoodfacts-python
cd openfoodfacts-python
pip install .  # Note the “.” at the end!

Examples

All the examples below assume that you have imported the SDK and instantiated the API object:

import openfoodfacts

# User-Agent is mandatory
api = openfoodfacts.API(user_agent="MyAwesomeApp/1.0")

Get information about a product

code = "3017620422003"
api.product.get(code, fields=["code", "product_name"])
# {'code': '3017620422003', 'product_name': 'Nutella'}

Perform text search

api.product.text_search("mineral water")
# {"count": 3006628, "page": 1, "page_count": 20, "page_size": 20, "products": [{...}], "skip": 0}

Create a new product or update an existing one

results = api.product.update({
    "code": CODE,
    "product_name_en": "blueberry jam",
    "ingredients_text_en": "blueberries, sugar, pectin, citric acid"
})

with CODE the product barcode. The rest of the body should be a dictionary of fields to create/update.

To see all possible capabilities, check out the usage guide.

Contributing

See CONTRIBUTING.md

Copyright and License

Copyright 2016-2024 Open Food Facts

The Open Food Facts Python SDK is licensed under the MIT License.

Other files that are not part of the SDK itself may be under different a different license. The project complies with the REUSE 3.3 specification, so any such files should be marked accordingly.

Project details


Download files

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

Source Distribution

openfoodfacts-5.2.0.tar.gz (61.3 kB view details)

Uploaded Source

Built Distribution

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

openfoodfacts-5.2.0-py3-none-any.whl (64.8 kB view details)

Uploaded Python 3

File details

Details for the file openfoodfacts-5.2.0.tar.gz.

File metadata

  • Download URL: openfoodfacts-5.2.0.tar.gz
  • Upload date:
  • Size: 61.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","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 openfoodfacts-5.2.0.tar.gz
Algorithm Hash digest
SHA256 19d25beb232179080ceb25ad6cefc31695a9c2a1ccf449f30e04e0c04aae7243
MD5 d7b6c8f9822dcc12f4b4fc44138c5e79
BLAKE2b-256 a5f0f0363bf207e2083d6c25e01bb395e6095838cc2a8d2a664277c254d440e6

See more details on using hashes here.

File details

Details for the file openfoodfacts-5.2.0-py3-none-any.whl.

File metadata

  • Download URL: openfoodfacts-5.2.0-py3-none-any.whl
  • Upload date:
  • Size: 64.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","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 openfoodfacts-5.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 06cd366adaa337b485efddbcca833d56cbb2c9afadd6cf33a00bb39cbb1607ed
MD5 c32c3408b6941e2f1b88ccb92614bf33
BLAKE2b-256 881ec0b161915ca182aef853aec5e6b764d458f0cc5c3bfa4e455f5c64f23a9c

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