Contents
On this page

List Feedback - Plugixa FAQ

GET /plugixa-faq/v1/feedback

List the votes and comments visitors left, one page at a time.

Any signed-in user with the plugixa_faq_manage capability or WordPress’s edit_posts (Contributors and up, by default). Needs Plugixa FAQ Pro: the free build does not register this route, so it answers 404 there.

Note. Each row includes the voter’s IP address, browser user agent and session id. Grant plugixa_faq_manage deliberately, and treat the data as personal data.

Request

GET https://your-site.example/wp-json/plugixa-faq/v1/feedback?filter[is_helpful]=0&filter[has_comment]=yes

Query parameters

Name Type Default Description
search string Text found in the comment or the FAQ question. Same as filter[search].
filter[is_helpful] integer 1 helpful votes only, 0 not-helpful votes only.
filter[faq_id] integer Votes on this FAQ only.
filter[date_from] string On or after this day, YYYY-MM-DD.
filter[date_to] string On or before this day, YYYY-MM-DD.
filter[has_comment] string yes with a comment, any other value without.

Plus the list parameters every paged list accepts. orderby accepts id, faq_id, is_helpful and created_at.

Responses

200 OK. data.items is one page of votes.

{
  "success": true,
  "message": "",
  "data": {
    "items": [
      {
        "id": "311",
        "faq_id": "42",
        "is_helpful": "0",
        "feedback_text": "The delivery times for islands are missing.",
        "user_id": null,
        "user_ip": "203.0.113.24",
        "user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64)",
        "session_id": "6f1c2a7e-8b3d-4e2f-9a61-0c5d7e3b9f42",
        "created_at": "2026-11-12 09:30:00",
        "question": "How long does shipping take?",
        "user_name": null
      }
    ],
    "total": 1,
    "limit": 20,
    "offset": 0
  }
}
Field Type Meaning
data.items[].is_helpful string "1" helpful, "0" not helpful
data.items[].feedback_text string|null The comment
data.items[].user_id string|null The voter, when signed in
data.items[].user_name string|null The voter’s display name
data.items[].user_ip string The voter’s IP address
data.items[].question string|null The FAQ, null if it was deleted
data.total integer Votes matching the filters, before paging

This list answers limit and offset instead of a state object.

Errors

Plus the errors every endpoint can return.

Examples

curl -sg "https://your-site.example/wp-json/plugixa-faq/v1/feedback?filter[is_helpful]=0&filter[has_comment]=yes" \
  -u "admin:$WP_APP_PASSWORD"
<?php
$query = http_build_query([
    'filter[is_helpful]'  => '0',
    'filter[has_comment]' => 'yes',
]);
$ch = curl_init('https://your-site.example/wp-json/plugixa-faq/v1/feedback?' . $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({ 'filter[is_helpful]': '0', 'filter[has_comment]': 'yes' });
const response = await fetch(`https://your-site.example/wp-json/plugixa-faq/v1/feedback?${query}`, {
  headers: {
    'Authorization': 'Basic ' + btoa(`admin:${process.env.WP_APP_PASSWORD}`),
  },
});
const { data } = await response.json();

Quick Links

Share