---
title: "Search Foods"
method: GET
path: "/api/v1/search/foods"
tags: ["search"]
---

# Search Foods

`GET /api/v1/search/foods`

## Request

- Base URL: `https://calorieapiadmin.com`
- URL: `https://calorieapiadmin.com/api/v1/search/foods`
- Auth: none declared

Search foods with advanced multi-word matching and ranking.

Features:
- Multi-word query support with word-order independence
- Intelligent ranking: exact phrase > all words > most words > any word
- Returns complete nutrition data (nutrients array, per-100g values, meal object)
- Brand, category, and nutrient/macro filters
- Empty query returns common/popular foods

Results are intelligently ranked:
1. Exact phrase at start (e.g., "chicken breast" matches "Chicken breast, raw")
2. Exact phrase anywhere (e.g., "... chicken breast ...")
3. All words present (any order) OR most words (N-1 for N-word query)
4. First word OR any word present

## Query parameters

- `q` string: Search query (empty for common foods)
- `limit` integer
- `k` integer, nullable: Alias for limit
- `skip` integer
- `brand` string, nullable: Filter by brand name
- `brand_id` integer, nullable: Filter by brand ID
- `category` string, nullable: Filter by category name
- `category_id` integer, nullable: Filter by category ID
- `nutrient_id` integer, nullable: Require this nutrient
- `min_amount` number, nullable: Min amount for nutrient_id
- `max_amount` number, nullable: Max amount for nutrient_id
- `min_calories` number, nullable
- `max_calories` number, nullable
- `min_protein` number, nullable
- `max_protein` number, nullable
- `min_carbs` number, nullable
- `max_carbs` number, nullable
- `min_fat` number, nullable
- `max_fat` number, nullable
- `match_mode` string: any or all word matching
- `verified_only` boolean: Only verified foods

## Headers

- `X-API-Key` string, nullable
- `authorization` string, nullable

## Response `200`

Successful Response

- PaginatedResponseFoodSearchResult
  - `data` FoodSearchResult[], required
    - `id` integer, required
    - `name` string, required
    - `is_verified` boolean
    - `match_type` string, nullable
    - `search_score` number, nullable
    - `description` string, nullable
    - `serving_size` number, nullable
    - `serving_unit` string, nullable
    - `serving` string, nullable
    - `brand_name` string, nullable
    - `category_name` string, nullable
    - `created_at` string, nullable
    - `nutrients` NutrientItem[], required
      - `nutrient_id` integer, required
      - `nutrient_name` string, required
      - `amount` number, required
    - `portion_nutrients` NutrientItem[], nullable
      - `nutrient_id` integer, required
      - `nutrient_name` string, required
      - `amount` number, required
    - `default_portion` PortionInfo: A serving portion with gram weight and display label.
      - `grams` number, required
      - `label` string, required
    - `portions_count` integer
    - `upc` string, nullable
    - `calories_100g` number, required
    - `protein_100g` number, required
    - `carbs_100g` number, required
    - `fat_100g` number, required
    - `fiber_100g` number, required
    - `sugar_100g` number, required
    - `match_rank` integer, nullable
    - `meal` MealObject, required: Meal object with calculated values
      - `name` string, required
      - `calories` number, required
      - `servings` integer, required
      - `macros` MacroNutrients, required: Macro nutrients in meal object
        - `protein` number, required
        - `carbs` number, required
        - `fat` number, required
        - `fiber` number, required
        - `sugar` number, required
  - `total` integer, required
  - `skip` integer, required
  - `limit` integer, required

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/calorieapi/apis/calorie-api.md) · [All operations](https://skmtc.dev/calorieapi/apis/calorie-api/llms.txt) · [OpenAPI document](https://skmtc.dev/calorieapi/apis/calorie-api/revisions/f851bb41617a?raw)
