diff --git a/perxis/provider.py b/perxis/provider.py
index 15e6a7bd247c0d422502cf7999b0ea4d9f993314..a908c95c835f4c2afdc1cae0bbb85c6991a919a9 100644
--- a/perxis/provider.py
+++ b/perxis/provider.py
@@ -64,7 +64,7 @@ class PerxisReferencesWrapper:
         self, references: list[Reference], space_id: str, env_id: str
     ) -> items_pb2.GetResponse:
         """Метод получения связей."""
-        result = await self.__references.Get(
+        message = await self.__references.Get(
             references_pb2.GetRequest(
                 space_id=space_id,
                 env_id=env_id,
@@ -74,7 +74,7 @@ class PerxisReferencesWrapper:
                 ],
             )
         )
-        return result
+        return message
 
 
 class PerxisItemsWrapper:
@@ -83,11 +83,24 @@ class PerxisItemsWrapper:
     def __init__(self, items: items_pb2_grpc.ItemsStub):
         self.__items = items
 
+    async def get(
+        self, item_id: str, collection_id: str, space_id: str, env_id: str
+    ) -> items_pb2.GetResponse:
+        """Получение записи по идентификатору."""
+        message = await self.__items.Get(
+            items_pb2.GetRequest(
+                item_id=item_id,
+                space_id=space_id,
+                env_id=env_id,
+                collection_id=collection_id,
+            )
+        )
+        return message
+
     async def create(
         self, data: Struct, collection_id: str, space_id: str, env_id: str
     ) -> items_pb2.CreateResponse:
-        """Сохранение данных формы в системе Perxis."""
-        result = await self.__items.Create(
+        message = await self.__items.Create(
             items_pb2.CreateRequest(
                 item=items_pb2.Item(
                     space_id=space_id,
@@ -97,13 +110,12 @@ class PerxisItemsWrapper:
                 )
             )
         )
-        return result
+        return message
 
     async def update(
         self, item_id: str, data: Struct, collection_id: str, space_id: str, env_id: str
     ) -> Empty:
-        """Метод обновления записи в коллекции."""
-        result = await self.__items.Update(
+        message = await self.__items.Update(
             items_pb2.UpdateRequest(
                 item=items_pb2.Item(
                     id=item_id,
@@ -114,7 +126,7 @@ class PerxisItemsWrapper:
                 )
             )
         )
-        return result
+        return message
 
     async def find(
         self,
@@ -124,10 +136,15 @@ class PerxisItemsWrapper:
         filters: list[str] | None = None,
         sort_by: list[str] | None = None,
         fields: list[str] | None = None,
+        exclude_fields: bool = False,
         limit: int | None = None,
         offset: int | None = None,
         page_num: int | None = None,
         page_size: int | None = DEFAULT_PAGE_SIZE,
+        deleted: bool = False,
+        regular: bool = False,
+        hidden: bool = False,
+        templates: bool = False,
     ) -> items_pb2.FindResponse:
         """Метод поиска записей в коллекции."""
         result = await self.__items.Find(
@@ -144,11 +161,16 @@ class PerxisItemsWrapper:
                         fields=fields or [],
                         limit=limit,
                         offset=offset,
-                    )
+                        exclude_fields=exclude_fields,
+                    ),
+                    deleted=deleted,
+                    regular=regular,
+                    hidden=hidden,
+                    templates=templates,
                 ),
             )
         )
-        return result
+        return message
 
     async def find_published(
         self,
@@ -157,6 +179,7 @@ class PerxisItemsWrapper:
         env_id: str,
         filters: list[str] | None = None,
         fields: list[str] | None = None,
+        exclude_fields: bool = False,
         sort_by: list[str] | None = None,
         limit: int | None = None,
         offset: int | None = None,
@@ -164,7 +187,7 @@ class PerxisItemsWrapper:
         page_size: int | None = DEFAULT_PAGE_SIZE,
     ) -> items_pb2.FindResponse:
         """Метод поиска опубликованных записей в коллекции."""
-        result = await self.__items.FindPublished(
+        message = await self.__items.FindPublished(
             items_pb2.FindPublishedRequest(
                 space_id=space_id,
                 env_id=env_id,
@@ -178,11 +201,12 @@ class PerxisItemsWrapper:
                         offset=offset,
                         page_num=page_num,
                         page_size=page_size,
+                        exclude_fields=exclude_fields,
                     )
                 ),
             )
         )
-        return result
+        return message
 
     async def fetch_all_published(
         self,
@@ -191,6 +215,7 @@ class PerxisItemsWrapper:
         env_id: str,
         filters: list[str] | None = None,
         fields: list[str] | None = None,
+        exclude_fields: bool = False,
         sort_by: list[str] | None = None,
         page_size: int | None = DEFAULT_PAGE_SIZE,
     ) -> items_pb2.FindResponse:
@@ -200,6 +225,7 @@ class PerxisItemsWrapper:
             "filters": filters,
             "sort_by": sort_by,
             "fields": fields,
+            "exclude_fields": exclude_fields,
             "limit": page_size,
             "offset": 0,
             "space_id": space_id,
@@ -223,7 +249,7 @@ class PerxisItemsWrapper:
         self, item_id: str, collection_id: str, space_id: str, env_id: str
     ) -> Empty:
         """Метод снятия с публикации записи в коллекции."""
-        result = await self.__items.Unpublish(
+        message = await self.__items.Unpublish(
             items_pb2.UnpublishRequest(
                 item=items_pb2.Item(
                     id=item_id,
@@ -233,13 +259,13 @@ class PerxisItemsWrapper:
                 )
             )
         )
-        return result
+        return message
 
     async def publish(
         self, item_id: str, collection_id: str, space_id: str, env_id: str
     ) -> Empty:
         """Метод публикации записи в коллекции."""
-        result = await self.__items.Publish(
+        message = await self.__items.Publish(
             items_pb2.PublishRequest(
                 item=items_pb2.Item(
                     id=item_id,
@@ -249,17 +275,22 @@ class PerxisItemsWrapper:
                 )
             )
         )
-        return result
+        return message
 
     async def fetch_all(
         self,
         collection_id: str,
         space_id: str,
         env_id: str,
-        filters: list[str] | str = None,
+        filters: list[str] | None = None,
         fields: list[str] | None = None,
-        sort_by: list[str] | str = None,
+        exclude_fields: bool = False,
+        sort_by: list[str] | None = None,
         page_size: int | None = DEFAULT_PAGE_SIZE,
+        deleted: bool = False,
+        regular: bool = False,
+        hidden: bool = False,
+        templates: bool = False,
     ) -> items_pb2.FindResponse:
         """Метод получения всех записей коллекции."""
         items = []
@@ -271,6 +302,11 @@ class PerxisItemsWrapper:
             offset=0,
             filters=filters,
             fields=fields,
+            exclude_fields=exclude_fields,
+            deleted=deleted,
+            regular=regular,
+            hidden=hidden,
+            templates=templates,
         )
         items.extend(storage_data.items)
 
@@ -292,10 +328,238 @@ class PerxisItemsWrapper:
                 limit=page_size,
                 offset=offset,
                 fields=fields,
+                exclude_fields=exclude_fields,
+                deleted=deleted,
+                regular=regular,
+                hidden=hidden,
+                templates=templates,
             )
             items.extend(storage_data.items)
         return items_pb2.FindResponse(items=items, total=len(items))
 
+    async def delete(
+        self,
+        item_id: str,
+        collection_id: str,
+        space_id: str,
+        env_id: str,
+        update_attrs: bool = False,
+        erase: bool = True,
+        **kwargs,
+    ) -> Empty:
+        message = await self.__items.Delete(
+            items_pb2.DeleteRequest(
+                item=items_pb2.Item(
+                    id=item_id,
+                    space_id=space_id,
+                    env_id=env_id,
+                    collection_id=collection_id,
+                    **kwargs,
+                ),
+                options=items_pb2.DeleteOptions(update_attrs=update_attrs, erase=erase),
+            )
+        )
+        return message
+
+    async def undelete(
+        self,
+        item_id: str,
+        collection_id: str,
+        space_id: str,
+        env_id: str,
+        update_attrs: bool = False,
+        **kwargs,
+    ) -> Empty:
+        message = await self.__items.Undelete(
+            items_pb2.UndeleteRequest(
+                item=items_pb2.Item(
+                    id=item_id,
+                    space_id=space_id,
+                    env_id=env_id,
+                    collection_id=collection_id,
+                    **kwargs,
+                ),
+                options=items_pb2.UndeleteOptions(update_attrs=update_attrs),
+            )
+        )
+        return message
+
+    async def get_published(
+        self,
+        item_id: str,
+        collection_id: str,
+        space_id: str,
+        env_id: str,
+        locale_id: str | None = None,
+    ) -> items_pb2.GetPublishedResponse:
+        message = await self.__items.GetPublished(
+            items_pb2.GetPublishedRequest(
+                item_id=item_id,
+                space_id=space_id,
+                env_id=env_id,
+                collection_id=collection_id,
+                options=items_pb2.GetPublishedOptions(locale_id=locale_id),
+            )
+        )
+        return message
+
+    async def aggregate(
+        self,
+        collection_id: str,
+        space_id: str,
+        env_id: str,
+        aggregate_options: dict[str, str] | None = None,
+        filters: list[str] | None = None,
+    ) -> items_pb2.AggregateResponse:
+        message = await self.__items.Aggregate(
+            items_pb2.AggregateRequest(
+                space_id=space_id,
+                env_id=env_id,
+                collection_id=collection_id,
+                filter=items_pb2.Filter(q=filters or []),
+                options=items_pb2.AggregateOptions(fields=aggregate_options),
+            )
+        )
+        return message
+
+    async def aggregate_published(
+        self,
+        collection_id: str,
+        space_id: str,
+        env_id: str,
+        aggregate_options: dict[str, str] | None = None,
+        filters: list[str] | None = None,
+    ) -> items_pb2.AggregatePublishedResponse:
+        message = await self.__items.AggregatePublished(
+            items_pb2.AggregatePublishedRequest(
+                space_id=space_id,
+                env_id=env_id,
+                collection_id=collection_id,
+                filter=items_pb2.Filter(q=filters or []),
+                options=items_pb2.AggregatePublishedOptions(fields=aggregate_options),
+            )
+        )
+        return message
+
+    async def get_revision(
+        self,
+        item_id: str,
+        revision_id: str,
+        collection_id: str,
+        space_id: str,
+        env_id: str,
+    ) -> items_pb2.GetRevisionResponse:
+        message = await self.__items.GetRevision(
+            items_pb2.GetRevisionRequest(
+                item_id=item_id,
+                space_id=space_id,
+                env_id=env_id,
+                collection_id=collection_id,
+                revision_id=revision_id,
+            )
+        )
+        return message
+
+    async def list_revisions(
+        self,
+        item_id: str,
+        collection_id: str,
+        space_id: str,
+        env_id: str,
+        sort_by: list[str] | None = None,
+        fields: list[str] | None = None,
+        exclude_fields: bool = False,
+        limit: int | None = None,
+        offset: int | None = None,
+    ) -> items_pb2.ListRevisionsResponse:
+        message = await self.__items.ListRevisions(
+            items_pb2.ListRevisionsRequest(
+                item_id=item_id,
+                space_id=space_id,
+                env_id=env_id,
+                collection_id=collection_id,
+                options=items_pb2.ListRevisionsOptions(
+                    options=common_pb2.FindOptions(
+                        sort=sort_by or [],
+                        fields=fields or [],
+                        exclude_fields=exclude_fields,
+                        offset=offset,
+                        limit=limit,
+                    )
+                ),
+            )
+        )
+        return message
+
+    async def archive(
+        self,
+        item_id: str,
+        collection_id: str,
+        space_id: str,
+        env_id: str,
+    ) -> Empty:
+        message = await self.__items.Archive(
+            items_pb2.ArchiveRequest(
+                item=items_pb2.Item(
+                    id=item_id,
+                    space_id=space_id,
+                    env_id=env_id,
+                    collection_id=collection_id,
+                )
+            )
+        )
+        return message
+
+    async def unarchive(
+        self,
+        item_id: str,
+        collection_id: str,
+        space_id: str,
+        env_id: str,
+    ) -> Empty:
+        message = await self.__items.Unarchive(
+            items_pb2.UnarchiveRequest(
+                item=items_pb2.Item(
+                    id=item_id,
+                    space_id=space_id,
+                    env_id=env_id,
+                    collection_id=collection_id,
+                )
+            )
+        )
+        return message
+
+    async def find_archived(
+        self,
+        collection_id: str,
+        space_id: str,
+        env_id: str,
+        filters: list[str] | None = None,
+        sort_by: list[str] | None = None,
+        fields: list[str] | None = None,
+        exclude_fields: bool = False,
+        limit: int | None = None,
+        offset: int | None = None,
+    ) -> items_pb2.FindArchivedResponse:
+        message = await self.__items.FindArchived(
+            items_pb2.FindArchivedRequest(
+                space_id=space_id,
+                env_id=env_id,
+                collection_id=collection_id,
+                filter=items_pb2.Filter(q=filters or []),
+                options=items_pb2.FindArchivedOptions(
+                    options=common_pb2.FindOptions(
+                        sort=sort_by or [],
+                        fields=fields or [],
+                        exclude_fields=exclude_fields,
+                        offset=offset,
+                        limit=limit,
+                    )
+                ),
+            )
+        )
+        return message
+
 
 class PerxisDataProvider:
     def __init__(
@@ -314,74 +578,98 @@ class PerxisDataProvider:
             items=items_pb2_grpc.ItemsStub(self.channel.channel),
         )
 
+    async def get(self, item_id: str, collection_id: str) -> items_pb2.GetResponse:
+        """Получение записи по идентификатору."""
+        message = await self.items_wrapper.get(
+            item_id=item_id,
+            collection_id=collection_id,
+            space_id=self.space_id,
+            env_id=self.env_id,
+        )
+        return message
+
     async def create(
         self, data: Struct, collection_id: str
     ) -> items_pb2.CreateResponse:
-        result = await self.items_wrapper.create(
+        message = await self.items_wrapper.create(
             data=data,
             collection_id=collection_id,
             space_id=self.space_id,
             env_id=self.env_id,
         )
-        return result
+        return message
 
     async def update(self, item_id: str, data: Struct, collection_id: str) -> Empty:
-        result = await self.items_wrapper.update(
+        message = 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
+        return message
 
     async def find(
         self,
         collection_id: str,
         filters: list[str] | None = None,
         sort_by: list[str] | None = None,
+        fields: list[str] | None = None,
+        exclude_fields: bool = False,
         limit: int | None = None,
         offset: int | None = None,
         page_num: int | None = None,
         page_size: int | None = DEFAULT_PAGE_SIZE,
+        deleted: bool = False,
+        regular: bool = False,
+        hidden: bool = False,
+        templates: bool = False,
     ) -> items_pb2.FindResponse:
-        result = await self.items_wrapper.find(
+        message = await self.items_wrapper.find(
             collection_id=collection_id,
             space_id=self.space_id,
             env_id=self.env_id,
             filters=filters,
             sort_by=sort_by,
+            fields=fields,
+            exclude_fields=exclude_fields,
             limit=limit,
             offset=offset,
             page_num=page_num,
             page_size=page_size,
+            deleted=deleted,
+            regular=regular,
+            hidden=hidden,
+            templates=templates,
         )
-        return result
+        return message
 
     async def find_published(
         self,
         collection_id: str,
         filters: list[str] | None = None,
         fields: list[str] | None = None,
+        exclude_fields: bool = False,
         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(
+        message = await self.items_wrapper.find_published(
             collection_id=collection_id,
             space_id=self.space_id,
             env_id=self.env_id,
             filters=filters,
             fields=fields,
+            exclude_fields=exclude_fields,
             sort_by=sort_by,
             limit=limit,
             offset=offset,
             page_num=page_num,
             page_size=page_size,
         )
-        return result
+        return message
 
     async def fetch_all_published(
         self,
@@ -415,22 +703,22 @@ class PerxisDataProvider:
             yield await self.find_published(**kwargs)
 
     async def unpublish(self, item_id: str, collection_id: str) -> Empty:
-        result = await self.items_wrapper.unpublish(
+        message = 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
+        return message
 
     async def publish(self, item_id: str, collection_id: str) -> Empty:
-        result = await self.items_wrapper.publish(
+        message = 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
+        return message
 
     async def fetch_all(
         self,
@@ -439,7 +727,7 @@ class PerxisDataProvider:
         sort_by: list[str] | str = None,
         page_size: int | None = DEFAULT_PAGE_SIZE,
     ) -> items_pb2.FindResponse:
-        result = await self.items_wrapper.fetch_all(
+        message = await self.items_wrapper.fetch_all(
             collection_id=collection_id,
             space_id=self.space_id,
             env_id=self.env_id,
@@ -447,15 +735,203 @@ class PerxisDataProvider:
             sort_by=sort_by,
             page_size=page_size,
         )
-        return result
+        return message
 
     async def get_references(
         self, references: list[Reference]
     ) -> items_pb2.GetResponse:
-        result = await self.references_wrapper.get_references(
+        message = await self.references_wrapper.get_references(
             references=references, space_id=self.space_id, env_id=self.env_id
         )
-        return result
+        return message
+
+    async def delete(
+        self,
+        item_id: str,
+        collection_id: str,
+        space_id: str,
+        env_id: str,
+        update_attrs: bool = False,
+        erase: bool = True,
+        **kwargs,
+    ) -> Empty:
+        message = await self.items_wrapper.delete(
+            item_id=item_id,
+            collection_id=collection_id,
+            space_id=space_id,
+            env_id=env_id,
+            update_attrs=update_attrs,
+            erase=erase,
+            **kwargs,
+        )
+        return message
+
+    async def undelete(
+        self,
+        item_id: str,
+        collection_id: str,
+        space_id: str,
+        env_id: str,
+        update_attrs: bool = False,
+        **kwargs,
+    ) -> Empty:
+        message = await self.items_wrapper.undelete(
+            item_id=item_id,
+            collection_id=collection_id,
+            space_id=space_id,
+            env_id=env_id,
+            update_attrs=update_attrs,
+            **kwargs,
+        )
+        return message
+
+    async def get_published(
+        self,
+        item_id: str,
+        collection_id: str,
+        space_id: str,
+        env_id: str,
+        locale_id: str | None = None,
+    ) -> items_pb2.GetPublishedResponse:
+        message = await self.items_wrapper.get_published(
+            item_id=item_id,
+            collection_id=collection_id,
+            space_id=space_id,
+            env_id=env_id,
+            locale_id=locale_id,
+        )
+        return message
+
+    async def aggregate(
+        self,
+        collection_id: str,
+        space_id: str,
+        env_id: str,
+        aggregate_options: dict[str, str] | None = None,
+        filters: list[str] | None = None,
+    ) -> items_pb2.AggregateResponse:
+        message = await self.items_wrapper.aggregate(
+            collection_id=collection_id,
+            space_id=space_id,
+            env_id=env_id,
+            aggregate_options=aggregate_options,
+            filters=filters,
+        )
+        return message
+
+    async def aggregate_published(
+        self,
+        collection_id: str,
+        space_id: str,
+        env_id: str,
+        aggregate_options: dict[str, str] | None = None,
+        filters: list[str] | None = None,
+    ) -> items_pb2.AggregatePublishedResponse:
+        message = await self.items_wrapper.aggregate_published(
+            collection_id=collection_id,
+            space_id=space_id,
+            env_id=env_id,
+            aggregate_options=aggregate_options,
+            filters=filters,
+        )
+        return message
+
+    async def get_revision(
+        self,
+        item_id: str,
+        revision_id: str,
+        collection_id: str,
+        space_id: str,
+        env_id: str,
+    ) -> items_pb2.GetRevisionResponse:
+        message = await self.items_wrapper.get_revision(
+            item_id=item_id,
+            revision_id=revision_id,
+            collection_id=collection_id,
+            space_id=space_id,
+            env_id=env_id,
+        )
+        return message
+
+    async def list_revisions(
+        self,
+        item_id: str,
+        collection_id: str,
+        space_id: str,
+        env_id: str,
+        sort_by: list[str] | None = None,
+        fields: list[str] | None = None,
+        exclude_fields: bool = False,
+        limit: int | None = None,
+        offset: int | None = None,
+    ) -> items_pb2.ListRevisionsResponse:
+        message = await self.items_wrapper.list_revisions(
+            item_id=item_id,
+            collection_id=collection_id,
+            space_id=space_id,
+            env_id=env_id,
+            sort_by=sort_by,
+            fields=fields,
+            exclude_fields=exclude_fields,
+            limit=limit,
+            offset=offset,
+        )
+        return message
+
+    async def archive(
+        self,
+        item_id: str,
+        collection_id: str,
+        space_id: str,
+        env_id: str,
+    ) -> Empty:
+        message = await self.items_wrapper.archive(
+            item_id=item_id,
+            collection_id=collection_id,
+            space_id=space_id,
+            env_id=env_id,
+        )
+        return message
+
+    async def unarchive(
+        self,
+        item_id: str,
+        collection_id: str,
+        space_id: str,
+        env_id: str,
+    ) -> Empty:
+        message = await self.items_wrapper.archive(
+            item_id=item_id,
+            collection_id=collection_id,
+            space_id=space_id,
+            env_id=env_id,
+        )
+        return message
+
+    async def find_archived(
+        self,
+        collection_id: str,
+        space_id: str,
+        env_id: str,
+        filters: list[str] | None = None,
+        sort_by: list[str] | None = None,
+        fields: list[str] | None = None,
+        exclude_fields: bool = False,
+        limit: int | None = None,
+        offset: int | None = None,
+    ) -> items_pb2.FindArchivedResponse:
+        message = await self.items_wrapper.find_archived(
+            collection_id=collection_id,
+            space_id=space_id,
+            env_id=env_id,
+            filters=filters,
+            sort_by=sort_by,
+            fields=fields,
+            exclude_fields=exclude_fields,
+            limit=limit,
+            offset=offset,
+        )
+        return message
 
 
 class PerxisFileProvider:
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',