Contents
On this page

List Custom Fields - Plugixa Team

GET /plugixateam/v1/custom-fields

List the custom fields defined for members, such as pronouns or a desk number, with how many members have a value for each.

Needs Plugixa Team Pro. 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.

Request

GET https://your-site.example/wp-json/plugixateam/v1/custom-fields?orderby=menu_order&order=ASC&limit=0

Query parameters

Name Type Default Description
search string Text found in the label or key. Same as filter[search].
filter[type] string One field type only, for example select.
filter[language] string With WPML or Polylang active: one language only. lang does the same.
filter[group_by_translation] boolean With WPML or Polylang active: one row per translated field, in the default language.

Plus the list parameters. orderby accepts id, field_label, field_key, field_type, menu_order and created_at; any other value sorts by menu_order. Left out, it is created_at, newest first: send orderby=menu_order&order=ASC for the order set in the admin.

Responses

200 OK. data.items is one page of field definitions.

{
  "success": true,
  "message": "",
  "data": {
    "items": [
      {
        "id": "4",
        "field_key": "pronouns",
        "field_label": "Pronouns",
        "field_type": "select",
        "field_options": [
          "she/her",
          "he/him",
          "they/them"
        ],
        "placeholder": "",
        "is_required": false,
        "show_in_frontend": true,
        "show_in_form": true,
        "menu_order": "0",
        "language_code": null,
        "translation_group": null,
        "created_at": "2026-11-12 09:30:00",
        "modified_at": "2026-11-12 09:30:00",
        "value_count": "12"
      }
    ],
    "total": 3,
    "state": {
      "filter": [],
      "limit": 999999,
      "offset": 0,
      "orderby": "menu_order",
      "order": "ASC"
    }
  }
}
Field Type Meaning
data.items[].id string The field’s id, as a numeric string
data.items[].field_key string The key member values are stored under, in a member’s meta
data.items[].field_label string The label shown to people
data.items[].field_type string text, textarea, url, number, date, select, checkbox, color, file, email or phone
data.items[].field_options array|null The choices of a select or checkbox field
data.items[].placeholder string|null Placeholder text
data.items[].is_required boolean Required on the submission form
data.items[].show_in_frontend boolean Shown on the site
data.items[].show_in_form boolean Offered on the submission form
data.items[].menu_order string Position among the fields
data.items[].value_count string How many members have a value stored for this key
data.items[].language_code, data.items[].translation_group string|null Set when WPML or Polylang is active
data.items[].created_at, data.items[].modified_at string Site-time datetimes
data.total integer Fields 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).
404 rest_no_route The site runs the free build.

Plus the errors every endpoint can return.

Examples

curl -s "https://your-site.example/wp-json/plugixateam/v1/custom-fields?orderby=menu_order&order=ASC&limit=0" \
  -u "admin:$WP_APP_PASSWORD"
<?php
$query = http_build_query([
    'orderby' => 'menu_order',
    'order'   => 'ASC',
    'limit'   => 0,
]);
$ch = curl_init('https://your-site.example/wp-json/plugixateam/v1/custom-fields?' . $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({ orderby: 'menu_order', order: 'ASC', limit: '0' });
const response = await fetch(`https://your-site.example/wp-json/plugixateam/v1/custom-fields?${query}`, {
  headers: {
    'Authorization': `Basic ${auth}`,
  },
});
const { data } = await response.json();

Quick Links

Share