diff --git a/.gitmodules b/.gitmodules
index ac0df914d..493a0ad8f 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -28,3 +28,6 @@
 [submodule "externals/enet"]
     path = externals/enet
     url = https://github.com/lsalzman/enet
+[submodule "cpr"]
+    path = externals/cpr
+    url = https://github.com/whoshuu/cpr.git
diff --git a/externals/CMakeLists.txt b/externals/CMakeLists.txt
index cc47166fc..ce10bda5e 100644
--- a/externals/CMakeLists.txt
+++ b/externals/CMakeLists.txt
@@ -4,6 +4,12 @@
 add_library(catch-single-include INTERFACE)
 target_include_directories(catch-single-include INTERFACE catch/single_include)
 
+# CPR
+option(BUILD_TESTING OFF)
+option(BUILD_CPR_TESTS OFF)
+add_subdirectory(cpr)
+target_include_directories(cpr INTERFACE ./cpr/include)
+
 # Crypto++
 add_subdirectory(cryptopp)
 
diff --git a/externals/cpr b/externals/cpr
new file mode 160000
index 000000000..b5758fbc8
--- /dev/null
+++ b/externals/cpr
@@ -0,0 +1 @@
+Subproject commit b5758fbc88021437f968fe5174f121b8b92f5d5c