Annoying ChatGPT Data Usage Every reload of chatgpt.com triggers a request to ab.chatgpt.com/v1/initialize, the Statsig feature-flag and experimentation service OpenAI acquired last year, that returns roughly 1MB on the wire and 5.7MB of JSON decompressed, about 4.7MB of it dynamic_configs, according to a developer investigation into slow ChatGPT load times. The request sends sinceTime: 0, asking for all flags since the beginning of time, even though the client already holds the previous response's time and full_checksum; rewriting the request with those values cut the response to 836 bytes. The same investigation found the Statsig SDK then tries to write the uncompressed response to localStorage, hits a QuotaExceededError on statsig.cached.evaluations.3678146511, and reports the failure to /v1/sdk_exception on every page load, while the ChatGPT homepage HTML already carries about 700KB of the same flags as bootstrap. While investigating slow load times on ChatGPT, I noticed that every reload of chatgpt.com downloads a lot of data, every single load. Most of it is a single request to https://ab.chatgpt.com/v1/initialize , which is Statsig, the feature flag and experimentation service that OpenAI bought last year because why not . On every page load, the response is around 1MB on the wire, and 5.7MB of JSON once decompressed. About 4.7MB of that is dynamic configs . The request body is JSON, base64-encoded, and then reversed yes, really . Decoded, it contains among other things : { "deltasResponseRequested": true, "sinceTime": 0, "partialUserMatchSinceTime": 1794316993881 } sinceTime: 0 means “give me everything since the beginning of time”, so the server does. The client even knows when the flags last changed: partialUserMatchSinceTime is the exact time from the previous response. Two reloads a few minutes apart get exactly the same time , company lcut , and full checksum back, so nothing has changed, but we still download the full response every page load. Sometimes a single reload makes the request twice for some reason, too. I’m currently on an island paying some exorbitant fee for internet, so this is pretty annoying. The server does support doing this properly, though. Rewriting the request to include the previous sinceTime and full checksum , the response is only a whopping 836 bytes. Then and perhaps related, but I haven’t looked into it , the SDK tries to save the uncompressed response in localStorage as statsig.cached.evaluations.