--- title: Protocol anchor: protocol weight: 6 --- ## What this section covers What one should expect when attempting to implement a server/client compliant with the Freechat protocol. ## What this section does not cover Details on implementation are found under: * [JSON API Endpoints](#endpoints) Details what endpoints are available to send/receive data through. * [Structures](#structures) Details what kind of data is sent back and forth between clients and servers. ## Overview Content The Freechat protocol is based on HTTP and currently outlines a _json-based_ API hereafter referred to as just, the "JSON API". Due to the standards already in place with HTTP and JSON it is safe to assume that this protocol be more of an outline for what HTTP endpoints to have and what kind of data is to be expected in exchanges. * Endpoints listed in the [JSON API Endpoints section](#endpoints). * Data structures are also outline under the [structures](#structures) section. Most servers will likely run on one of three ports, `80` for basic HTTP, `443` for secure HTTP traffic, or `4536` for most others. If using a _special port_ then servers should expect _user applications_ to specify the port. For connections over SSH or other protocols it really is up to server owners to let new users know about this important detail. SSH based servers are not discouraged, in fact they are highly _encouraged_ to exist and operate :^)