diff --git a/consumer/api/c/include/asapo/consumer_c.h b/consumer/api/c/include/asapo/consumer_c.h
index 442e39aa466bc48d6c6b31807bfe30e8ac18f1f7..f7366a696be8654bfc85f0f637925d40d690fad0 100644
--- a/consumer/api/c/include/asapo/consumer_c.h
+++ b/consumer/api/c/include/asapo/consumer_c.h
@@ -66,6 +66,10 @@ AsapoBool asapo_is_error(AsapoErrorHandle err);
 
 AsapoStringHandle asapo_consumer_generate_new_group_id(AsapoConsumerHandle consumer, AsapoErrorHandle* err);
 const char* asapo_string_c_str(const AsapoStringHandle str);
+
+AsapoStringHandle asapo_string_from_c_str(const char* str);
+
+
 size_t asapo_string_size(const AsapoStringHandle str);
 
 void asapo_consumer_set_timeout(AsapoConsumerHandle consumer, uint64_t timeout_ms);
diff --git a/consumer/api/cpp/src/consumer_c_glue.cpp b/consumer/api/cpp/src/consumer_c_glue.cpp
index 2fe30a077f6aea87a3418c8d40ceb5caba6657e3..e5c28ef52deb167f3938bcabb9c5cb8905b9f853 100644
--- a/consumer/api/cpp/src/consumer_c_glue.cpp
+++ b/consumer/api/cpp/src/consumer_c_glue.cpp
@@ -245,6 +245,15 @@ extern "C" {
         return static_cast<AsapoStringHandle>(handle_or_null(retval, error, std::move(err)));
     }
 
+//! creates AsapoStringHandle from C-String
+/// \param[in] str C-string
+/// \return AsapoStringHandle
+    AsapoStringHandle asapo_string_from_c_str(const char* str) {
+        auto retval = new AsapoHandlerHolder<std::string> {new std::string{str}};
+        return static_cast<AsapoStringHandle>(retval);
+    }
+
+
 //! give a pointer to the content of the asapoString
 /// \param[in] str the handle of the asapoString in question
 /// \return const char pointer to the content
diff --git a/tests/automatic/consumer/consumer_api/consumer_api.c b/tests/automatic/consumer/consumer_api/consumer_api.c
index 21cfa29371457f206d53f607c6ff24490f7d16df..ed81afab911933054f4c398fd3ddf156540e3ab3 100644
--- a/tests/automatic/consumer/consumer_api/consumer_api.c
+++ b/tests/automatic/consumer/consumer_api/consumer_api.c
@@ -262,6 +262,11 @@ int main(int argc, char* argv[]) {
                                                          &err);
     EXIT_IF_ERROR("create consumer", err);
 
+    AsapoStringHandle group_id2 = asapo_string_from_c_str("hello");
+    printf("%s\n",asapo_string_c_str(group_id2));
+//    ASSERT_EQ_STRING("hello",asapo_string_c_str(group_id2),"asapo str <-> string");
+
+
     asapo_consumer_set_timeout(consumer, 1000ull);
 
 
@@ -280,10 +285,12 @@ int main(int argc, char* argv[]) {
         test_datasets(consumer,group_id);
     }
 
+
     asapo_free_handle(&err);
     asapo_free_handle(&cred);
     asapo_free_handle(&consumer);
     asapo_free_handle(&group_id);
+    asapo_free_handle(&group_id2);
 
     return EXIT_SUCCESS;
 }