Contents
On this page

List Members - Plugixa Team

GET /plugixateam/v1/members

List team members one page at a time, with filters for status, group, department and featured members.

Needs a signed-in WordPress user with the plugixa_team_edit capability, which administrators and editors get when the plugin is activated, or manage_options.

Note. The list includes drafts and hidden members unless you filter by status, and every row carries the member’s email address and phone numbers. Treat the response as personal data.

Request

GET https://your-site.example/wp-json/plugixateam/v1/members?filter[status]=published&orderby=last_name&order=ASC

Query parameters

Name Type Default Description
search string Text found in the first name, last name, job title, department or email. Same as filter[search].
status string Same as filter[status].
filter[status] string or array published, draft or hidden. For several, repeat it as an array: filter[status][]=draft&filter[status][]=hidden.
filter[groups] array Group ids: members in any of them. filter[groups][]=0 (or ungrouped) gives members in no group instead.
filter[department] string An exact department name. List Departments gives the values in use.
filter[is_featured] integer 1 for featured members only, 0 for the others.
filter[language] string With WPML or Polylang active: one language only, for example fr.
filter[group_by_translation] boolean With WPML or Polylang active: one row per translated member, in the default language.

Plus the list parameters. orderby accepts id, first_name, last_name, status, department, job_title, display_order, is_featured, created_at and modified_at; anything else sorts by created_at. Sorting by display_order while filter[groups] holds exactly one group uses the member order inside that group.

Note. A top-level group_id parameter is accepted but has no effect in 1.1.0. Filter by group with filter[groups][].

Responses

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

{
  "success": true,
  "message": "",
  "data": {
    "items": [
      {
        "id": "57",
        "first_name": "Amira",
        "last_name": "Haddad",
        "slug": "amira-haddad",
        "job_title": "Head of Design",
        "department": "Design",
        "bio": "<p>Amira leads the product design team.</p>",
        "short_bio": "Leads product design.",
        "photo_id": "112",
        "email": "amira@example.com",
        "phone": "+44 20 7946 0958",
        "mobile": null,
        "website_url": "https://amira.example",
        "location": "London",
        "social_links": [
          {
            "platform": "linkedin",
            "url": "https://www.linkedin.com/in/amira-example"
          }
        ],
        "skills": [
          {
            "name": "UX research",
            "percentage": 90
          }
        ],
        "ribbon_text": null,
        "ribbon_color": null,
        "is_featured": "1",
        "status": "published",
        "display_order": "0",
        "parent_id": null,
        "hire_date": "2024-03-01",
        "custom_fields": [],
        "source": "manual",
        "language_code": null,
        "translation_group": null,
        "created_at": "2026-11-12 09:30:00",
        "created_by": "1",
        "modified_at": null,
        "modified_by": null,
        "groups": [
          {
            "id": 3,
            "name": "Leadership",
            "slug": "leadership"
          }
        ],
        "photo": {
          "id": 112,
          "url": "https://your-site.example/wp-content/uploads/2026/11/amira.jpg",
          "thumbnail": "https://your-site.example/wp-content/uploads/2026/11/amira-150x150.jpg",
          "alt": "Amira Haddad",
          "title": "amira"
        },
        "meta": {
          "pronouns": "she/her"
        }
      }
    ],
    "total": 14,
    "state": {
      "filter": {
        "status": "published"
      },
      "limit": 20,
      "offset": 0,
      "orderby": "last_name",
      "order": "ASC"
    }
  }
}
Field Type Meaning
data.items[] array Members, each shaped as in Get Member without author_name
data.items[].id string The member’s id, as a numeric string
data.items[].status string published, draft or hidden
data.items[].is_featured string "1" or "0"
data.items[].groups array The member’s groups: id, name, slug
data.items[].meta object Custom field values, keyed by field key
data.total integer Members matching the filters, before paging
data.state object The filters, paging and sort that were applied

Errors

Status Code When
400 rest_invalid_param order is not ASC or DESC (upper case), or filter is not sent as filter[...] fields.

Plus the errors every endpoint can return.

Examples

curl -s -g "https://your-site.example/wp-json/plugixateam/v1/members?filter[status]=published&orderby=last_name&order=ASC" \
  -u "admin:$WP_APP_PASSWORD"
<?php
$query = http_build_query([
    'filter'  => [
        'status' => 'published',
    ],
    'orderby' => 'last_name',
    'order'   => 'ASC',
]);
$ch = curl_init('https://your-site.example/wp-json/plugixateam/v1/members?' . $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 = btoa(`admin:${process.env.WP_APP_PASSWORD}`);
const query = new URLSearchParams({ 'filter[status]': 'published', orderby: 'last_name', order: 'ASC' });
const response = await fetch(`https://your-site.example/wp-json/plugixateam/v1/members?${query}`, {
  headers: {
    'Authorization': `Basic ${auth}`,
  },
});
const { data } = await response.json();

Quick Links

Share