Contents
On this page
List Recipes - Plugixa Recipe
GET /plugixa-recipe/v1/recipes
List recipes in every status, one page at a time, with filters for status, taxonomy, difficulty, rating and diet.
Needs a signed-in user who can open Plugixa Recipe: the plugixa_recipe_manage capability, or WordPress’s edit_posts (Contributor and up).
Note. List rows are the stored recipe rows:
tags,equipmentandgallerystay JSON text here, and numbers are numeric strings. Get Recipe decodes them and adds ingredients, instructions and nutrition.
Request
GET https://your-site.example/wp-json/plugixa-recipe/v1/recipes?status=published&filter[difficulty]=easy&limit=10
Query parameters
| Name | Type | Default | Description |
|---|---|---|---|
search |
string |
Matches the title, the description or the author name. | |
status |
string |
Exact status: draft, pending, published or archived. |
|
category_id |
integer|string |
Recipes in this category, or uncategorized for recipes in none. |
|
filter[cuisine_id] |
integer |
Recipes in this cuisine. | |
filter[course_id] |
integer |
Recipes in this course. | |
filter[difficulty] |
string |
easy, medium, hard or expert. |
|
filter[is_featured] |
integer |
1 for featured recipes only, 0 for the others. |
|
filter[min_rating] |
number |
Average rating at least this. | |
filter[is_vegetarian], filter[is_vegan], filter[is_gluten_free], filter[is_dairy_free], filter[is_keto], filter[is_low_carb] |
integer |
1 for recipes with the flag, 0 for recipes without it. |
Plus the list parameters every list accepts. orderby accepts title, created_at (the default), modified_at, display_order, rating_average, view_count, total_time and published_at; anything else sorts by created_at.
Responses
200 OK. data.items is one page of recipes.
{
"success": true,
"message": "",
"data": {
"items": [
{
"id": "12",
"language_code": "",
"translation_group": "",
"title": "Lemon Pancakes",
"slug": "lemon-pancakes",
"description": "<p>Light, fluffy pancakes with lemon zest.</p>",
"excerpt": "",
"notes": "",
"tips": "",
"image_id": "345",
"gallery": null,
"tags": "[\"breakfast\",\"brunch\"]",
"equipment": "[\"Frying pan\"]",
"video_url": "",
"servings": "4",
"servings_unit": "servings",
"yield_amount": "",
"yield_unit": "",
"prep_time": "10",
"cook_time": "15",
"rest_time": null,
"total_time": "25",
"difficulty": "easy",
"cost": "budget",
"season": "",
"status": "published",
"is_featured": "0",
"is_editor_pick": "0",
"display_order": "0",
"source": "",
"source_url": "",
"author_name": "",
"view_count": "0",
"rating_average": "0.00",
"rating_count": "0",
"like_count": "0",
"enable_schema": "1",
"canonical_post_id": null,
"seo_score": null,
"seo_title": null,
"seo_description": null,
"seo_keywords": null,
"focus_keyword": null,
"is_vegetarian": "1",
"is_vegan": "0",
"is_gluten_free": "0",
"is_dairy_free": "0",
"is_keto": "0",
"is_low_carb": "0",
"is_nut_free": "0",
"is_paleo": "0",
"is_sugar_free": "0",
"is_halal": "0",
"is_kosher": "0",
"published_at": "2026-11-12 09:30:00",
"created_at": "2026-11-12 09:30:00",
"created_by": "1",
"submission_ip": null,
"modified_at": null,
"modified_by": null,
"image_url": "https://your-site.example/wp-content/uploads/2026/11/lemon-pancakes-300x200.jpg",
"image_thumbnail": "https://your-site.example/wp-content/uploads/2026/11/lemon-pancakes-150x150.jpg",
"categories": [
{
"id": "3",
"name": "Breakfast",
"slug": "breakfast"
}
],
"cuisines": [],
"courses": [
{
"id": "8",
"name": "Breakfast",
"slug": "breakfast"
}
],
"category_name": "Breakfast",
"cuisine_name": null,
"course_name": "Breakfast",
"category_id": 3,
"category_ids": [
3
],
"cuisine_id": 0,
"course_id": 8,
"average_rating": 0.0
}
],
"total": 1,
"limit": 10,
"offset": 0
}
}
| Field | Type | Meaning |
|---|---|---|
data.items[] |
object |
A stored recipe row, plus the fields below |
data.items[].categories, cuisines, courses |
object[] |
id, name and slug of each linked term |
data.items[].category_name |
string|null |
Every category name, comma separated |
data.items[].cuisine_name, course_name |
string|null |
The first linked cuisine and course |
data.items[].category_ids |
integer[] |
Ids of the linked categories |
data.items[].average_rating |
number |
rating_average as a number |
data.items[].image_url |
string |
Medium-size image, only when the recipe has one |
data.total |
integer |
Recipes matching the filters, before paging |
data.limit, data.offset |
integer |
The page size and offset used |
Errors
Plus the errors every endpoint can return.
Examples
curl -s "https://your-site.example/wp-json/plugixa-recipe/v1/recipes?status=published&limit=10" \
-u "admin:$WP_APP_PASSWORD"
<?php
$query = http_build_query([
'status' => 'published',
'limit' => 10,
]);
$ch = curl_init('https://your-site.example/wp-json/plugixa-recipe/v1/recipes?' . $query);
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_USERPWD => 'admin:' . getenv('WP_APP_PASSWORD'),
]);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
const auth = 'Basic ' + btoa(`admin:${process.env.WP_APP_PASSWORD}`);
const query = new URLSearchParams({ status: 'published', limit: '10' });
const response = await fetch(`https://your-site.example/wp-json/plugixa-recipe/v1/recipes?${query}`, {
headers: {
'Authorization': auth,
},
});
const { data } = await response.json();
Quick Links
Share