Source: Roblox Creator Hub · CC BY 4.0 · View source · Code samples: MIT Imported 2026-10-03. Formatting adapted for this site.
GET /cloud/v2/universes/{universe_id}/user-restrictions:listLogs — openapi
List User Restriction Logs
List changes to UserRestriction resources within a given universe. This includes both universe-level and place-level restrictions.
For universe-level restriction logs, the place field will be empty.
Endpoint
Method: GET
Path: /cloud/v2/universes/{universe_id}/user-restrictions:listLogs
Servers:
https://apis.roblox.com
Parameters
| Name | Location | Required | Description |
|---|---|---|---|
| universe_id | path | true | The universe ID. |
| maxPageSize | query | false | The maximum number of UserRestrictionLogs to return. The service may return fewer than this value. If unspecified, at most 10 UserRestrictionLogs are returned. The maximum value is 100 and higher values are set to 100. |
| pageToken | query | false | A page token, received from a previous call, to retrieve a subsequent page. When paginating, all other parameters provided to the subsequent call must match the call that provided the page token. |
| filter | query | false | This field may be set to filter the logs returned. The filter field supports a very small number of CEL: * user * place * The == comparison operator is available. * The && logical operator is also supported. As an example, filtering for a user and a place takes the form filter="user == 'users/123'" && "place == 'places/456'" |
[
{
"name": "universe_id",
"in": "path",
"description": "The universe ID.",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "maxPageSize",
"in": "query",
"description": "The maximum number of UserRestrictionLogs to return. The service may return\nfewer than this value. If unspecified, at most 10 UserRestrictionLogs are\nreturned. The maximum value is 100 and higher values are set to 100.",
"schema": {
"type": "integer",
"format": "int32"
},
"examples": {
"maxPageSize": {
"description": "An integer between 1 and 100, inclusive",
"value": 10
}
}
},
{
"name": "pageToken",
"in": "query",
"description": "A page token, received from a previous call, to retrieve a subsequent page.\n\nWhen paginating, all other parameters provided to the subsequent call must\nmatch the call that provided the page token.",
"schema": {
"type": "string"
}
},
{
"name": "filter",
"in": "query",
"description": "This field may be set to filter the logs returned.\n\nThe `filter` field supports a very small number of CEL:\n\n* `user`\n* `place`\n* The `==` comparison operator is available.\n* The `&&` logical operator is also supported.\n\nAs an example, filtering for a user and a place takes the form\n`filter=\"user == 'users/123'\" && \"place == 'places/456'\"`",
"schema": {
"type": "string"
}
}
] Responses
| Status | Description |
|---|---|
| 200 | OK |
{
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ListUserRestrictionLogsResponse"
}
}
}
}
} Authentication
{
"security": [
{
"roblox-api-key": []
},
{
"roblox-oauth2": []
}
],
"securitySchemes": {
"roblox-api-key": {
"type": "apiKey",
"description": "A configurable key that allows granular access to Roblox resources. See https://create.roblox.com/docs/cloud/auth/api-keys for more information.",
"name": "x-api-key",
"in": "header"
},
"roblox-legacy-cookie": {
"type": "apiKey",
"description": "A browser cookie that represents the identity of a Roblox user. DO NOT SHARE THIS. Sharing this will allow someone to log in as you and to steal your Robux and items. We do not recommend using cookies to call endpoints. When possible, use API keys with the x-api-key header or OAuth 2.0 instead for authentication.",
"in": "cookie",
"name": ".ROBLOSECURITY"
},
"roblox-oauth2": {
"type": "oauth2",
"description": "Build or authorize apps to access Roblox resources. See https://create.roblox.com/docs/cloud/auth/oauth2-overview for more information.",
"flows": {
"authorizationCode": {
"authorizationUrl": "https://apis.roblox.com/oauth/v1/authorize",
"tokenUrl": "https://apis.roblox.com/oauth/v1/token",
"refreshUrl": "https://apis.roblox.com/oauth/v1/token",
"scopes": {}
}
}
}
}
} Related Schemas
Complete Operation Definition
{
"tags": [
"Bans and blocks",
"Universes",
"Users"
],
"summary": "List User Restriction Logs",
"description": "List changes to UserRestriction resources within a given universe.\nThis includes both universe-level and place-level restrictions.\n\nFor universe-level restriction logs, the `place` field will be empty.",
"operationId": "Cloud_ListUserRestrictionLogs",
"parameters": [
{
"name": "universe_id",
"in": "path",
"description": "The universe ID.",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "maxPageSize",
"in": "query",
"description": "The maximum number of UserRestrictionLogs to return. The service may return\nfewer than this value. If unspecified, at most 10 UserRestrictionLogs are\nreturned. The maximum value is 100 and higher values are set to 100.",
"schema": {
"type": "integer",
"format": "int32"
},
"examples": {
"maxPageSize": {
"description": "An integer between 1 and 100, inclusive",
"value": 10
}
}
},
{
"name": "pageToken",
"in": "query",
"description": "A page token, received from a previous call, to retrieve a subsequent page.\n\nWhen paginating, all other parameters provided to the subsequent call must\nmatch the call that provided the page token.",
"schema": {
"type": "string"
}
},
{
"name": "filter",
"in": "query",
"description": "This field may be set to filter the logs returned.\n\nThe `filter` field supports a very small number of CEL:\n\n* `user`\n* `place`\n* The `==` comparison operator is available.\n* The `&&` logical operator is also supported.\n\nAs an example, filtering for a user and a place takes the form\n`filter=\"user == 'users/123'\" && \"place == 'places/456'\"`",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ListUserRestrictionLogsResponse"
}
}
}
}
},
"x-roblox-engine-usability": {
"apiKeyWithHttpService": true
},
"x-roblox-rate-limits": {
"description": "User Restrictions are subject to the additional rate limits, applied per universe\n\n* Get User Restriction: 50 req/s\n* List User Restrictions: 50 req/s\n* Update User Restrictions: 10 req/s\n* List User Restriction Logs: 50 req/s\n\nAdditionally, we impose the following rate limit for the same user within a universe:\n\n* Update User Restriction: 2 req/min\n\nFor example, Update User Restriction may not be called for user 123 more than twice every minute.",
"perApiKeyOwner": {
"period": "SECOND",
"maxInPeriod": 150
},
"perOauth2Authorization": {
"period": "SECOND",
"maxInPeriod": 30
}
},
"x-roblox-scopes": [
{
"name": "universe.user-restriction:read"
}
],
"x-roblox-docs": {
"category": "Users and groups",
"methodProperties": {
"scopes": [
"universe.user-restriction:read"
]
},
"resource": {
"$ref": "#/components/schemas/UserRestriction",
"name": "UserRestriction"
}
},
"x-roblox-stability": "BETA",
"security": [
{
"roblox-api-key": []
},
{
"roblox-oauth2": []
}
],
"externalDocs": {
"url": "https://create.roblox.com/docs/cloud/reference/features/bans-and-blocks#Cloud_ListUserRestrictionLogs"
}
}