5 min read

Source: Roblox Creator Hub · CC BY 4.0 · View source · Code samples: MIT Imported 2026-10-03. Formatting adapted for this site.

GET /virtual-events/v3/universes/{universeId}/game-events — openapi

List game events under a universe. Use ?fields= to trim the response payload. Response is always 200 (empty list for unknown universe).

Endpoint

Method: GET

Path: /virtual-events/v3/universes/{universeId}/game-events

Servers:

Parameters

NameLocationRequiredDescription
universeIdpathtrueUniverse that owns the events (from path).
pageSizequeryfalseRequested page size.
pageTokenqueryfalseContinuation token from a prior page's nextPageToken.
reversequeryfalseWhen true, treats pageToken as a backward-pagination cursor.
startsBeforequeryfalseUpper bound on event start time.
startsAfterqueryfalseLower bound on event start time.
endsBeforequeryfalseUpper bound on event end time.
endsAfterqueryfalseLower bound on event end time. Defaults to now when neither bound is set.
visibilityqueryfalseVisibility filter.
fieldsqueryfalseField mask (comma-separated; omit or * for all fields).
[
  {
    "name": "universeId",
    "in": "path",
    "description": "Universe that owns the events (from path).",
    "required": true,
    "schema": {
      "type": "integer",
      "format": "int64"
    }
  },
  {
    "name": "pageSize",
    "in": "query",
    "description": "Requested page size.",
    "schema": {
      "type": "integer",
      "format": "int32"
    }
  },
  {
    "name": "pageToken",
    "in": "query",
    "description": "Continuation token from a prior page's `nextPageToken`.",
    "schema": {
      "type": "string"
    }
  },
  {
    "name": "reverse",
    "in": "query",
    "description": "When true, treats `pageToken` as a backward-pagination cursor.",
    "schema": {
      "type": "boolean",
      "default": false
    }
  },
  {
    "name": "startsBefore",
    "in": "query",
    "description": "Upper bound on event start time.",
    "schema": {
      "type": "string",
      "format": "date-time"
    }
  },
  {
    "name": "startsAfter",
    "in": "query",
    "description": "Lower bound on event start time.",
    "schema": {
      "type": "string",
      "format": "date-time"
    }
  },
  {
    "name": "endsBefore",
    "in": "query",
    "description": "Upper bound on event end time.",
    "schema": {
      "type": "string",
      "format": "date-time"
    }
  },
  {
    "name": "endsAfter",
    "in": "query",
    "description": "Lower bound on event end time. Defaults to now when neither bound is set.",
    "schema": {
      "type": "string",
      "format": "date-time"
    }
  },
  {
    "name": "visibility",
    "in": "query",
    "description": "Visibility filter.",
    "schema": {
      "allOf": [
        {
          "$ref": "#/components/schemas/EventVisibility"
        }
      ]
    }
  },
  {
    "name": "fields",
    "in": "query",
    "description": "Field mask (comma-separated; omit or `*` for all fields).",
    "schema": {
      "type": "string"
    }
  }
]

Responses

StatusDescription
200A page of game events.
400Invalid ?fields=, out-of-range pageSize, or bad query parameter.
{
  "200": {
    "description": "A page of game events.",
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/PaginatedGameEventsResponse"
        }
      }
    }
  },
  "400": {
    "description": "Invalid `?fields=`, out-of-range `pageSize`, or bad query parameter.",
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/VirtualEventsApi.ProblemDetails"
        }
      }
    }
  }
}

Authentication

{
  "security": [
    {
      "roblox-api-key": []
    },
    {
      "roblox-oauth2": [
        "universe.event:read"
      ]
    }
  ],
  "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": {}
        }
      }
    }
  }
}

Complete Operation Definition

{
  "tags": [
    "Game Events"
  ],
  "summary": "List game events under a universe.\r\nUse `?fields=` to trim the response payload.\r\nResponse is always 200 (empty list for unknown universe).",
  "operationId": "GameEvents_List",
  "parameters": [
    {
      "name": "universeId",
      "in": "path",
      "description": "Universe that owns the events (from path).",
      "required": true,
      "schema": {
        "type": "integer",
        "format": "int64"
      }
    },
    {
      "name": "pageSize",
      "in": "query",
      "description": "Requested page size.",
      "schema": {
        "type": "integer",
        "format": "int32"
      }
    },
    {
      "name": "pageToken",
      "in": "query",
      "description": "Continuation token from a prior page's `nextPageToken`.",
      "schema": {
        "type": "string"
      }
    },
    {
      "name": "reverse",
      "in": "query",
      "description": "When true, treats `pageToken` as a backward-pagination cursor.",
      "schema": {
        "type": "boolean",
        "default": false
      }
    },
    {
      "name": "startsBefore",
      "in": "query",
      "description": "Upper bound on event start time.",
      "schema": {
        "type": "string",
        "format": "date-time"
      }
    },
    {
      "name": "startsAfter",
      "in": "query",
      "description": "Lower bound on event start time.",
      "schema": {
        "type": "string",
        "format": "date-time"
      }
    },
    {
      "name": "endsBefore",
      "in": "query",
      "description": "Upper bound on event end time.",
      "schema": {
        "type": "string",
        "format": "date-time"
      }
    },
    {
      "name": "endsAfter",
      "in": "query",
      "description": "Lower bound on event end time. Defaults to now when neither bound is set.",
      "schema": {
        "type": "string",
        "format": "date-time"
      }
    },
    {
      "name": "visibility",
      "in": "query",
      "description": "Visibility filter.",
      "schema": {
        "allOf": [
          {
            "$ref": "#/components/schemas/EventVisibility"
          }
        ]
      }
    },
    {
      "name": "fields",
      "in": "query",
      "description": "Field mask (comma-separated; omit or `*` for all fields).",
      "schema": {
        "type": "string"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "A page of game events.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/PaginatedGameEventsResponse"
          }
        }
      }
    },
    "400": {
      "description": "Invalid `?fields=`, out-of-range `pageSize`, or bad query parameter.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/VirtualEventsApi.ProblemDetails"
          }
        }
      }
    }
  },
  "x-roblox-stability": "EXPERIMENTAL",
  "x-roblox-rate-limits": {
    "perApiKeyOwner": {
      "period": "MINUTE",
      "maxInPeriod": 100
    },
    "perOauth2Authorization": {
      "period": "MINUTE",
      "maxInPeriod": 100
    }
  },
  "x-roblox-scopes": [
    {
      "name": "universe.event:read",
      "targetResourceSpecifier": "universes"
    }
  ],
  "x-roblox-engine-usability": {
    "apiKeyWithHttpService": false
  },
  "security": [
    {
      "roblox-api-key": []
    },
    {
      "roblox-oauth2": [
        "universe.event:read"
      ]
    }
  ],
  "externalDocs": {
    "url": "https://create.roblox.com/docs/cloud/reference/features/virtual-events#GameEvents_List"
  }
}