{"id":2958,"date":"2026-01-26T08:44:21","date_gmt":"2026-01-26T13:44:21","guid":{"rendered":"https:\/\/www.airsupervision.com\/wp-r\/docs\/administrator\/apis\/users\/"},"modified":"2026-02-25T08:23:18","modified_gmt":"2026-02-25T13:23:18","slug":"users","status":"publish","type":"docs","link":"https:\/\/www.airsupervision.com\/wp-r\/docs\/administrator\/apis\/resources\/users-2\/users\/","title":{"rendered":"List"},"content":{"rendered":"\n<p>POST&nbsp;<code>\/users\/list<\/code><\/p>\n\n\n\n<p>Purpose:&nbsp;list users with filters,&nbsp;ordering,&nbsp;pagination,&nbsp;and optional joins.<\/p>\n\n\n\n<p>Access:<\/p>\n\n\n\n<ul class=\"wp-r_indent50\">\n<li>read-only<\/li>\n\n\n\n<li>read-write<\/li>\n\n\n\n<li>admin<\/li>\n<\/ul>\n\n\n\n<p>Payload:&nbsp;list format above.<\/p>\n\n\n\n<p>Options and samples:<\/p>\n\n\n\n<ul class=\"wp-r_indent50\">\n<li><code>fields<\/code>: include join fields such as&nbsp;<code>group_name<\/code>&nbsp;when configured in&nbsp;<code>users_joins<\/code>.<\/li>\n\n\n\n<li><code>filters<\/code>: sample with join field.<\/li>\n\n\n\n<li><code>order<\/code>: sample with join field.<\/li>\n<\/ul>\n\n\n\n<p>Joins:<\/p>\n\n\n\n<ul class=\"wp-r_indent50\">\n<li>Join fields can be used in&nbsp;<code>fields<\/code>,&nbsp;<code>filters<\/code>, and&nbsp;<code>order<\/code>.<\/li>\n<\/ul>\n\n\n\n<p>Allowed fields&nbsp;(from config):<\/p>\n\n\n\n<ul class=\"wp-r_indent50\">\n<li><code>id<\/code>,&nbsp;<code>lastname<\/code>,&nbsp;<code>givenname<\/code>,&nbsp;<code>address<\/code>,&nbsp;<code>licence<\/code>,&nbsp;<code>dob<\/code>,&nbsp;<code>email<\/code>,&nbsp;<code>phone<\/code>,&nbsp;<code>cell<\/code>,&nbsp;<code>inactive<\/code>,&nbsp;<code>group_name<\/code><\/li>\n<\/ul>\n\n\n\n<p>Sample payload:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n  \"limit\": 25,\n  \"page\": 1,\n  \"fields\": &#91;\"id\", \"lastname\", \"givenname\", \"address\", \"licence\", \"dob\", \"email\", \"phone\", \"cell\", \"inactive\", \"group_name\"],\n  \"filters\": {\n    \"group_name\": { \"op\": \"like\", \"value\": \"Instructor%\" }\n  },\n  \"order\": &#91;&#91;\"group_name\", \"ASC\"]]\n}<\/code><\/pre>\n\n\n\n<p>Response:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n  \"meta\": { \"status\": 200, \"error\": null },\n  \"data\": {\n    \"page\": 1,\n    \"total_pages\": 1,\n    \"total_records\": 1,\n    \"count\": 1,\n    \"items\": &#91;\n      {\n        \"id\": 1,\n        \"lastname\": \"Doe\",\n        \"givenname\": \"Jane\",\n        \"email\": \"jane@example.com\"\n      }\n    ]\n  }\n}<\/code><\/pre>\n\n\n\n<p>Examples&nbsp;(curl):<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>curl -X POST https:\/\/example.com\/api\/v1\/prod\/users\/list \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -H \"X-Client: LTW-API\" \\\n  -H \"Content-Type: application\/json\" \\\n  -d \"{\\\"limit\\\":25,\\\"page\\\":1}\"<\/code><\/pre>\n\n\n\n<p>Examples&nbsp;(PHP):<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?php\n$url = 'https:\/\/example.com\/api\/v1\/prod\/users\/list';\n$payload = json_encode(&#91;'limit' =&gt; 10, 'page' =&gt; 1]);\n\n$ch = curl_init($url);\ncurl_setopt($ch, CURLOPT_RETURNTRANSFER, true);\ncurl_setopt($ch, CURLOPT_POST, true);\ncurl_setopt($ch, CURLOPT_HTTPHEADER, &#91;\n    'Authorization: Bearer YOUR_TOKEN',\n    'X-Client: LTW-API',\n    'Content-Type: application\/json',\n]);\ncurl_setopt($ch, CURLOPT_POSTFIELDS, $payload);\n\n$response = curl_exec($ch);\nif ($response === false) {\n    throw new RuntimeException(curl_error($ch));\n}\ncurl_close($ch);\n\necho $response;<\/code><\/pre>\n\n\n\n<p>Examples&nbsp;(Node.js):<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>const fetch = require('node-fetch');\n\nasync function listUsers() {\n  const res = await fetch('https:\/\/example.com\/api\/v1\/prod\/users\/list', {\n    method: 'POST',\n    headers: {\n      Authorization: 'Bearer YOUR_TOKEN',\n      'X-Client': 'LTW-API',\n      'Content-Type': 'application\/json',\n    },\n    body: JSON.stringify({ limit: 10, page: 1 }),\n  });\n\n  if (!res.ok) {\n    throw new Error(`HTTP ${res.status}`);\n  }\n\n  const data = await res.json();\n  console.log(data);\n}\n\nlistUsers().catch(console.error);<\/code><\/pre>\n","protected":false},"featured_media":0,"parent":2964,"menu_order":1,"template":"","doc_tag":[],"_links":{"self":[{"href":"https:\/\/www.airsupervision.com\/wp-r\/wp-json\/wp\/v2\/docs\/2958"}],"collection":[{"href":"https:\/\/www.airsupervision.com\/wp-r\/wp-json\/wp\/v2\/docs"}],"about":[{"href":"https:\/\/www.airsupervision.com\/wp-r\/wp-json\/wp\/v2\/types\/docs"}],"version-history":[{"count":6,"href":"https:\/\/www.airsupervision.com\/wp-r\/wp-json\/wp\/v2\/docs\/2958\/revisions"}],"predecessor-version":[{"id":3359,"href":"https:\/\/www.airsupervision.com\/wp-r\/wp-json\/wp\/v2\/docs\/2958\/revisions\/3359"}],"up":[{"embeddable":true,"href":"https:\/\/www.airsupervision.com\/wp-r\/wp-json\/wp\/v2\/docs\/2964"}],"next":[{"title":"Add","link":"https:\/\/www.airsupervision.com\/wp-r\/docs\/administrator\/apis\/resources\/users-2\/add\/","href":"https:\/\/www.airsupervision.com\/wp-r\/wp-json\/wp\/v2\/docs\/2967"}],"wp:attachment":[{"href":"https:\/\/www.airsupervision.com\/wp-r\/wp-json\/wp\/v2\/media?parent=2958"}],"wp:term":[{"taxonomy":"doc_tag","embeddable":true,"href":"https:\/\/www.airsupervision.com\/wp-r\/wp-json\/wp\/v2\/doc_tag?post=2958"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}