I was going to reply to Franz here, but decided to make a topic instead! 🙂
All the requests that /api/ are returning is in JSON format. But they are transferring property names with quotation's which is not needed. You can use object literal data, and turn
This

46,160 bytes
Into:
(This is valid object literal data and will work fine).
33,018 bytes
That's roughly 13,142 bytes saved which is a total of: 28.47% bandwidth saved.
Doesn't seem like much now does it? But when you have thousands of requests, THIS IS a drastic increase of saving the memory footprint.
Douglas Crawford released JSON 2's source here and I modified it to parse out Object Literal (that was JSON). Now, ofcourse since Flarum is not under nodejs, you'd have to parse that through PHP, which shouldn't be a problem rewriting json_encode's function to exclude quotations around property & key name values.
To get that JSON data into Object Literal, I ran it through Douglas Crawford's modified stringed version I made:

Now, I could of just copy and pasted the JSON data into the console, but I needed to copy all that object literal data and chrome doesn't let us do that. (Because I wanted to get all that object literal data to be shown in the above screenshot), so you can compare the performance and difference in bytes saved.
You can also... save even more bytes and further optimize this animal. You don't need to send those property names over. Use alphebetical naming for example:
"attributes": {
"id": 4166,
"number": 1,
"time": "2015-08-09T14:30:29+00:00",
"contentType": "comment",
"contentHtml": "
}
Can be sent across the pipe as: (object literal)
a:{
b: 4166,
c: 1,
d: "time here",
e: "comment",
f: "content"
}
Which would make it very confusing to deal with property names clientside, but for high volume boards in the future, this optimization technique will save a lot of bandwidth. (I'm not saying change these values within PHP or the core, that would ruin modularity. But, for sending data across the pipe, this would be even further optimization!