Contents
On this page
List Categories - Plugixa FAQ
GET /plugixa-faq/v1/categories
List categories one page at a time, each with its number of FAQs.
Any signed-in user with the plugixa_faq_manage capability or WordPress’s edit_posts (Contributors and up, by default).
Request
GET https://your-site.example/wp-json/plugixa-faq/v1/categories?orderby=menu_order&order=ASC&limit=50
Query parameters
| Name | Type | Default | Description |
|---|---|---|---|
search |
string |
Text found in the name or description. Same as filter[search]. |
|
filter[has_color] |
string |
yes for categories with a colour, any other value for those without. |
|
filter[faq_count_min] |
integer |
At least this many FAQs. | |
filter[faq_count_max] |
integer |
At most this many FAQs. | |
filter[language] |
string |
One language code. Only with WPML or Polylang active. | |
group_by_translation |
boolean |
false |
With WPML or Polylang active: default-language rows only, each with a translations list. |
Plus the list parameters every paged list accepts. orderby accepts id, name, slug, menu_order and created_at; anything else falls back to menu_order.
Responses
200 OK. data.items is one page of categories.
{
"success": true,
"message": "",
"data": {
"items": [
{
"id": "3",
"name": "Shipping",
"slug": "shipping",
"description": "Delivery times and costs.",
"icon": "",
"color": "#2271b1",
"menu_order": "0",
"feedback_enabled": "1",
"created_at": "2026-11-12 09:30:00",
"created_by": "1",
"modified_at": null,
"modified_by": null,
"language_code": null,
"translation_group": null,
"faq_count": "12"
}
],
"total": 1,
"state": {
"filter": [],
"limit": 50,
"offset": 0,
"orderby": "menu_order",
"order": "ASC"
}
}
}
| Field | Type | Meaning |
|---|---|---|
data.items[].id |
string |
The category’s id |
data.items[].slug |
string |
Used by the category parameter of shortcodes and of Get Rendered FAQ Page |
data.items[].color |
string|null |
Hex colour |
data.items[].feedback_enabled |
string |
"1" or "0" |
data.items[].faq_count |
string |
FAQs in the category, any status |
data.total |
integer |
Categories matching the filters, before paging |
data.state |
object |
The filters, paging and sorting that were applied |
Errors
Plus the errors every endpoint can return.
Examples
curl -s "https://your-site.example/wp-json/plugixa-faq/v1/categories?orderby=menu_order&order=ASC&limit=50" \
-u "admin:$WP_APP_PASSWORD"
<?php
$query = http_build_query([
'orderby' => 'menu_order',
'order' => 'ASC',
'limit' => '50',
]);
$ch = curl_init('https://your-site.example/wp-json/plugixa-faq/v1/categories?' . $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 query = new URLSearchParams({ orderby: 'menu_order', order: 'ASC', limit: '50' });
const response = await fetch(`https://your-site.example/wp-json/plugixa-faq/v1/categories?${query}`, {
headers: {
'Authorization': 'Basic ' + btoa(`admin:${process.env.WP_APP_PASSWORD}`),
},
});
const { data } = await response.json();
Quick Links
Share