{"repo":"gin337/ChatGPTReversed","free":true,"listed":false,"github":"https://github.com/gin337/ChatGPTReversed","clone":"git clone https://github.com/gin337/ChatGPTReversed.git","description":"Free ChatGPT API reversed and simplified","language":"TypeScript","stars":87,"topics":["ai","api","chatgpt","chatgpt-api","js","nodejs","openai","openai-api","openaiapi","typescript"],"license":null,"category":"ai-agents","readme_excerpt":"ChatGPTReversed - Educational project Update 02.02.2025 : The ChatGPTReversed instance doesn't need any params anymore. Scroll to the End for documentation Update 30.12.2025 : In recent weeks, OpenAI changed their frontend flow. I will update the project in the next months once I have time Lets keep it simple, this is a educational project to learn to reverse complex API's and understand how they communicate with the frontend. In this case we take a look at the ChatGPT frontend and reverse engineer the API used to communicate with the LLM. OpenAi uses several techniques to prevent malicious use of their API, eg. rate limiting, token expiration, hashing, proof of work, continious calls, proxies, captchas, etc. We take a look at the ChatGPT webapp as starting point and only use the chromium devtools to understand the process. We start by opening the ChatGPT webapp and open the devtools to see the network requests. https://chatgpt.com/backend-api/conversation endpoint is called with a POST request, we can see the payload and type of response. (In this case its a EventStream) Several Identifing headers and cookies are used to prevent abuse, in this case: Authorization(JWT Token) , csrf-token(CSRF protection) , session-token (Same as the JWT token) , Requirements-Token & Proof Token https://chatgpt.com/backend-api/sentinel/chat-requirements endpoint is called before the conversation starts, it passes in the token x and returns the token y. To find out how x is retrieved we need to","default_branch":null,"files":null,"tree":[],"storefront":"/r/gin337","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/gin337/ChatGPTReversed/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}