This page aims to describe the network protocol of Omegle. Omegle is a website and a mobile application that allows people to chat with random strangers. The network protocol is based on HTTP and JSON. It uses long-polling instead of websockets.
Omegle has a few different servers. A client should pick a random one when
connecting. The server address is http://frontX.omegle.com where X is a
random number between 1 and 9.
Another way of picking a server is sending a GET request to
http://omegle.com/status, parsing the JSON and picking a random server from
servers.
Since the protocol is polling-based, state is maintained by getting a shard from
the server when connecting and sending it back on every request. You can get
this shard by sending a POST request to http://frontX.omegle.com/start with
the data {"rcs": 1} and saving the shard you get in the response.
Disconnecting is really similar to connecting. Sending a POST request to
http://frontX.omegle.com/disconnect with the data {"id": SHARD_GOES_HERE} is
enough. To connect again, just get another shard by doing /start.
Sending messages is very important in a chat protocol. To send messages, you
need to send a POST request to http://frontX.omegle.com/send with the data
{"id": SHARD_GOES_HERE, "message": "Your message here!"}.
In order to make a full chat client, you need to get events as well. These events include:
To get the events, you need to send a POST request to
http://frontX.omegle.com/events with the data {"id": SHARD_GOES_HERE}. In
response, you will get a JSON list of events. The events are lists as well. The
first member of the list is the event name and the of them are the arguments
(such as the message from a message event).
Here are some of the events.
["waiting"] Searching for a stranger["connected"] Found a stranger["strangerDisconnected"] The stranger disconnected["gotMessage", "Message text here"] The stranger sent a message["typing"] The stranger is typing["stoppedTyping"] The stranger stopped typingIn order send the Stranger is typing notification to the other person, you can
send a POST request to http://frontX.omegle.com/typing and
http://frontX.omegle.com/stoppedtyping. Both of them need to have {"id": SHARD_GOES_HERE} in the post data.
No, Omegle is not a peer-to-peer chat application. It communicates with a random server using JSON messages transferred over HTTP requests.
Omegle uses TLS when communicating with their servers. This means your network provider will be able to see that you are using Omegle, but not what you are typing. It is important to note that the messages are NOT end-to-end encrypted, which means Omegle is able to read everything you send and receive.
testing on 2025-06-17 22:48:59
Spam probability: 0.50%
hmm
admin on 2024-06-29 19:56:41
Spam probability: 8.56%
Consider yourself noticed @wulfey
Dox on 2023-05-07 06:25:56
Spam probability: 1.68%
Nice, can I change my server?
wulfey on 2022-12-01 19:34:23
Spam probability: 0.60%
heh, neat - wonder how long it'd take for someone to notice me here (psst!)
Cute on 2022-11-24 07:17:21
Spam probability: 2.02%
Nice, can I change my server?