Contents
On this page
List Published Recipes - Plugixa Recipe
GET /plugixa-recipe/v1/frontend/recipes
List published recipes as cards, with filters for taxonomy, rating, difficulty and diet.
Public: no sign-in needed. It only ever returns published recipes and a fixed list of public columns.
Request
GET https://your-site.example/wp-json/plugixa-recipe/v1/frontend/recipes?category_id=3&is_vegetarian=1&limit=12
Query parameters
| Name | Type | Default | Description |
|---|---|---|---|
search |
string |
Matches the title or the description. | |
category_id |
integer |
Recipes in this category. | |
cuisine_id |
integer |
Recipes in this cuisine. | |
difficulty |
string |
easy, medium, hard or expert. |
|
min_rating |
number |
Average rating at least this. | |
is_featured |
boolean |
Any true value: featured recipes only. | |
is_vegetarian, is_vegan, is_gluten_free, is_dairy_free, is_keto, is_low_carb |
boolean |
Any true value: only recipes with that flag. 0 means no filter. |
Plus the list parameters every list accepts. orderby accepts title, created_at (the default), rating_average, total_time, display_order and published_at.
Responses
200 OK. data.items is one page of recipe cards.
{
"success": true,
"message": "",
"data": {
"items": [
{
"id": "12",
"title": "Lemon Pancakes",
"slug": "lemon-pancakes",
"description": "<p>Light, fluffy pancakes with lemon zest.</p>",
"image_id": "345",
"servings": "4",
"prep_time": "10",
"cook_time": "15",
"total_time": "25",
"difficulty": "easy",
"rating_average": 4.5,
"rating_count": 2,
"is_featured": "0",
"is_vegetarian": "1",
"is_vegan": "0",
"is_gluten_free": "0",
"is_dairy_free": "0",
"is_keto": "0",
"is_low_carb": "0",
"published_at": "2026-11-12 09:30:00",
"image_url": "https://your-site.example/wp-content/uploads/2026/11/lemon-pancakes-768x512.jpg",
"image_thumbnail": "https://your-site.example/wp-content/uploads/2026/11/lemon-pancakes-150x150.jpg",
"categories": [
{
"id": "3",
"name": "Breakfast",
"slug": "breakfast"
}
],
"cuisines": []
}
],
"total": 1,
"limit": 12,
"offset": 0
}
}
| Field | Type | Meaning |
|---|---|---|
data.items[].rating_average |
number |
Average of the approved reviews |
data.items[].rating_count |
integer |
Approved reviews |
data.items[].image_url |
string |
Medium-large image, only when the recipe has one |
data.items[].categories, data.items[].cuisines |
object[] |
id, name and slug of each |
data.items[].is_favorited |
boolean |
Only when the request is signed in: whether the caller saved it |
data.total |
integer |
Published recipes matching the filters |
Errors
Plus the errors every endpoint can return.
Examples
curl -s "https://your-site.example/wp-json/plugixa-recipe/v1/frontend/recipes?category_id=3&limit=12"
<?php
$query = http_build_query([
'category_id' => 3,
'limit' => 12,
]);
$ch = curl_init('https://your-site.example/wp-json/plugixa-recipe/v1/frontend/recipes?' . $query);
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
]);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
const query = new URLSearchParams({ category_id: '3', limit: '12' });
const response = await fetch(`https://your-site.example/wp-json/plugixa-recipe/v1/frontend/recipes?${query}`);
const { data } = await response.json();
Quick Links
Share