Detection Records (Cursor Pagination)

Retrieve text moderation records with cursor pagination. This is a client-initiated query, not a server-pushed callback.

POSThttps://tsafe.ilivedata.com/api/v1/stats/text/check/records/scroll

Query records from the past month, with up to 2,000 records per page. Send and receive JSON; authenticate with an Authorization signature.

Request Parameters

Request Headers

All headers below are required.

Header Value Description
Content-Type application/json; charset=UTF-8 Request body format.
Accept application/json; charset=UTF-8 Response format.
X-AppId — Project ID from Console → Service Configuration.
X-TimeStamp — UTC request time in W3C format, for example 2026-10-15T02:30:00Z. Use the current time for actual requests.
Authorization — See Request Signature below.

Request Body

Parameter Type Required Description
apps Number[] Optional Project IDs. Defaults to the X-AppId header when omitted.
strategies String[] Optional Policy IDs.
results Number[] Optional Results to include: 0 pass, 1 suspicious, 2 reject.
languages String[] Optional Language codes.
startAt Number Required Start time as a Unix timestamp in milliseconds, within the past month.
endAt Number Required End time as a Unix timestamp in milliseconds.
sortOrder String Optional Sort parameter: ASC ascending or DESC descending; defaults to DESC. See the implementation limitation below.
size Number Required Page size, from 1 to 2000.
cursor Object Optional Omit on the first request. For subsequent requests, pass the returned cursor unchanged.

The current implementation accepts sortOrder but does not forward it to the underlying query. Results still use the default DESC order; do not rely on ASC to return ascending results.

cursor

Field Type Required Description
taskId String Required Task ID associated with the cursor.
timestamp Number Required Cursor time as a Unix timestamp in milliseconds.

Request Examples

The timestamps below illustrate the format. Replace them with a range within the past month.

First Request

{
  "size": 1000,
  "startAt": 1791936000000,
  "endAt": 1792022400000
}

Subsequent Request

Keep the project, time range, and filters unchanged, and pass the previous response’s cursor unchanged.

{
  "size": 1000,
  "startAt": 1791936000000,
  "endAt": 1792022400000,
  "cursor": {
    "timestamp": 1792022390000,
    "taskId": "ap_example_task_001"
  }
}

Request Signature

Calculate Authorization using Request Signature with the parameters below.

Signature Parameter Value
HTTPMethod POST
HostHeaderInLowercase tsafe.ilivedata.com
HTTPRequestURI /api/v1/stats/text/check/records/scroll

HTTP Response

Content-Type: application/json;charset=UTF-8

Response Fields

Field Type Description
code Number 0 indicates success. For nonzero codes, see msg.
msg String Result description or error message.
data Object Query results.

data

Field Type Description
cursor Object Cursor for the next request, with the same structure as the request cursor.
records Object[] Moderation records; fields are listed below.

records[]

Optional fields may be omitted when unavailable. User level, IP, message, payment, channel, and registration metadata come from the original request’s additional data; their value types follow the submitted values.

Field Type Description
input String Original text submitted for moderation.
taskId String Task ID.
result Number Moderation result: 0 pass, 1 suspicious, 2 reject.
checkAt Number Moderation time as a Unix timestamp in milliseconds.
strategy String Policy ID.
language String Language code.
tags Number[] Primary category codes.
subTags Number[] Secondary category codes.
wordlist String[] Matched prohibited words.
userId String User ID.
extra Object Additional data.

Response Example

{
  "code": 0,
  "msg": "Success.",
  "data": {
    "cursor": {
      "timestamp": 1792022390000,
      "taskId": "ap_example_task_001"
    },
    "records": [
      {
        "taskId": "ap_example_task_001",
        "strategy": "DEFAULT",
        "result": 0,
        "input": "Hello",
        "userId": "user001",
        "language": "en",
        "checkAt": 1792022390000
      }
    ]
  }
}