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.

PATCH /virtual-events/v3/game-events/{eventId} — openapi

Partially update a game event. Only fields present in the request body are changed; omitted or null fields are left unchanged. Empty body is a no-op and returns the current game event resource.

Endpoint

Method: PATCH

Path: /virtual-events/v3/game-events/{eventId}

Servers:

Parameters

NameLocationRequiredDescription
eventIdpathtrueGame event ID from the route.
[
  {
    "name": "eventId",
    "in": "path",
    "description": "Game event ID from the route.",
    "required": true,
    "schema": {
      "type": "integer",
      "format": "int64"
    }
  }
]

Request Body

Partial update payload. Omitted or null fields are treated as no change.

{
  "description": "Partial update payload. Omitted or null fields are treated as no change.",
  "content": {
    "application/json-patch+json": {
      "schema": {
        "allOf": [
          {
            "$ref": "#/components/schemas/UpdateGameEventRequest"
          }
        ],
        "description": "Request body for `PATCH /v3/game-events/{eventId}`.\r\nEvery field is optional; null = \"no change\". An empty body is a no-op and returns the current resource."
      }
    },
    "application/json": {
      "schema": {
        "allOf": [
          {
            "$ref": "#/components/schemas/UpdateGameEventRequest"
          }
        ],
        "description": "Request body for `PATCH /v3/game-events/{eventId}`.\r\nEvery field is optional; null = \"no change\". An empty body is a no-op and returns the current resource."
      }
    },
    "text/json": {
      "schema": {
        "allOf": [
          {
            "$ref": "#/components/schemas/UpdateGameEventRequest"
          }
        ],
        "description": "Request body for `PATCH /v3/game-events/{eventId}`.\r\nEvery field is optional; null = \"no change\". An empty body is a no-op and returns the current resource."
      }
    },
    "application/*+json": {
      "schema": {
        "allOf": [
          {
            "$ref": "#/components/schemas/UpdateGameEventRequest"
          }
        ],
        "description": "Request body for `PATCH /v3/game-events/{eventId}`.\r\nEvery field is optional; null = \"no change\". An empty body is a no-op and returns the current resource."
      }
    }
  }
}

Responses

StatusDescription
200The updated game event resource.
400Validation failure or backend reject.
401Caller is not authenticated.
403Caller can read but lacks edit permission.
404Event not found.
{
  "200": {
    "description": "The updated game event resource.",
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/GameEventResponse"
        }
      }
    }
  },
  "400": {
    "description": "Validation failure or backend reject.",
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/VirtualEventsApi.ProblemDetails"
        }
      }
    }
  },
  "401": {
    "description": "Caller is not authenticated.",
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/VirtualEventsApi.ProblemDetails"
        }
      }
    }
  },
  "403": {
    "description": "Caller can read but lacks edit permission.",
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/VirtualEventsApi.ProblemDetails"
        }
      }
    }
  },
  "404": {
    "description": "Event not found.",
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/VirtualEventsApi.ProblemDetails"
        }
      }
    }
  }
}

Authentication

{
  "security": [
    {
      "roblox-api-key": []
    },
    {
      "roblox-oauth2": [
        "universe.event:write"
      ]
    }
  ],
  "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": "Partially update a game event. Only fields present in the request body are changed; omitted or null fields are left\r\nunchanged. Empty body is a no-op and returns the current game event resource.",
  "operationId": "GameEvent_Update",
  "parameters": [
    {
      "name": "eventId",
      "in": "path",
      "description": "Game event ID from the route.",
      "required": true,
      "schema": {
        "type": "integer",
        "format": "int64"
      }
    }
  ],
  "requestBody": {
    "description": "Partial update payload. Omitted or null fields are treated as no change.",
    "content": {
      "application/json-patch+json": {
        "schema": {
          "allOf": [
            {
              "$ref": "#/components/schemas/UpdateGameEventRequest"
            }
          ],
          "description": "Request body for `PATCH /v3/game-events/{eventId}`.\r\nEvery field is optional; null = \"no change\". An empty body is a no-op and returns the current resource."
        }
      },
      "application/json": {
        "schema": {
          "allOf": [
            {
              "$ref": "#/components/schemas/UpdateGameEventRequest"
            }
          ],
          "description": "Request body for `PATCH /v3/game-events/{eventId}`.\r\nEvery field is optional; null = \"no change\". An empty body is a no-op and returns the current resource."
        }
      },
      "text/json": {
        "schema": {
          "allOf": [
            {
              "$ref": "#/components/schemas/UpdateGameEventRequest"
            }
          ],
          "description": "Request body for `PATCH /v3/game-events/{eventId}`.\r\nEvery field is optional; null = \"no change\". An empty body is a no-op and returns the current resource."
        }
      },
      "application/*+json": {
        "schema": {
          "allOf": [
            {
              "$ref": "#/components/schemas/UpdateGameEventRequest"
            }
          ],
          "description": "Request body for `PATCH /v3/game-events/{eventId}`.\r\nEvery field is optional; null = \"no change\". An empty body is a no-op and returns the current resource."
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "The updated game event resource.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/GameEventResponse"
          }
        }
      }
    },
    "400": {
      "description": "Validation failure or backend reject.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/VirtualEventsApi.ProblemDetails"
          }
        }
      }
    },
    "401": {
      "description": "Caller is not authenticated.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/VirtualEventsApi.ProblemDetails"
          }
        }
      }
    },
    "403": {
      "description": "Caller can read but lacks edit permission.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/VirtualEventsApi.ProblemDetails"
          }
        }
      }
    },
    "404": {
      "description": "Event not found.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/VirtualEventsApi.ProblemDetails"
          }
        }
      }
    }
  },
  "x-roblox-stability": "EXPERIMENTAL",
  "x-roblox-rate-limits": {
    "perApiKeyOwner": {
      "period": "MINUTE",
      "maxInPeriod": 20
    },
    "perOauth2Authorization": {
      "period": "MINUTE",
      "maxInPeriod": 20
    }
  },
  "x-roblox-scopes": [
    {
      "name": "universe.event:write",
      "targetResourceSpecifier": ""
    }
  ],
  "x-roblox-engine-usability": {
    "apiKeyWithHttpService": false
  },
  "security": [
    {
      "roblox-api-key": []
    },
    {
      "roblox-oauth2": [
        "universe.event:write"
      ]
    }
  ],
  "externalDocs": {
    "url": "https://create.roblox.com/docs/cloud/reference/features/virtual-events#GameEvent_Update"
  }
}