Skip to main content

API Quick Reference

All endpoints use /api virtual paths for hosted web apps. For external clients, replace /api with https://<region>.restapi.com/<api-name>.

Data Operations​

MethodPathDescription
GET/api/{collection}List items
GET/api/{collection}/{id}Get single item
POST/api/{collection}Create item(s) — send object or array
PUT/api/{collection}/{id}Replace item (full replace)
PATCH/api/{collection}/{id}Update item (partial update)
DELETE/api/{collection}/{id}Delete single item
DELETE/api/{collection}Bulk delete (send array of IDs)

Views (Filtered Collections)​

MethodPathDescription
GET/POST/PUT/PATCH/DELETE/api/{view-name}Same operations as collections, with built-in filter

Queries (Read-Only Joins)​

MethodPathDescription
GET/api/{query-name}List joined/aggregated results
GET/api/{query-name}/{id}Get single item from query

GET Query Parameters​

ParameterDescriptionExample
filterFilter results?filter=price gt 100
searchFull-text search?search=blue widget
sortBySort results?sortBy=name or ?sortBy=name- (descending)
selectChoose fields?select=name,price
pageNoPage number?pageNo=2
pageSizeItems per page (default: 10, max: 1000)?pageSize=100
lastKeyKeyset cursor (row id) for exports?lastKey=6f2a1c4e-...
countInclude total count in response?count=true or ?count=only
lookupsLookups as ids only?lookups=id

Filter Operators​

OperatorDescriptionExample
eqEqual toname eq "Widget"
neNot equal tostatus ne "deleted"
gtGreater thanprice gt 100
geGreater than or equalprice ge 100
ltLess thanstock lt 10
leLess than or equalstock le 10
conContains (strings)name con "pro"
nconNot contains (strings)name ncon "test"
swStarts withname sw "Pro"
ewEnds withname ew "Plus"

Append ~ for case-insensitive matching: name eq~ "widget". Combine with and/or: ?filter=price gt 100 and category eq "Electronics".

Nested Children​

Use dot notation to manage parent-child data atomically in POST, PUT, and PATCH requests:

{collection}.{fieldPointingToParent}

Items with id are updated, items without id are created, existing items omitted from the array are deleted.

BLOBs (File Upload)​

MethodPathDescription
POST/api/{collection}/{id}/{blob-field}Upload file (multipart/form-data, field name: file)
GET/api/{collection}/{id}/{blob-field}Retrieve file

Authentication​

MethodPathDescription
POST/api/_authGet JWT token (service account or identity provider)
POST/api/_tokenOAuth 2.0 token endpoint (client_credentials, refresh_token grants)
POST/api/_refreshRefresh access cookie
POST/api/_logoutLogout (clear session cookies)
GET/api/_webAppConfigGet webapp auth configuration
—/loginHosted authentication page (not under /api)

Service Account Authentication​

POST /api/_auth
Content-Type: application/json

{
"authority": "serviceaccount",
"clientId": "your-client-id",
"clientSecret": "your-client-secret"
}

OAuth 2.0 Client Credentials​

POST /api/_token
Content-Type: application/json

{
"grant_type": "client_credentials",
"client_id": "your-client-id",
"client_secret": "your-client-secret"
}

OAuth 2.0 Refresh Token​

POST /api/_token
Content-Type: application/json

{
"grant_type": "refresh_token",
"client_id": "your-client-id",
"refresh_token": "your-refresh-token"
}

Real-Time​

MethodPathDescription
GET/api/_rt/wsGet Web PubSub WebSocket URL
GET/api/_rt/signalrGet SignalR connection info
POST/api/_rt/joinJoin a channel ({ connectionId, channel })
POST/api/_rt/sendSend message to channel ({ channel, body })
POST/api/_rt/invokeCall a client, return its reply (functions only)
POST/api/{collection}/_listenSubscribe to entity changes ({ connectionId })

HTTP Functions​

MethodPathDescription
GET/POST/api/{function-name}Call custom HTTP function

Client Logging​

MethodPathDescription
POST/api/_logSend client-side log events (JSON array). Auth required.

Token Lifetimes​

TokenLifetime
Access token~1 hour
Refresh token70 days from creation

See Also​