diff --git a/CHANGELOG.md b/CHANGELOG.md
index fb50022159f22839bc866c879ee551703d655d85..e33750ece364c4514301cf5d9d44cb0d8bf3dbb2 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -25,6 +25,7 @@ BREAKING CHANGES
 * subset_size -> dataset_size (and in general replace subset with dataset)
     ####  renaming - Consumer API
 * broker -> consumer
+* SetLastReadMarker/set_lastread_marker -> swap arguments
 
 BUG FIXES
 * fix memory leak bug in Python consumer library (lead to problems when creating many consumer instances)
diff --git a/consumer/api/cpp/include/asapo/consumer/consumer.h b/consumer/api/cpp/include/asapo/consumer/consumer.h
index bc343dfbc809ed3452a040b47e5cba35b3cc37d6..6cdc6f63ff39efe597db461dc2f1199092c24e49 100644
--- a/consumer/api/cpp/include/asapo/consumer/consumer.h
+++ b/consumer/api/cpp/include/asapo/consumer/consumer.h
@@ -22,8 +22,8 @@ class Consumer {
     virtual Error ResetLastReadMarker(std::string group_id) = 0;
     virtual Error ResetLastReadMarker(std::string group_id, std::string stream) = 0;
 
-    virtual Error SetLastReadMarker(uint64_t value, std::string group_id) = 0;
-    virtual Error SetLastReadMarker(uint64_t value, std::string group_id, std::string stream) = 0;
+    virtual Error SetLastReadMarker(std::string group_id, uint64_t value) = 0;
+    virtual Error SetLastReadMarker(std::string group_id, uint64_t value, std::string stream) = 0;
 
     //! Acknowledge data tuple for specific group id and stream.
     /*!
diff --git a/consumer/api/cpp/src/consumer_impl.cpp b/consumer/api/cpp/src/consumer_impl.cpp
index b3fc99f5d72f11cbebaac468b078b365c9b3d578..acc53f6bbf81229a7cfc025de4227ba05cff0832 100644
--- a/consumer/api/cpp/src/consumer_impl.cpp
+++ b/consumer/api/cpp/src/consumer_impl.cpp
@@ -515,8 +515,8 @@ std::string ConsumerImpl::BrokerRequestWithTimeout(RequestInfo request, Error* e
     return std::move(response.string_output);
 }
 
-Error ConsumerImpl::SetLastReadMarker(uint64_t value, std::string group_id) {
-    return SetLastReadMarker(value, std::move(group_id), kDefaultStream);
+Error ConsumerImpl::SetLastReadMarker(std::string group_id, uint64_t value) {
+    return SetLastReadMarker(std::move(group_id), value, kDefaultStream);
 }
 
 Error ConsumerImpl::ResetLastReadMarker(std::string group_id) {
@@ -524,10 +524,10 @@ Error ConsumerImpl::ResetLastReadMarker(std::string group_id) {
 }
 
 Error ConsumerImpl::ResetLastReadMarker(std::string group_id, std::string stream) {
-    return SetLastReadMarker(0, group_id, stream);
+    return SetLastReadMarker(group_id, 0, stream);
 }
 
-Error ConsumerImpl::SetLastReadMarker(uint64_t value, std::string group_id, std::string stream) {
+Error ConsumerImpl::SetLastReadMarker(std::string group_id, uint64_t value, std::string stream) {
     RequestInfo ri;
     ri.api = "/database/" + source_credentials_.beamtime_id + "/" + source_credentials_.data_source + "/"
         + std::move(stream) + "/" + std::move(group_id) + "/resetcounter";
diff --git a/consumer/api/cpp/src/consumer_impl.h b/consumer/api/cpp/src/consumer_impl.h
index 1ced0a6babeb39691f6cbf1fdd66f258560235aa..494b50c07e26a4c7dba8b5d514befbbcb2997ed8 100644
--- a/consumer/api/cpp/src/consumer_impl.h
+++ b/consumer/api/cpp/src/consumer_impl.h
@@ -73,8 +73,8 @@ class ConsumerImpl final : public asapo::Consumer {
     Error ResetLastReadMarker(std::string group_id) override;
     Error ResetLastReadMarker(std::string group_id, std::string stream) override;
 
-    Error SetLastReadMarker(uint64_t value, std::string group_id) override;
-    Error SetLastReadMarker(uint64_t value, std::string group_id, std::string stream) override;
+    Error SetLastReadMarker(std::string group_id, uint64_t value) override;
+    Error SetLastReadMarker(std::string group_id, uint64_t value, std::string stream) override;
 
     Error GetNext(MessageMeta* info, std::string group_id, MessageData* data) override;
     Error GetNext(MessageMeta* info, std::string group_id, std::string stream, MessageData* data) override;
diff --git a/consumer/api/cpp/unittests/test_consumer_impl.cpp b/consumer/api/cpp/unittests/test_consumer_impl.cpp
index 18aaf81a07bff44323e1a30303ebe65a8de5b672..9675316ea53ef61010790d87750b804f31220ad6 100644
--- a/consumer/api/cpp/unittests/test_consumer_impl.cpp
+++ b/consumer/api/cpp/unittests/test_consumer_impl.cpp
@@ -616,7 +616,7 @@ TEST_F(ConsumerImplTests, ResetCounterUsesCorrectUri) {
         SetArgPointee<3>(HttpCode::OK),
         SetArgPointee<4>(nullptr),
         Return("")));
-    auto err = consumer->SetLastReadMarker(10, expected_group_id);
+    auto err = consumer->SetLastReadMarker(expected_group_id, 10);
     ASSERT_THAT(err, Eq(nullptr));
 }
 
@@ -631,7 +631,7 @@ TEST_F(ConsumerImplTests, ResetCounterUsesCorrectUriWithStream) {
         SetArgPointee<3>(HttpCode::OK),
         SetArgPointee<4>(nullptr),
         Return("")));
-    auto err = consumer->SetLastReadMarker(10, expected_group_id, expected_stream);
+    auto err = consumer->SetLastReadMarker(expected_group_id, 10, expected_stream);
     ASSERT_THAT(err, Eq(nullptr));
 }
 
diff --git a/consumer/api/python/asapo_consumer.pxd b/consumer/api/python/asapo_consumer.pxd
index 70d2d4de42148ccdb02588c55296c33fee489f94..5df0d3528b4b12a9351d8e39e0afea04658e6cc1 100644
--- a/consumer/api/python/asapo_consumer.pxd
+++ b/consumer/api/python/asapo_consumer.pxd
@@ -66,7 +66,7 @@ cdef extern from "asapo/asapo_consumer.h" namespace "asapo" nogil:
         Error GetLast(MessageMeta* info, string stream, MessageData* data)
         Error GetById(uint64_t id, MessageMeta* info, string stream, MessageData* data)
         uint64_t GetCurrentSize(string stream, Error* err)
-        Error SetLastReadMarker(uint64_t value, string group_id, string stream)
+        Error SetLastReadMarker(string group_id, uint64_t value, string stream)
         Error ResetLastReadMarker(string group_id, string stream)
         Error Acknowledge(string group_id, uint64_t id, string stream)
         Error NegativeAcknowledge(string group_id, uint64_t id, uint64_t delay_ms, string stream)
diff --git a/consumer/api/python/asapo_consumer.pyx.in b/consumer/api/python/asapo_consumer.pyx.in
index e7e85c62d4debb0bb2160fdf128ea94e1aa388c4..15420fd15629921767c2883922b64ceafa56abcd 100644
--- a/consumer/api/python/asapo_consumer.pyx.in
+++ b/consumer/api/python/asapo_consumer.pyx.in
@@ -182,13 +182,13 @@ cdef class PyConsumer:
         elif cased == <int>NetworkConnectionType_kFabric:
             result = "Fabric"
         return result.decode('utf-8')
-    def set_lastread_marker(self,value,group_id, stream = "default"):
+    def set_lastread_marker(self, group_id, value, stream = "default"):
         cdef string b_group_id = _bytes(group_id)
         cdef string b_stream = _bytes(stream)
         cdef Error err
         cdef uint64_t id = value
         with nogil:
-            err =  self.c_consumer.get().SetLastReadMarker(id,b_group_id,b_stream)
+            err =  self.c_consumer.get().SetLastReadMarker(b_group_id, id, b_stream)
         if err:
             throw_exception(err)
         return
diff --git a/tests/automatic/consumer/consumer_api/consumer_api.cpp b/tests/automatic/consumer/consumer_api/consumer_api.cpp
index 904e2f9dbd1e72d95e0d26eb9bc65f974b408655..e494555359037ecc5ff935961fc02e47bea0fb49 100644
--- a/tests/automatic/consumer/consumer_api/consumer_api.cpp
+++ b/tests/automatic/consumer/consumer_api/consumer_api.cpp
@@ -55,7 +55,7 @@ void TestSingle(const std::unique_ptr<asapo::Consumer>& consumer, const std::str
     M_AssertTrue(fi.name == "2", "GetNext2 filename");
 
 
-    err = consumer->SetLastReadMarker(2, group_id);
+    err = consumer->SetLastReadMarker(group_id, 2);
     M_AssertTrue(err == nullptr, "SetLastReadMarker no error");
 
 
@@ -72,7 +72,7 @@ void TestSingle(const std::unique_ptr<asapo::Consumer>& consumer, const std::str
     M_AssertTrue(err == nullptr, "GetLast2 no error");
 
 
-    err = consumer->SetLastReadMarker(8, group_id);
+    err = consumer->SetLastReadMarker(group_id, 8);
     M_AssertTrue(err == nullptr, "SetLastReadMarker 2 no error");
 
 
diff --git a/tests/automatic/consumer/consumer_api_python/consumer_api.py b/tests/automatic/consumer/consumer_api_python/consumer_api.py
index 0e6a637f6f39592c3961f3eac0cfd0a92b6ccd55..6a454eced63ac5b7ee6b4c118def3812c0f38371 100644
--- a/tests/automatic/consumer/consumer_api_python/consumer_api.py
+++ b/tests/automatic/consumer/consumer_api_python/consumer_api.py
@@ -93,7 +93,7 @@ def check_single(consumer, group_id):
     assert_metaname(meta, "2", "get next5")
     assert_usermetadata(meta, "get next5")
 
-    consumer.set_lastread_marker(4, group_id)
+    consumer.set_lastread_marker(group_id,4)
 
     _, meta = consumer.get_next(group_id, meta_only=True)
     assert_metaname(meta, "5", "get next6")