ChowAPI is now in open beta — sign up and start building today.
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 flask requests
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
import requests
from flask import Flask, request, jsonify

app = Flask(__name__)
API_BASE = "https://api.chowapi.dev/v1"
API_KEY = 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

    res = requests.get(
        f"{API_BASE}/search",
        params={"q": query, "limit": 10},
        headers={"Authorization": f"Bearer {API_KEY}"},
    )
    data = res.json()
    return jsonify({
        "results": [
            {
                "name": food["name"],
                "brand": food.get("brand"),
                "calories": food["nutrients"]["calories"],
                "protein": food["nutrients"]["protein_g"],
                "carbs": food["nutrients"]["carbs_g"],
                "fat": food["nutrients"]["fat_g"],
            }
            for food in data["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", "")
    res = requests.get(
        f"{API_BASE}/search",
        params={"q": query, "limit": 10},
        headers={"Authorization": f"Bearer {API_KEY}"},
    )
    return jsonify(res.json())

Start building

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