Contents
On this page
List FAQs - Plugixa FAQ
GET /plugixa-faq/v1/faqs
List FAQs one page at a time, in any status, with filters for status, category, dates, author and helpful votes.
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/faqs?status=published&orderby=menu_order&order=ASC
Query parameters
| Name | Type | Default | Description |
|---|---|---|---|
search |
string |
Text found in the question or the answer. Same as filter[search]. |
|
status |
string |
draft or published. Same as filter[status]; send filter[status][] several times for more than one. |
|
category_id |
integer |
FAQs in this category. For FAQs with no category send filter[category_id]=0 (the top-level category_id=0 is ignored). |
|
filter[categories][] |
integer[] |
FAQs in any of these categories. | |
filter[visibility][] |
string[] |
public, private or password. Only the array form is read. |
|
filter[date_from] |
string |
Created on or after this day, YYYY-MM-DD. |
|
filter[date_to] |
string |
Created on or before this day, YYYY-MM-DD. |
|
filter[helpful_min] |
integer |
At least this many “helpful” votes. | |
filter[helpful_max] |
integer |
At most this many “helpful” votes. | |
filter[author] |
integer |
Created by this WordPress user id. | |
filter[language] |
string |
One language code. Only with WPML or Polylang active. | |
group_by_translation |
boolean |
false |
With WPML or Polylang active: only rows in the default language (plus rows with no translation group), each with a translations list of { id, language_code }. |
with_content |
boolean |
false |
Send 1 to add every other column of the FAQ (answer, slug, visibility, counters, …) plus category_slug and category_description to each row. |
Plus the list parameters every paged list accepts. orderby accepts id, question, status, menu_order, view_count, created_at and modified_at; anything else falls back to created_at.
Responses
200 OK. data.items is one page of FAQs.
{
"success": true,
"message": "",
"data": {
"items": [
{
"id": "42",
"question": "How long does shipping take?",
"category_id": "3",
"status": "published",
"parent_id": null,
"view_count": "128",
"created_at": "2026-11-12 09:30:00",
"language_code": null,
"translation_group": null,
"category_name": "Shipping"
}
],
"total": 1,
"state": {
"filter": {
"status": "published"
},
"limit": 20,
"offset": 0,
"orderby": "menu_order",
"order": "ASC"
}
}
}
| Field | Type | Meaning |
|---|---|---|
data.items[].id |
string |
The FAQ’s id |
data.items[].question |
string |
The question |
data.items[].category_id |
string|null |
null when the FAQ has no category |
data.items[].category_name |
string|null |
The category’s name |
data.items[].status |
string |
draft, published, or pending for some form submissions |
data.items[].parent_id |
string|null |
The parent FAQ when nested |
data.items[].view_count |
string |
Times the answer was viewed |
data.items[].created_at |
string |
Site-time datetime |
data.total |
integer |
FAQs matching the filters, before paging |
data.state |
object |
The filters, paging and sorting that were applied |
List rows leave out the answer. Read one FAQ with Get FAQ, or send with_content=1.
Errors
Plus the errors every endpoint can return.
Examples
curl -s "https://your-site.example/wp-json/plugixa-faq/v1/faqs?status=published&orderby=menu_order&order=ASC" \
-u "admin:$WP_APP_PASSWORD"
<?php
$query = http_build_query([
'status' => 'published',
'orderby' => 'menu_order',
'order' => 'ASC',
]);
$ch = curl_init('https://your-site.example/wp-json/plugixa-faq/v1/faqs?' . $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({ status: 'published', orderby: 'menu_order', order: 'ASC' });
const response = await fetch(`https://your-site.example/wp-json/plugixa-faq/v1/faqs?${query}`, {
headers: {
'Authorization': 'Basic ' + btoa(`admin:${process.env.WP_APP_PASSWORD}`),
},
});
const { data } = await response.json();
Quick Links
Share