Contents
On this page
Get Published Recipe - Plugixa Recipe
GET /plugixa-recipe/v1/frontend/recipes/{id}
Read one published recipe with everything its page shows: ingredients, instructions, taxonomy and nutrition.
Public: no sign-in needed. It only ever returns published recipes and a fixed list of public columns.
Note. Every call counts as a view:
view_countgoes up by one. A front end that fetches the recipe on each page view gets the same count a rendered page would; one that polls inflates it.
Note. Unlike the admin read,
tags,equipmentandgallerycome back as JSON text, not decoded. Parse them yourself, or usegallery_urls.
Request
GET https://your-site.example/wp-json/plugixa-recipe/v1/frontend/recipes/12
Path parameters
| Name | Type | Description |
|---|---|---|
id |
integer |
The recipe’s id |
Responses
200 OK. data is the recipe.
{
"success": true,
"message": "",
"data": {
"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": "[346,347]",
"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": "",
"is_featured": "0",
"is_editor_pick": "0",
"display_order": "0",
"source": "",
"source_url": "",
"author_name": "",
"view_count": "128",
"rating_average": 4.5,
"rating_count": 2,
"like_count": "9",
"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",
"image_url": "https://your-site.example/wp-content/uploads/2026/11/lemon-pancakes-1024x683.jpg",
"image_thumbnail": "https://your-site.example/wp-content/uploads/2026/11/lemon-pancakes-150x150.jpg",
"gallery_urls": [
{
"id": 346,
"url": "https://your-site.example/wp-content/uploads/2026/11/pancake-stack-1024x683.jpg"
},
{
"id": 347,
"url": "https://your-site.example/wp-content/uploads/2026/11/pancake-berries-1024x683.jpg"
}
],
"categories": [
{
"id": "3",
"name": "Breakfast",
"slug": "breakfast"
}
],
"cuisines": [],
"courses": [
{
"id": "8",
"name": "Breakfast",
"slug": "breakfast"
}
],
"ingredients": [
{
"id": "101",
"recipe_id": "12",
"group_name": "",
"group_order": "0",
"sort_order": "0",
"quantity": "2",
"unit": "cups",
"name": "flour",
"notes": "",
"link_url": "",
"amount": "2.000",
"amount_max": null,
"is_optional": "0",
"substitution": ""
},
{
"id": "102",
"recipe_id": "12",
"group_name": "",
"group_order": "0",
"sort_order": "1",
"quantity": "1 1/2",
"unit": "cups",
"name": "milk",
"notes": "",
"link_url": "",
"amount": "1.500",
"amount_max": null,
"is_optional": "0",
"substitution": "oat milk"
}
],
"instructions": [
{
"id": "201",
"recipe_id": "12",
"group_name": "",
"group_order": "0",
"sort_order": "0",
"title": "",
"instruction_text": "Whisk the flour, milk and lemon zest.",
"image_id": null,
"video_url": "",
"duration": null,
"timer_seconds": null,
"tip": ""
},
{
"id": "202",
"recipe_id": "12",
"group_name": "",
"group_order": "0",
"sort_order": "1",
"title": "",
"instruction_text": "Cook each pancake for 2 minutes a side.",
"image_id": null,
"video_url": "",
"duration": "4",
"timer_seconds": "240",
"tip": ""
}
],
"nutrition": {
"id": "7",
"recipe_id": "12",
"serving_size": "1 pancake",
"calories": "180.00",
"total_fat": "6.50",
"saturated_fat": "2.00",
"trans_fat": null,
"cholesterol": "45.00",
"sodium": "210.00",
"total_carbohydrate": "26.00",
"dietary_fiber": "1.00",
"total_sugars": "6.00",
"protein": "5.00",
"vitamin_a": null,
"vitamin_c": null,
"calcium": null,
"iron": null,
"potassium": null,
"source": "manual"
},
"is_favorited": false
}
}
| Field | Type | Meaning |
|---|---|---|
data.rating_average |
number |
Average of the approved reviews |
data.rating_count |
integer |
Approved reviews |
data.gallery_urls |
object[] |
Only when the recipe has a gallery: each image’s id and large url |
data.ingredients, data.instructions |
object[] |
In group order, then position. A step with an image gets image_url |
data.nutrition |
object|null |
The nutrition row, values as text with two decimals |
data.custom_fields |
object |
Pro, with Custom Fields on: the values meant for the front end |
data.is_favorited |
boolean |
Only when the request is signed in |
Drafts, pending and archived recipes answer 404, as do the private columns: status, SEO fields, author ids and submission details are never selected.
Errors
| Status | Code | When |
|---|---|---|
404 |
rest_error |
No published recipe with that id. |
Plus the errors every endpoint can return.
Examples
curl -s "https://your-site.example/wp-json/plugixa-recipe/v1/frontend/recipes/12"
<?php
$ch = curl_init('https://your-site.example/wp-json/plugixa-recipe/v1/frontend/recipes/12');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
]);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
const response = await fetch('https://your-site.example/wp-json/plugixa-recipe/v1/frontend/recipes/12');
const { data } = await response.json();
Quick Links
Share