Skip to main content

Rate limits, pagination, and errors

Rate limits

The API enforces rate limits to protect server resources and ensure fair usage.

Default limits

ContextLimit
API calls per IP20-50 requests per minute

Rate limits are applied per IP address, regardless of endpoint or authentication method.

Handling rate limits

When you exceed the rate limit, the API returns 429 Too Many Requests. Best practices:

  • Exponential backoff - wait 1s, then 2s, then 4s between retries
  • Batch writes - use /tickets/multi with arrays instead of one request per record
  • Cache schemas - app schemas change rarely; cache them locally
  • Use filters - narrow queries with rlx filters instead of fetching everything

Pagination

Use limitRecords and skipRecords to page through large result sets.

Parameters

ParameterTypeDefaultDescription
limitRecordsnumber10Records per page
skipRecordsnumber0Records to skip

Example

# Page 1 (records 1-50)
POST /api/w/IT/a/TICKET/tickets/list
{"limitRecords": 50, "skipRecords": 0}

# Page 2 (records 51-100)
POST /api/w/IT/a/TICKET/tickets/list
{"limitRecords": 50, "skipRecords": 50}

# Page 3 (records 101-150)
POST /api/w/IT/a/TICKET/tickets/list
{"limitRecords": 50, "skipRecords": 100}

Total count

Add withTechnicalData=true as a query parameter to get record counts in the response:

POST /api/w/IT/a/TICKET/tickets/list?withTechnicalData=true

Response includes:

{
"data": [...],
"filteredRecordsCount": 125,
"unfilteredRecordsCount": 150
}
  • filteredRecordsCount - total records matching your rlx filter
  • unfilteredRecordsCount - total records in the app (ignoring filters)

Timeouts

API requests time out after 30 seconds. If your query is too complex or returns too much data, narrow it with:

  • More specific rlx filters
  • Smaller limitRecords
  • Fewer fields in listOfFields (use specific field names instead of "ALL")

Request size limits

  • JSON request body: 100 KB maximum
  • URL-encoded body: 100 KB maximum

Error handling

HTTP status codes

CodeMeaning
200Success
400Bad request - invalid parameters or filter syntax
401Unauthorized - missing or invalid token
403Forbidden - insufficient permissions
404Not found - workspace, app, or record does not exist
429Too many requests - rate limit exceeded
500Internal server error

Common errors and solutions

ErrorCauseSolution
Invalid filter syntaxMissing quotes around stringsUse state="open" not state=open
Empty resultsUser lacks workspace/app accessVerify token user's permissions
Record not foundWrong workspace or app aliasCheck the slug format: WORKSPACE/APP
Request timeoutQuery too broad or data too largeAdd rlx filters, reduce limitRecords
Permission denied on writeUser cannot perform the actionVerify the user's group permissions and available transitions
401 on writeToken expired or invalidRefresh or regenerate the token