Skip to Content
DocsREST API — full endpoint reference

Full REST API endpoint reference

All endpoints require authentication (@Authenticated). Base path: /api/portal.

Metadata

MethodPathDescription
GET/api/portal/metadataFull portal metadata. Supports ETag/304

Entity CRUD (/api/portal/data/{entityName})

MethodPathDescription
GET/{entityName}List records — pagination, sorting, filtering
GET/{entityName}/{id}Get record by ID
POST/{entityName}Create record. Returns 201 Created
PUT/{entityName}/{id}Update record. Supports optimistic locking (409 Conflict)
DELETE/{entityName}/{id}Delete record. Returns 204 No Content
DELETE/{entityName}/bulkDelete multiple. Body: {"ids": [1, 2, 3]}
PUT/{entityName}/bulk-updateUpdate one field across multiple records
MethodPathDescription
GET/{entityName}/lookupRelation picker options. Params: q, labelField, valueField, max, filterQuery, dependsOnField, dependsOnValue, orderBy
GET/{entityName}/searchFull-text search. Params: q (min 2 chars), page, size
GET/{entityName}/countRecord count. Returns {"count": 42}
GET/{entityName}/statsNumeric field statistics (min/max/avg/sum)

Soft-delete

MethodPathDescription
GET/{entityName}/deletedList soft-deleted records
POST/{entityName}/{id}/restoreRestore a soft-deleted record

Actions and history

MethodPathDescription
POST/{entityName}/{id}/action/{actionName}Execute action. Body: EntityData (optional)
GET/{entityName}/{id}/historyChange history (requires auditLog = true). Params: page, size

Export and import

MethodPathDescription
GET/{entityName}/export/csvExport to CSV
GET/{entityName}/export/xlsxExport to XLSX
GET/{entityName}/export/jsonExport to JSON
GET/{entityName}/export/pdfExport to PDF
POST/{entityName}/importImport from CSV
POST/{entityName}/batchBatch-create from JSON array

Filtering in list requests

Query parameters for GET /{entityName}:

?filter[fieldName][operator]=value &sort=fieldName&order=asc &page=0&size=25

Examples

?filter[status][eq]=ACTIVE ?filter[name][contains]=smith ?filter[price][gte]=100&filter[price][lte]=1000 ?filter[customerType][in]=VIP,PREMIUM ?sort=name&order=asc&page=0&size=50

Available filter operators

OperatorDescription
eqEquality
neqInequality
containsContains substring
startsWithStarts with
gte / lteGreater/less than or equal
inIn value set (comma-separated)
isNull / isNotNullNull / not null check
Last updated on