diff --git a/code/controllers/configuration/entries/general.dm b/code/controllers/configuration/entries/general.dm
index e829aae0adb..d2a620effa1 100644
--- a/code/controllers/configuration/entries/general.dm
+++ b/code/controllers/configuration/entries/general.dm
@@ -491,6 +491,8 @@
/datum/config_entry/flag/auto_profile
+/datum/config_entry/string/centcom_ban_db // URL for the CentCom Galactic Ban DB API
+
// DISCORD ROLE STUFFS
// Using strings for everything because BYOND does not like numbers this big
// (exception to the above is required living hours haha)
diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm
index da5e3dc7c38..da3249d6840 100644
--- a/code/modules/admin/admin.dm
+++ b/code/modules/admin/admin.dm
@@ -43,6 +43,11 @@
body += "
Show related accounts by: "
body += "\[ CID | "
body += "IP \]"
+ body += "
CentCom Galactic Ban DB: "
+ if(CONFIG_GET(string/centcom_ban_db))
+ body += "Search"
+ else
+ body += "Disabled"
var/rep = 0
rep += SSpersistence.antag_rep[M.ckey]
body += "
Antagonist reputation: [rep]"
diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm
index ea368a13132..015be8c1a16 100644
--- a/code/modules/admin/topic.dm
+++ b/code/modules/admin/topic.dm
@@ -2071,6 +2071,59 @@
usr << browse(dat.Join("
"), "window=related_[C];size=420x300")
+ else if(href_list["centcomlookup"])
+ if(!check_rights(R_ADMIN))
+ return
+
+ if(!CONFIG_GET(string/centcom_ban_db))
+ to_chat(usr, "Centcom Galactic Ban DB is disabled!")
+ return
+
+ var/ckey = href_list["centcomlookup"]
+
+ // Make the request
+ var/datum/http_request/request = new()
+ request.prepare(RUSTG_HTTP_METHOD_GET, "[CONFIG_GET(string/centcom_ban_db)]/[ckey]", "", "")
+ request.begin_async()
+ UNTIL(request.is_complete() || !usr)
+ if (!usr)
+ return
+ var/datum/http_response/response = request.into_response()
+
+ var/list/bans
+
+ var/list/dat = list("