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.3.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.3.0-py3-none-any.whl (64.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: openfoodfacts-5.3.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.3.0.tar.gz
Algorithm Hash digest
SHA256 7d62170b390ee33f2f87e82e909642cf17d58e6fd8ba787c8ee70798373dab7b
MD5 5e8726790fbd2d0dfe68e3413fe50757
BLAKE2b-256 0846ddf2e944688d9133f06366e9208ea655dcd623cc2bece4b8b835fa3c4403

See more details on using hashes here.

File details

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

File metadata

  • Download URL: openfoodfacts-5.3.0-py3-none-any.whl
  • Upload date:
  • Size: 64.9 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.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 00121bcaf476c1bac15c03ac5eb6c46fc31cd58a6b767eefa95e9e04148eb435
MD5 b2f237750f214682274b1f2e4b3982e9
BLAKE2b-256 f08a0cd7e05c52f7dc9137575fdd8b20bd0679145a5322b6c20f00331d5d5ef4

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