C
ChowAPI
SDKs & Guides
Flutter

Add nutrition data to your Flutter app

Search foods, scan barcodes, and display nutrition data in Flutter using the ChowAPI REST API.

Prerequisites

  • Flutter 3.10+
  • Dart 3.0+
  • ChowAPI key

Installation

1

Add http package

dart pub add http
2

Store your API key

lib/config.dart
// In lib/config.dart
const chowApiKey = String.fromEnvironment('CHOWAPI_KEY',
  defaultValue: 'chow_live_YOUR_KEY');

Code examples

Search foods

Create a ChowAPI client and search for foods.

lib/chow_api.dart
import 'dart:convert';
import 'package:http/http.dart' as http;

class ChowApiClient {
  final String apiKey;
  final String baseUrl = 'https://api.chowapi.dev/v1';

  ChowApiClient(this.apiKey);

  Future<List<Map<String, dynamic>>> search(String query, {int limit = 10}) async {
    final uri = Uri.parse('$baseUrl/search?q=$query&limit=$limit');
    final res = await http.get(uri, headers: {
      'Authorization': 'Bearer $apiKey',
    });

    if (res.statusCode != 200) throw Exception('Search failed: ${res.body}');

    final data = jsonDecode(res.body);
    return List<Map<String, dynamic>>.from(data['results']);
  }
}
Flutter Pattern

State management with Riverpod

Use Riverpod for reactive food search state management.

lib/providers/food_provider.dart
import 'package:flutter_riverpod/flutter_riverpod.dart';

final searchQueryProvider = StateProvider<String>((ref) => '');

final foodSearchProvider = FutureProvider.autoDispose<List<Map<String, dynamic>>>((ref) async {
  final query = ref.watch(searchQueryProvider);
  if (query.length < 2) return [];

  final client = ChowApiClient('chow_live_YOUR_KEY');
  return await client.search(query);
});

Start building

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