diff --git a/include/ccaosdb.h b/include/ccaosdb.h
index fb21d00f443380758226e281f7ab3c6558bf6b58..9dd1f03d8e02f8cbec595c34078f473fc79cbaae 100644
--- a/include/ccaosdb.h
+++ b/include/ccaosdb.h
@@ -266,6 +266,9 @@ int caosdb_transaction_transaction_get_result_set(
   caosdb_transaction_transaction *transaction,
   caosdb_transaction_result_set *out);
 
+int caosdb_transaction_transaction_get_count_result(
+  caosdb_transaction_transaction *transaction, long *out);
+
 typedef struct {
   void *wrapped_entity;
   char **id;
diff --git a/src/ccaosdb.cpp b/src/ccaosdb.cpp
index e847f614393c1a802698927e5a47d779dc5d6132..c86231ce8b6df6245e358dbdb41772186edcc690 100644
--- a/src/ccaosdb.cpp
+++ b/src/ccaosdb.cpp
@@ -306,4 +306,29 @@ ERROR_RETURN_CODE(GENERIC_ERROR,
                     wrapped_transaction->Execute();
                     return 0;
                   })
+
+ERROR_RETURN_CODE(GENERIC_ERROR,
+                  int caosdb_transaction_transaction_get_result_set(
+                    caosdb_transaction_transaction *transaction,
+                    caosdb_transaction_result_set *out),
+                  {
+                    auto *wrapped_transaction =
+                      static_cast<caosdb::transaction::Transaction *>(
+                        transaction->wrapped_transaction);
+                    out->wrapped_result_set =
+                      (void *)(&(wrapped_transaction->GetResultSet()));
+                    return 0;
+                  })
+
+ERROR_RETURN_CODE(GENERIC_ERROR,
+                  int caosdb_transaction_transaction_get_count_result(
+                    caosdb_transaction_transaction *transaction, long *out),
+                  {
+                    auto *wrapped_transaction =
+                      static_cast<caosdb::transaction::Transaction *>(
+                        transaction->wrapped_transaction);
+                    long cr(wrapped_transaction->GetCountResult());
+                    *out = cr;
+                    return 0;
+                  })
 }