SDKs & Guides
Python Flask
Build a nutrition API wrapper with Flask
Create a Flask backend that wraps ChowAPI for food search, barcode lookup, and nutrition data.
Prerequisites
- Python 3.9+
- Flask
- ChowAPI key
Installation
1
Install dependencies
pip install chowapi flask2
Set your API key
export CHOWAPI_KEY=chow_live_YOUR_KEYCode examples
Search foods endpoint
Create a Flask route that wraps the ChowAPI search.
app.py
import os
from flask import Flask, request, jsonify
from chowapi import ChowAPI
app = Flask(__name__)
chow = ChowAPI(os.environ["CHOWAPI_KEY"])
@app.route("/api/search")
def search_foods():
query = request.args.get("q", "")
if len(query) < 2:
return jsonify({"error": "Query too short"}), 400
results = chow.search(query, limit=10)
return jsonify({
"results": [
{
"name": food.name,
"brand": food.brand,
"calories": food.nutrients.calories,
"protein": food.nutrients.protein_g,
"carbs": food.nutrients.carbs_g,
"fat": food.nutrients.fat_g,
}
for food in results.results
]
})Python Flask Pattern
Caching with Flask-Caching
Cache search results to reduce API calls.
app.py
from flask_caching import Cache
cache = Cache(app, config={"CACHE_TYPE": "simple"})
@app.route("/api/search")
@cache.cached(timeout=300, query_string=True) # Cache for 5 minutes
def search_foods():
query = request.args.get("q", "")
results = chow.search(query, limit=10)
return jsonify({"results": [...]})