diff --git a/include/mtx/responses/sync.hpp b/include/mtx/responses/sync.hpp
index c10d768ce7fd6420ec43fab1a63b1d59dfd3d39e..151c240cc0d04ec1220158a69ec08bfbb50c1c7e 100644
--- a/include/mtx/responses/sync.hpp
+++ b/include/mtx/responses/sync.hpp
@@ -4,9 +4,7 @@
 #include <string>
 #include <vector>
 
-#include "mtx/events.hpp"
 #include "mtx/events/collections.hpp"
-#include "mtx/identifiers.hpp"
 
 #include <nlohmann/json.hpp>
 
diff --git a/include/mtxclient/http/client.hpp b/include/mtxclient/http/client.hpp
index 2c684d4026b28370c24b7e9e3fff5e9c3006b5ec..22c0e82d05cf45c547efd119b0130baca082bd40 100644
--- a/include/mtxclient/http/client.hpp
+++ b/include/mtxclient/http/client.hpp
@@ -1,22 +1,67 @@
 #pragma once
 
-#include <memory>
-#include <optional>
-
-#include <boost/beast/http/fields.hpp>
-
 #if __has_include(<nlohmann/json_fwd.hpp>)
 #include <nlohmann/json_fwd.hpp>
 #else
 #include <nlohmann/json.hpp>
 #endif
 
-#include <mtx/requests.hpp>
-#include <mtx/responses.hpp>
-
-#include "mtxclient/crypto/client.hpp"
-#include "mtxclient/http/errors.hpp"
-#include "mtxclient/utils.hpp"
+#include "mtx/errors.hpp"              // for Error
+#include "mtx/events.hpp"              // for EventType, to_string, json
+#include "mtx/events/collections.hpp"  // for TimelineEvents
+#include "mtx/identifiers.hpp"         // for User
+#include "mtx/responses/empty.hpp"     // for Empty, Logout, RoomInvite
+#include "mtxclient/http/errors.hpp"   // for ClientError
+#include "mtxclient/utils.hpp"         // for random_token, url_encode, des...
+
+#include <boost/beast/http/fields.hpp> // for fields
+#include <boost/beast/http/status.hpp> // for status
+#include <boost/system/error_code.hpp> // for error_code
+
+#include <cstdint>    // for uint16_t, uint64_t
+#include <functional> // for function
+#include <memory>     // for allocator, shared_ptr, enable...
+#include <optional>   // for optional
+#include <string>     // for string, operator+, char_traits
+#include <utility>    // for move
+#include <vector>     // for vector
+
+// forward declarations
+namespace mtx {
+namespace http {
+struct ClientPrivate;
+struct Session;
+}
+namespace requests {
+struct CreateRoom;
+struct Login;
+struct QueryKeys;
+struct UploadKeys;
+}
+namespace responses {
+struct AvatarUrl;
+struct ClaimKeys;
+struct ContentURI;
+struct CreateRoom;
+struct EventId;
+struct FilterId;
+struct GroupId;
+struct GroupProfile;
+struct JoinedGroups;
+struct KeyChanges;
+struct Login;
+struct Messages;
+struct Notifications;
+struct Profile;
+struct QueryKeys;
+struct Register;
+struct RegistrationFlows;
+struct Sync;
+struct UploadKeys;
+struct Versions;
+struct WellKnown;
+}
+}
 
 namespace mtx {
 namespace http {