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_idparameter is accepted but has no effect in 1.1.0. Filter by group withfilter[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