diff --git a/examples/gcoap/gcoap_cli.c b/examples/gcoap/gcoap_cli.c
index 8542bcab35d6282e935d6b45fb068de111ad999c..636e6998ad6d798eaa93be8c28545fb66d0704b4 100644
--- a/examples/gcoap/gcoap_cli.c
+++ b/examples/gcoap/gcoap_cli.c
@@ -165,8 +165,7 @@ int gcoap_cli_cmd(int argc, char **argv)
 
     if (strcmp(argv[1], "info") == 0) {
         if (argc == 2) {
-            uint8_t open_reqs;
-            gcoap_op_state(&open_reqs);
+            uint8_t open_reqs = gcoap_op_state();
 
             printf("CoAP server is listening on port %u\n", GCOAP_PORT);
             printf(" CLI requests sent: %u\n", req_count);
diff --git a/sys/include/net/gcoap.h b/sys/include/net/gcoap.h
index 19b5a7abc9d17930b64a373bc12c95a57c6c58e7..cea75a6c48b00b52583b0bfafc817cdd9b5f0345 100644
--- a/sys/include/net/gcoap.h
+++ b/sys/include/net/gcoap.h
@@ -407,9 +407,9 @@ static inline ssize_t gcoap_response(coap_pkt_t *pdu, uint8_t *buf, size_t len,
  *
  * Useful for monitoring.
  *
- * @param[out] open_reqs Count of unanswered requests
+ * @return count of unanswered requests
  */
-void gcoap_op_state(uint8_t *open_reqs);
+uint8_t gcoap_op_state(void);
 
 #ifdef __cplusplus
 }
diff --git a/sys/net/application_layer/coap/gcoap.c b/sys/net/application_layer/coap/gcoap.c
index e6cdb8856f6452ed663c339b1f33be95289cddce..5a4df08ab98a3965321eb19a0cf62d0a03c46ba4 100644
--- a/sys/net/application_layer/coap/gcoap.c
+++ b/sys/net/application_layer/coap/gcoap.c
@@ -109,9 +109,7 @@ static void _listen(sock_udp_t *sock)
     uint8_t buf[GCOAP_PDU_BUF_SIZE];
     sock_udp_ep_t remote;
     gcoap_request_memo_t *memo = NULL;
-    uint8_t open_reqs;
-
-    gcoap_op_state(&open_reqs);
+    uint8_t open_reqs = gcoap_op_state();
 
     ssize_t res = sock_udp_recv(sock, buf, sizeof(buf),
                                 open_reqs > 0 ? GCOAP_RECV_TIMEOUT : SOCK_NO_TIMEOUT,
@@ -520,7 +518,7 @@ int gcoap_resp_init(coap_pkt_t *pdu, uint8_t *buf, size_t len, unsigned code)
     return 0;
 }
 
-void gcoap_op_state(uint8_t *open_reqs)
+uint8_t gcoap_op_state(void)
 {
     uint8_t count = 0;
     for (int i = 0; i < GCOAP_REQ_WAITING_MAX; i++) {
@@ -528,7 +526,7 @@ void gcoap_op_state(uint8_t *open_reqs)
             count++;
         }
     }
-    *open_reqs = count;
+    return count;
 }
 
 /** @} */