diff --git a/perxis/provider.py b/perxis/provider.py
index 2b0ea48c6fbe87110caea5f5d17c77313544f1bf..15e6a7bd247c0d422502cf7999b0ea4d9f993314 100644
--- a/perxis/provider.py
+++ b/perxis/provider.py
@@ -25,9 +25,7 @@ class PerxisFilesWrapper:
         message = await self.__stub.StartUpload(
             files_pb2.StartUploadRequest(
                 upload=files_pb2.MultipartUpload(
-                    file=files_pb2.File(
-                        name=file_name, size=file_size
-                    )
+                    file=files_pb2.File(name=file_name, size=file_size)
                 )
             )
         )
@@ -38,7 +36,7 @@ class PerxisFilesWrapper:
         file_id: str,
         upload_id: str,
         parts: list[str],
-        part_size: int = DEFAULT_PART_SIZE
+        part_size: int = DEFAULT_PART_SIZE,
     ) -> files_pb2.CompleteUploadResponse:
         message = await self.__stub.CompleteUpload(
             files_pb2.CompleteUploadRequest(
@@ -50,7 +48,6 @@ class PerxisFilesWrapper:
                         files_pb2.CompletedPart(id=value, number=index)
                         for index, value in enumerate(parts, 1)
                     ],
-
                 )
             )
         )
@@ -60,10 +57,7 @@ class PerxisFilesWrapper:
 class PerxisReferencesWrapper:
     __references: references_pb2_grpc.ReferencesStub
 
-    def __init__(
-            self,
-            references: references_pb2_grpc.ReferencesStub,
-    ):
+    def __init__(self, references: references_pb2_grpc.ReferencesStub):
         self.__references = references
 
     async def get_references(
@@ -86,10 +80,7 @@ class PerxisReferencesWrapper:
 class PerxisItemsWrapper:
     __items: items_pb2_grpc.ItemsStub
 
-    def __init__(
-            self,
-            items: items_pb2_grpc.ItemsStub,
-    ):
+    def __init__(self, items: items_pb2_grpc.ItemsStub):
         self.__items = items
 
     async def create(
@@ -108,7 +99,9 @@ class PerxisItemsWrapper:
         )
         return result
 
-    async def update(self, item_id: str, data: Struct, collection_id: str, space_id: str, env_id: str) -> Empty:
+    async def update(
+        self, item_id: str, data: Struct, collection_id: str, space_id: str, env_id: str
+    ) -> Empty:
         """Метод обновления записи в коллекции."""
         result = await self.__items.Update(
             items_pb2.UpdateRequest(
@@ -131,6 +124,8 @@ class PerxisItemsWrapper:
         filters: list[str] | None = None,
         sort_by: list[str] | None = None,
         fields: list[str] | None = None,
+        limit: int | None = None,
+        offset: int | None = None,
         page_num: int | None = None,
         page_size: int | None = DEFAULT_PAGE_SIZE,
     ) -> items_pb2.FindResponse:
@@ -143,7 +138,12 @@ class PerxisItemsWrapper:
                 filter=items_pb2.Filter(q=filters or []),
                 options=items_pb2.FindOptions(
                     options=common_pb2.FindOptions(
-                        sort=sort_by, page_num=page_num, page_size=page_size, fields=fields or []
+                        sort=sort_by,
+                        page_num=page_num,
+                        page_size=page_size,
+                        fields=fields or [],
+                        limit=limit,
+                        offset=offset,
                     )
                 ),
             )
@@ -158,6 +158,8 @@ class PerxisItemsWrapper:
         filters: list[str] | None = None,
         fields: list[str] | None = None,
         sort_by: list[str] | None = None,
+        limit: int | None = None,
+        offset: int | None = None,
         page_num: int | None = None,
         page_size: int | None = DEFAULT_PAGE_SIZE,
     ) -> items_pb2.FindResponse:
@@ -171,9 +173,11 @@ class PerxisItemsWrapper:
                 options=items_pb2.FindPublishedOptions(
                     options=common_pb2.FindOptions(
                         sort=sort_by,
-                        page_size=page_size,
                         fields=fields or [],
+                        limit=limit,
+                        offset=offset,
                         page_num=page_num,
+                        page_size=page_size,
                     )
                 ),
             )
@@ -196,9 +200,10 @@ class PerxisItemsWrapper:
             "filters": filters,
             "sort_by": sort_by,
             "fields": fields,
-            "page_size": page_size,
+            "limit": page_size,
+            "offset": 0,
             "space_id": space_id,
-            "env_id": env_id
+            "env_id": env_id,
         }
         message = await self.find_published(**kwargs)
         yield message
@@ -209,10 +214,14 @@ class PerxisItemsWrapper:
         else:
             pages = 1
 
-        for page_num in range(1, pages + 1):
-            yield await self.find_published(page_num=page_num, **kwargs)
+        for page_num in range(2, pages + 1):
+            offset = (page_num - 1) * page_size
+            kwargs["offset"] = offset
+            yield await self.find_published(**kwargs)
 
-    async def unpublish(self, item_id: str, collection_id: str, space_id: str, env_id: str) -> Empty:
+    async def unpublish(
+        self, item_id: str, collection_id: str, space_id: str, env_id: str
+    ) -> Empty:
         """Метод снятия с публикации записи в коллекции."""
         result = await self.__items.Unpublish(
             items_pb2.UnpublishRequest(
@@ -226,7 +235,9 @@ class PerxisItemsWrapper:
         )
         return result
 
-    async def publish(self, item_id: str, collection_id: str, space_id: str, env_id: str) -> Empty:
+    async def publish(
+        self, item_id: str, collection_id: str, space_id: str, env_id: str
+    ) -> Empty:
         """Метод публикации записи в коллекции."""
         result = await self.__items.Publish(
             items_pb2.PublishRequest(
@@ -256,7 +267,8 @@ class PerxisItemsWrapper:
             collection_id=collection_id,
             space_id=space_id,
             env_id=env_id,
-            page_size=page_size,
+            limit=page_size,
+            offset=0,
             filters=filters,
             fields=fields,
         )
@@ -268,15 +280,17 @@ class PerxisItemsWrapper:
         else:
             pages = 1
 
-        for page_num in range(1, pages + 1):
+        for page_num in range(2, pages + 1):
+            offset = (page_num - 1) * page_size
+
             storage_data = await self.find(
                 collection_id=collection_id,
                 space_id=space_id,
                 env_id=env_id,
                 filters=filters,
                 sort_by=sort_by,
-                page_num=page_num,
-                page_size=page_size,
+                limit=page_size,
+                offset=offset,
                 fields=fields,
             )
             items.extend(storage_data.items)
@@ -303,13 +317,22 @@ class PerxisDataProvider:
     async def create(
         self, data: Struct, collection_id: str
     ) -> items_pb2.CreateResponse:
-        result = await self.items_wrapper.create(data, collection_id, self.space_id, self.env_id)
-
+        result = await self.items_wrapper.create(
+            data=data,
+            collection_id=collection_id,
+            space_id=self.space_id,
+            env_id=self.env_id,
+        )
         return result
 
     async def update(self, item_id: str, data: Struct, collection_id: str) -> Empty:
-        result = await self.items_wrapper.update(item_id, data, collection_id, self.space_id, self.env_id)
-
+        result = await self.items_wrapper.update(
+            item_id=item_id,
+            data=data,
+            collection_id=collection_id,
+            space_id=self.space_id,
+            env_id=self.env_id,
+        )
         return result
 
     async def find(
@@ -317,13 +340,22 @@ class PerxisDataProvider:
         collection_id: str,
         filters: list[str] | None = None,
         sort_by: list[str] | None = None,
+        limit: int | None = None,
+        offset: int | None = None,
         page_num: int | None = None,
         page_size: int | None = DEFAULT_PAGE_SIZE,
     ) -> items_pb2.FindResponse:
         result = await self.items_wrapper.find(
-            collection_id, self.space_id, self.env_id, filters, sort_by, page_num, page_size
+            collection_id=collection_id,
+            space_id=self.space_id,
+            env_id=self.env_id,
+            filters=filters,
+            sort_by=sort_by,
+            limit=limit,
+            offset=offset,
+            page_num=page_num,
+            page_size=page_size,
         )
-
         return result
 
     async def find_published(
@@ -332,13 +364,23 @@ class PerxisDataProvider:
         filters: list[str] | None = None,
         fields: list[str] | None = None,
         sort_by: list[str] | None = None,
+        limit: int | None = None,
+        offset: int | None = None,
         page_num: int | None = None,
         page_size: int | None = DEFAULT_PAGE_SIZE,
     ) -> items_pb2.FindResponse:
         result = await self.items_wrapper.find_published(
-            collection_id, self.space_id, self.env_id, filters, fields, sort_by, page_num, page_size
+            collection_id=collection_id,
+            space_id=self.space_id,
+            env_id=self.env_id,
+            filters=filters,
+            fields=fields,
+            sort_by=sort_by,
+            limit=limit,
+            offset=offset,
+            page_num=page_num,
+            page_size=page_size,
         )
-
         return result
 
     async def fetch_all_published(
@@ -355,7 +397,8 @@ class PerxisDataProvider:
             "filters": filters,
             "sort_by": sort_by,
             "fields": fields,
-            "page_size": page_size,
+            "limit": page_size,
+            "offset": 0,
         }
         message = await self.find_published(**kwargs)
         yield message
@@ -366,17 +409,27 @@ class PerxisDataProvider:
         else:
             pages = 1
 
-        for page_num in range(1, pages + 1):
-            yield await self.find_published(page_num=page_num, **kwargs)
+        for page_num in range(2, pages + 1):
+            offset = (page_num - 1) * page_size
+            kwargs["offset"] = offset
+            yield await self.find_published(**kwargs)
 
     async def unpublish(self, item_id: str, collection_id: str) -> Empty:
-        result = await self.items_wrapper.unpublish(item_id, collection_id, self.space_id, self.env_id)
-
+        result = await self.items_wrapper.unpublish(
+            item_id=item_id,
+            collection_id=collection_id,
+            space_id=self.space_id,
+            env_id=self.env_id,
+        )
         return result
 
     async def publish(self, item_id: str, collection_id: str) -> Empty:
-        result = await self.items_wrapper.publish(item_id, collection_id, self.space_id, self.env_id)
-
+        result = await self.items_wrapper.publish(
+            item_id=item_id,
+            collection_id=collection_id,
+            space_id=self.space_id,
+            env_id=self.env_id,
+        )
         return result
 
     async def fetch_all(
@@ -387,18 +440,21 @@ class PerxisDataProvider:
         page_size: int | None = DEFAULT_PAGE_SIZE,
     ) -> items_pb2.FindResponse:
         result = await self.items_wrapper.fetch_all(
-            collection_id, self.space_id, self.env_id, filters, sort_by, page_size
+            collection_id=collection_id,
+            space_id=self.space_id,
+            env_id=self.env_id,
+            filters=filters,
+            sort_by=sort_by,
+            page_size=page_size,
         )
-
         return result
 
     async def get_references(
         self, references: list[Reference]
     ) -> items_pb2.GetResponse:
         result = await self.references_wrapper.get_references(
-            references, self.space_id, self.env_id
+            references=references, space_id=self.space_id, env_id=self.env_id
         )
-
         return result
 
 
@@ -413,8 +469,9 @@ class PerxisFileProvider:
     async def start_upload(
         self, file_name: str, file_size: int
     ) -> files_pb2.StartUploadResponse:
-        message = await self.__files_wrapper.start_upload(file_name, file_size)
-
+        message = await self.__files_wrapper.start_upload(
+            file_name=file_name, file_size=file_size
+        )
         return message
 
     async def complete_upload(
@@ -422,10 +479,9 @@ class PerxisFileProvider:
         file_id: str,
         upload_id: str,
         parts: list[str],
-        part_size: int = DEFAULT_PART_SIZE
+        part_size: int = DEFAULT_PART_SIZE,
     ) -> files_pb2.CompleteUploadResponse:
         message = await self.__files_wrapper.complete_upload(
-            file_id, upload_id, parts, part_size
+            file_id=file_id, upload_id=upload_id, parts=parts, part_size=part_size
         )
-
         return message
diff --git a/setup.py b/setup.py
index 01f3d6bb241d36d0f9034ce813212e750c342a0d..b4903e9ea05c61b038af5a387afcb73620f4f954 100644
--- a/setup.py
+++ b/setup.py
@@ -14,7 +14,7 @@ def load_requirements():
 
 setup(
     name='perxis',
-    version='1.5.0',
+    version='1.6.0',
     description='Perxis python client',
     long_description=long_description,
     long_description_content_type='text/markdown',