request
Sends an HTTP request with custom headers, body, and method.
function request(options: HttpRequest): HttpResponseSynopsis
How it works
Sends an HTTP/HTTPS request from the client machine, bypassing Roblox’s
HttpService restrictions entirely. The executor uses the system’s native HTTP stack (WinHTTPWinHTTPWindows HTTP Services — a Win32 API for making HTTP/HTTPS requests. Used by the executor for request() instead of Roblox's HttpService. Handles TLS via Schannel. on Windows) rather than Roblox’s networking layer, so there are no HttpEnabled checks, domain allowlists, or rate limits.Network stack
The request goes through the OS networking layer:
WinHttpOpen // create session handle
WinHttpConnect // resolve host, establish TCP connection
WinHttpOpenRequest // configure method, path, headers
WinHttpSendRequest // send request body
WinHttpReceiveResponse // wait for response
WinHttpReadData // read response body
For HTTPS, TLSTLSTransport Layer Security — the cryptographic protocol that secures HTTPS connections. Encrypts data in transit between client and server. On Windows, the Schannel provider handles TLS negotiation. negotiation is handled by the OS (Schannel on Windows). The executor automatically injects identification headers: X-User-Identifier, X-Fingerprint, and a custom User-Agent. The request yieldsYieldPausing a Luau coroutine/thread, returning control to the scheduler. The thread resumes later when the yielding condition is met (e.g., task.wait timer expires, HTTP response arrives). Implemented via coroutine.yield(). the Luau thread until the response arrives or a timeout occurs.Response
Returns a table:
{ StatusCode: number, StatusMessage: string, Headers: {[string]: string}, Body: string, Success: boolean }. Success is true for 2xx status codes. The Body is the raw response string — parse JSONJSONJavaScript Object Notation — a text-based data interchange format. Maps to Lua tables: objects → string-keyed tables, arrays → integer-keyed tables. Parsed via HttpService:JSONDecode() or game:GetService("HttpService"):JSONEncode(). with game:GetService("HttpService"):JSONDecode(body).Usage
GET request
local res = request({ Url = "https://httpbin.org/get", Method = "GET" })
print(res.StatusCode, res.Body)Parameters
options HttpRequest Table with Url, Method, Body?, Headers?, Cookies? fields.
Returns
HttpResponse Table with Body, StatusCode, StatusMessage, Success, Headers.
Aliases
Also available as http.request and http_request.