{"library":"openfoodfacts","title":"Open Food Facts Python SDK","description":"The official Python SDK for the Open Food Facts project, providing a simple interface to the Open Food Facts API. It allows users to retrieve product information, perform text searches, and create/update products. It also includes helpers for taxonomies, data dump iteration, and OCR. The current version is 5.0.1. Please note that this SDK is still in beta, and its API is subject to frequent change. The library is actively maintained with major versions often released within weeks or months.","language":"python","status":"active","last_verified":"Fri May 15","install":{"commands":["pip install openfoodfacts"],"cli":null},"imports":["from openfoodfacts import API"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import os\nfrom openfoodfacts import API\n\n# User-Agent is mandatory for API calls\n# It's recommended to include your application name and version\nuser_agent = os.environ.get('OPENFOODFACTS_USER_AGENT', 'MyAwesomeApp/1.0 - (https://example.com/myapp)')\n\napi = API(user_agent=user_agent)\n\n# Get information about a product by barcode\nproduct_code = \"3017620422003\"  # Example: Nutella\nproduct_info = api.product.get(product_code, fields=[\"code\", \"product_name\", \"nutrition_grades\", \"ingredients_text\"])\n\nprint(f\"Product Name: {product_info.get('product', {}).get('product_name')}\")\nprint(f\"Nutri-Score: {product_info.get('product', {}).get('nutrition_grades')}\")\n\n# Perform a text search\nsearch_results = api.product.text_search(\"mineral water\")\nprint(f\"Found {search_results.get('count')} products for 'mineral water'.\")\nif search_results.get('products'):\n    print(f\"First result: {search_results['products'][0].get('product_name')}\")\n","lang":"python","description":"Instantiate the API client with a mandatory user agent, then retrieve product details by barcode or perform a text search. For write operations, authentication (username and password) is required.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-15","installed_version":"2.9.0","pypi_latest":"5.0.1","is_stale":true,"summary":{"python_range":"3.10–3.9","success_rate":100,"avg_install_s":4,"avg_import_s":1.03,"wheel_type":"wheel"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"openfoodfacts","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.91,"mem_mb":17.3,"disk_size":"32.3M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"openfoodfacts","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":4.5,"import_time_s":0.64,"mem_mb":17.3,"disk_size":"32M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"openfoodfacts","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":1.3,"mem_mb":19,"disk_size":"35.3M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"openfoodfacts","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":3.7,"import_time_s":1.1,"mem_mb":19,"disk_size":"35M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"openfoodfacts","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":1.42,"mem_mb":18.7,"disk_size":"26.8M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"openfoodfacts","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":3,"import_time_s":1.33,"mem_mb":18.7,"disk_size":"26M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"openfoodfacts","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":1.02,"mem_mb":17.8,"disk_size":"26.6M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"openfoodfacts","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":3.2,"import_time_s":0.97,"mem_mb":17.8,"disk_size":"26M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"openfoodfacts","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.83,"mem_mb":16.7,"disk_size":"31.5M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"openfoodfacts","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":5.5,"import_time_s":0.81,"mem_mb":16.7,"disk_size":"31M"}]}}