Contents
List Cases - Plugixa CRM
GET /plugixa-crm/v1/cases
List support cases, one page at a time.
Any user with access to Plugixa CRM. With Plugixa CRM Pro roles, the list only holds the cases the user’s role lets them read.
Request
GET https://your-site.example/wp-json/plugixa-crm/v1/cases?open=1&orderby=created_at
Query parameters
| Name | Type | Default | Description |
|---|---|---|---|
status |
string |
Cases with this status only: new, assigned, pending, closed, rejected or duplicate. |
|
open |
integer |
1 for open cases only: anything but closed, rejected and duplicate. Ignored when status is sent. |
Plus the list parameters every paged list accepts. search matches the subject and the description. orderby accepts id, created_at, modified_at. Field filters (field__operator=value, see Filters) work on assigned_user_id, created_at, modified_at, status, priority, type, account_id, contact_id, plus Pro custom fields marked filterable.
Responses
200 OK. data is one page of cases.
{
"success": true,
"data": [
{
"id": 42,
"name": "Invoice shows the wrong VAT number",
"status": "assigned",
"priority": "high",
"type": "problem",
"description": "<p>The October invoice carries the old VAT number.</p>",
"account_id": 12,
"contact_id": 31,
"lead_id": null,
"is_internal": false,
"closed_at": null,
"assigned_user_id": 3,
"created_by": "1",
"modified_by": "1",
"created_at": "2026-11-12 09:30:00",
"modified_at": "2026-11-12 09:30:00",
"deleted_at": null,
"number": "C-00042",
"number_value": 42,
"is_closed": false,
"account_name": "Northwind Traders",
"contact_name": "Maria Anders",
"assigned_user_name": "Jordan Lee"
}
],
"meta": {
"total": 66,
"pages": 2
}
}
| Field | Type | Meaning |
|---|---|---|
data[].id |
integer |
The case’s id |
data[].number |
string |
The case reference, C- and a padded sequence number |
data[].number_value |
integer |
The sequence number alone |
data[].name |
string |
The subject |
data[].status |
string |
new, assigned, pending, closed, rejected or duplicate |
data[].priority |
string |
low, normal, high or urgent |
data[].type |
string |
question, incident, problem, or empty |
data[].is_closed |
boolean |
true for closed, rejected and duplicate |
meta.total |
integer |
Cases matching, before paging |
meta.pages |
integer |
Number of pages at this per_page |
Errors
| Status | Code | When |
|---|---|---|
422 |
plugixa_crm_invalid_status |
status is not a case status. |
400 |
plugixa_crm_unknown_filter |
A field__operator parameter names a field this list cannot filter on. |
400 |
plugixa_crm_unknown_operator |
The operator does not work on that field’s type. |
400 |
plugixa_crm_missing_value |
The filter needs a value, or two for between. |
Plus the errors every endpoint can return.
Examples
curl -s "https://your-site.example/wp-json/plugixa-crm/v1/cases?open=1&orderby=created_at" \
-u "admin:$WP_APP_PASSWORD"
<?php
$query = http_build_query([
'open' => 1,
'orderby' => 'created_at',
]);
$ch = curl_init('https://your-site.example/wp-json/plugixa-crm/v1/cases?' . $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 = 'Basic ' + btoa(`admin:${process.env.WP_APP_PASSWORD}`);
const query = new URLSearchParams({ open: '1', orderby: 'created_at' });
const response = await fetch(`https://your-site.example/wp-json/plugixa-crm/v1/cases?${query}`, {
headers: {
'Authorization': auth,
},
});
const { data, meta } = await response.json();
Quick Links
Share