Get rolling calculation data
List the rolling totals of your calculated user fields, such as the last 30 days, one row per trader and window.
- Method
- GET
- Path
https://api.returning.ai / v1/ custom-field-values/ rolling - Permission
- userFields
- Retries
- Don't retry the 404
When to use this
- You show each trader's rolling total for a calculated field, such as trading volume over the last 30 days.
- You check which traders qualify for a reward based on a rolling window.
Authentication#
- Header
Authorization: Bearer <API_KEY>- Permission
- userFieldsShown in the dashboard as “User Fields”
As built, the endpoint takes a Community API key with userFields, shown in the dashboard as User Fields, and the key decides the community. On the public API today, every request gets 404 before the key is checked.
Behaviour#
This endpoint is not available on the public API: https://api.returning.ai/v1/custom-field-values/rolling returns 404 with an empty body for every request. The parameters and the response on this page describe the endpoint as built, and haven't been confirmed on the public API.
Each row is one trader's total of one calculated user field over one window, such as the last 30 days. lastComputedAt says when it was last worked out. Rows are read-only here.
Request#
Query parameters#
Rule24-character hex ID
fieldId.RuleField key
Egtradingvolume
RuleText
Rulelast_30d, last_60d, last_90d, monthly, quarterly, half_yearly or yearly
Eglast_30d
RuleWhole number
Eg3247779
RulelastComputedAt (default), updatedAt, value or userId
EglastComputedAt
Ruledesc (default) or asc
Egdesc
RuleWhole number, 1 or more; default 1
Eg1
RuleDefault 50; max 200
Eg50
Headers#
userFields.RuleBearer <API_KEY>
curl --request GET \
--url 'https://api.returning.ai/v1/custom-field-values/rolling?field_name=tradingvolume&timeframe=last_30d&limit=50' \
--header 'Authorization: Bearer <API_KEY>'
Response#
When the path is available, a 200 returns the page in data.data and the totals in data.pagination. Today, expect 404.
Rulesuccess
null when none is stored.null when the field no longer exists.last_30d.total, page, limit and totalPages.{
"status": "success",
"message": "Rolling custom field values fetched successfully",
"data": {
"data": [
{
"_id": "66f000000000000000000731",
"communityId": "66f000000000000000000010",
"userId": 3247779,
"email": "trader@example.com",
"field_name": "tradingvolume",
"internalName": "volume_30d",
"timeframe": "last_30d",
"value": 1850000,
"oldestDayInWindow": "2026-08-28T00:00:00.000Z",
"lastComputedAt": "2026-09-27T00:10:00.000Z",
"createdAt": "2026-08-01T00:10:00.000Z",
"updatedAt": "2026-09-27T00:10:00.000Z"
}
],
"pagination": {
"total": 1,
"page": 1,
"limit": 50,
"totalPages": 1
}
}
}
Errors#
The only response from the public API today is 404 with an empty body.
Do not retry01
404 with an empty body, whatever the key or parameters. Don't retry. Read stored field values with Get a trader's field history instead.{
"status": "success",
"message": "Rolling custom field values fetched successfully",
"data": {
"data": [
{
"_id": "66f000000000000000000731",
"communityId": "66f000000000000000000010",
"userId": 3247779,
"email": "trader@example.com",
"field_name": "tradingvolume",
"internalName": "volume_30d",
"timeframe": "last_30d",
"value": 1850000,
"oldestDayInWindow": "2026-08-28T00:00:00.000Z",
"lastComputedAt": "2026-09-27T00:10:00.000Z",
"createdAt": "2026-08-01T00:10:00.000Z",
"updatedAt": "2026-09-27T00:10:00.000Z"
}
],
"pagination": {
"total": 1,
"page": 1,
"limit": 50,
"totalPages": 1
}
}
}