Custom Views
Custom Views API
Endpoints for managing saved list configurations (columns, filters, sort).
Endpoints
| Method | URL | Description |
|---|---|---|
| GET | /api/v1/custom_views |
List custom views |
| GET | /api/v1/custom_views/{id} |
Show a custom view |
| POST | /api/v1/custom_views |
Create a custom view |
| PUT | /api/v1/custom_views/{id} |
Update a custom view |
| DELETE | /api/v1/custom_views/{id} |
Delete a custom view |
| POST | /api/v1/custom_views/{id}/clone |
Clone a custom view |
Visibility Levels
| Level | Description |
|---|---|
personal |
Visible only to the creator |
shared |
Visible to users with matching roles |
system |
Visible to all users (admin-created, cannot be deleted) |
Using Views on List Endpoints
Pass view_id to any list endpoint to apply a saved view:
GET /api/v1/members?view_id=42
When a view is active:
- Filters from the view merge with explicit
qparams (explicit params take priority) - Sort from the view applies unless an explicit
sortparam is given - Response is sparse — only includes fields matching the view's columns plus
id - Meta includes
view.idandview.name
Create Custom View
POST /api/v1/custom_views
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
name |
string | Yes | View name (max 255 chars) |
entity_type |
string | Yes | Entity type (e.g. "members") |
visibility |
string | No | "personal" (default) or "shared" |
columns |
array | Yes | List of column keys (min 1) |
filters |
array | No | Filter definitions |
sort_column |
string | No | Sort column key |
sort_direction |
string | No | "asc" (default) or "desc" |
per_page |
integer | No | Items per page (1-100, default 20) |
role_ids |
array | No | Role IDs for shared visibility |
Filter Structure
Each filter is an object:
{
"field": "membership_type",
"predicate": "eq",
"value": "organisation",
"logic": "and"
}
Available predicates: eq, not_eq, cont, not_cont, gt, lt, gteq, lteq, true, false, null, not_null, in, not_in, start, end, present, blank
Logic operators: and (default), or, nand, nor
Column Validation
Column keys are validated against the entity's column registry. Invalid keys return 422. Custom field columns use the cf. prefix (e.g. cf.po_reference).