C
ChowAPI
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 flask
2

Set your API key

export CHOWAPI_KEY=chow_live_YOUR_KEY

Code 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": [...]})

Start building

Credit packs from $5. Pay only for what you use.