diff --git a/epicardium/epicardium.h b/epicardium/epicardium.h
index 8814692a62a06edce3b9db0cf58c6090ba78c86a..34a5db597b2e78905cbf5c11f572bb4cc2ae5c9e 100644
--- a/epicardium/epicardium.h
+++ b/epicardium/epicardium.h
@@ -36,6 +36,7 @@ typedef _Bool bool;
 
 #define API_INTERRUPT_ENABLE        0xA
 #define API_INTERRUPT_DISABLE       0xB
+#define API_INTERRUPT_IS_ENABLED    0xC
 
 #define API_UART_WRITE_STR         0x10
 #define API_UART_READ_CHAR         0x11
@@ -184,6 +185,19 @@ API(API_INTERRUPT_ENABLE, int epic_interrupt_enable(api_int_id_t int_id));
  */
 API(API_INTERRUPT_DISABLE, int epic_interrupt_disable(api_int_id_t int_id));
 
+/**
+ * Check if an API interrupt is enabled.
+ *
+ * :param int int_id: The interrupt to be checked
+ * :param bool* enabled: ``true`` will be stored here if the interrupt is enabled.
+ *   ``false`` otherwise.
+ *
+ * :return: 0 on success, ``-EINVAL`` if the interrupt is unknown.
+ *
+ * .. versionadded:: 1.16
+ */
+API(API_INTERRUPT_IS_ENABLED, int epic_interrupt_is_enabled(api_int_id_t int_id, bool *enabled));
+
 /**
  * The following interrupts are defined:
  */
diff --git a/epicardium/modules/interrupts.c b/epicardium/modules/interrupts.c
index 0ead54fc58b1d6341071cd377a8ab239bbbff8e7..d65505ea5a0629b5934057e81599d9c35d6ec454 100644
--- a/epicardium/modules/interrupts.c
+++ b/epicardium/modules/interrupts.c
@@ -78,6 +78,17 @@ static void interrupt_set_enabled(api_int_id_t id, bool enabled)
 	mutex_unlock(&interrupt_mutex);
 }
 
+static bool interrupt_get_enabled(api_int_id_t id)
+{
+	assert(id < EPIC_INT_NUM);
+
+	bool enabled;
+	mutex_lock(&interrupt_mutex);
+	enabled = interrupt_data.int_enabled[id];
+	mutex_unlock(&interrupt_mutex);
+	return enabled;
+}
+
 void interrupt_init(void)
 {
 	if (interrupt_mutex.name == NULL)
@@ -114,6 +125,17 @@ int epic_interrupt_disable(api_int_id_t int_id)
 	interrupt_set_enabled(int_id, false);
 	return 0;
 }
+
+int epic_interrupt_is_enabled(api_int_id_t int_id, bool *enabled)
+{
+	if (int_id >= EPIC_INT_NUM) {
+		return -EINVAL;
+	}
+
+	*enabled = interrupt_get_enabled(int_id);
+	return 0;
+}
+
 /* }}} */
 
 void vInterruptsTask(void *pvParameters)