Skip to content

Users

Visibility

Bases: str, Enum

EVERYONE

EVERYONE = 'everyone'

FOLLOWERS

FOLLOWERS = 'followers'

MUTUAL

MUTUAL = 'mutual'

NOBODY

NOBODY = 'nobody'

Privacy

Bases: ITDBaseModel

is_private

is_private: bool

likes_visibility

likes_visibility: Visibility

wall_access

wall_access: Visibility

show_last_seen

show_last_seen: bool

NotCreatedProfile

Bases: ITDBaseModel

profile_required

profile_required: bool

user_id

user_id: UUID

roles

roles: list[str]

authenticated

authenticated: bool

user

user: None

Profile

Bases: ITDBaseModel

authenticated

authenticated: bool

banned

banned: bool

user

user: UserWithRoles | None

None если отправить запрос без access_token

BannedProfile

Bases: Profile

message

message: str

authenticated

authenticated: bool

banned

banned: bool

user

user: UserWithRoles | None

None если отправить запрос без access_token

LastSeenUnit

Bases: str, Enum

JUST_NOW

JUST_NOW = 'just_now'

MINUTES

MINUTES = 'minutes'

HOURS

HOURS = 'hours'

RECENTLY

RECENTLY = 'recently'

THIS_WEEK

THIS_WEEK = 'this_week'

THIS_MONTH

THIS_MONTH = 'this_month'

LONG_AGO

LONG_AGO = 'long_ago'

LastSeen

Bases: ITDBaseModel

unit

value

value: int | None = None

Clan

Bases: ITDBaseModel

avatar

avatar: str

member_count

member_count: int

PinSlug

Bases: str, Enum

KIRILL67_202602_INFECTED

KIRILL67_202602_INFECTED = 'kirill67_202602_infected'

KIRILL67_202602_SURVIVOR

KIRILL67_202602_SURVIVOR = 'kirill67_202602_survivor'

PIXELBATTLE_202603_1

PIXELBATTLE_202603_1 = 'pixelbattle_202603_1'

PIXELBATTLE_202603_2

PIXELBATTLE_202603_2 = 'pixelbattle_202603_2'

PIXELBATTLE_202603_3

PIXELBATTLE_202603_3 = 'pixelbattle_202603_3'

PIXELBATTLE_202603_4

PIXELBATTLE_202603_4 = 'pixelbattle_202603_4'

PIXELBATTLE_202603_5

PIXELBATTLE_202603_5 = 'pixelbattle_202603_5'

PIXELBATTLE_202603_6

PIXELBATTLE_202603_6 = 'pixelbattle_202603_6'

PIXELBATTLE_202603_7

PIXELBATTLE_202603_7 = 'pixelbattle_202603_7'

PIXELBATTLE_202603_8

PIXELBATTLE_202603_8 = 'pixelbattle_202603_8'

PIXELBATTLE_202603_9

PIXELBATTLE_202603_9 = 'pixelbattle_202603_9'

PIXELBATTLE_202603_10

PIXELBATTLE_202603_10 = 'pixelbattle_202603_10'

PIXELBATTLE_202603_11

PIXELBATTLE_202603_11 = 'pixelbattle_202603_11'

PIXELBATTLE_202603_12

PIXELBATTLE_202603_12 = 'pixelbattle_202603_12'

PIXELBATTLE_202603_13

PIXELBATTLE_202603_13 = 'pixelbattle_202603_13'

PIXELBATTLE_202603_14

PIXELBATTLE_202603_14 = 'pixelbattle_202603_14'

PIXELBATTLE_202603_15

PIXELBATTLE_202603_15 = 'pixelbattle_202603_15'

PIXELBATTLE_202603_16

PIXELBATTLE_202603_16 = 'pixelbattle_202603_16'

PIXELBATTLE_202603_17

PIXELBATTLE_202603_17 = 'pixelbattle_202603_17'

PIXELBATTLE_202603_18

PIXELBATTLE_202603_18 = 'pixelbattle_202603_18'

PIXELBATTLE_202603_19

PIXELBATTLE_202603_19 = 'pixelbattle_202603_19'

PIXELBATTLE_202603_20

PIXELBATTLE_202603_20 = 'pixelbattle_202603_20'

PIXELBATTLE_202603_21

PIXELBATTLE_202603_21 = 'pixelbattle_202603_21'

PIXELBATTLE_202603_22

PIXELBATTLE_202603_22 = 'pixelbattle_202603_22'

PIXELBATTLE_202603_23

PIXELBATTLE_202603_23 = 'pixelbattle_202603_23'

PIXELBATTLE_202603_24

PIXELBATTLE_202603_24 = 'pixelbattle_202603_24'

PIXELBATTLE_202603_25

PIXELBATTLE_202603_25 = 'pixelbattle_202603_25'

PIXELBATTLE_202603_26

PIXELBATTLE_202603_26 = 'pixelbattle_202603_26'

PIXELBATTLE_202603_27

PIXELBATTLE_202603_27 = 'pixelbattle_202603_27'

PIXELBATTLE_202603_28

PIXELBATTLE_202603_28 = 'pixelbattle_202603_28'

PIXELBATTLE_202603_29

PIXELBATTLE_202603_29 = 'pixelbattle_202603_29'

PIXELBATTLE_202603_30

PIXELBATTLE_202603_30 = 'pixelbattle_202603_30'

PIXELBATTLE_202603_31

PIXELBATTLE_202603_31 = 'pixelbattle_202603_31'

PIXELBATTLE_202603_32

PIXELBATTLE_202603_32 = 'pixelbattle_202603_32'

Pin

Bases: ITDBaseModel

description

description: str

name

name: str

slug

slug: PinSlug

PinWithDate

Bases: Pin

granted_at

granted_at: ITDDatetime

description

description: str

name

name: str

slug

slug: PinSlug

UserStab

UserStab(
    username_or_id: UUID | str | None = None,
    client: Optional[AsyncITDClient] = None,
    **data,
)

Bases: UserRef

id

id: UUID

username

username: str | None

display_name

display_name: str

client

client: Optional[AsyncITDClient] = None

follow

follow(**kwargs) -> int

Подписаться на пользователя.

RETURNS DESCRIPTION
int

Количество подписчиков пользователя

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

Пользователь не найден

ConflictError

Вы уже подписаны на этого пользователя

ValidationError

Нельзя подписаться на себя

UserBlockedError

пользователь заблокирован

unfollow

unfollow(**kwargs) -> int

Отписаться от пользователя.

RETURNS DESCRIPTION
int

Количество подписчиков пользователя

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

Пользователь не найден

get_followers

get_followers(
    page: int = 1, limit: int = 30, **kwargs
) -> tuple[PagePagination, list[UserWithFollowing]]

Получить подписчиков пользователя.

PARAMETER DESCRIPTION
page

страница (page >= 1)

TYPE: int DEFAULT: 1

limit

максимальное количество пользователей на странице (1 <= limit <= 100)

TYPE: int DEFAULT: 30

RETURNS DESCRIPTION
tuple[PagePagination, list[UserWithFollowing]]

Кортеж (пагинация, список пользователей)

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

Пользователь не найден

UserBlockedError

пользователь заблокирован

get_following

get_following(
    page: int = 1, limit: int = 30, **kwargs
) -> tuple[PagePagination, list[UserWithFollowing]]

Получить подписки пользователя.

PARAMETER DESCRIPTION
page

страница (page >= 1)

TYPE: int DEFAULT: 1

limit

максимальное количество пользователей на странице (1 <= limit <= 100)

TYPE: int DEFAULT: 30

RETURNS DESCRIPTION
tuple[PagePagination, list[UserWithFollowing]]

Кортеж (пагинация, список пользователей)

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

Пользователь не найден

UserBlockedError

пользователь заблокирован

block

block(**kwargs) -> None

Заблокировать пользователя.

RAISES DESCRIPTION
UnauthorizedError

неверный access токен

NotFoundError

пользователь не найден

ConflictError

пользователь уже заблокирован

ValidationError

нельзя заблокировать себя

unblock

unblock(**kwargs) -> None

Разблокировать пользователя.

RAISES DESCRIPTION
UnauthorizedError

неверный access токен

NotFoundError

пользователь не найден

ConflictError

пользователь не заблокирован

get_full

get_full(
    **kwargs,
) -> Union[
    FullUser, UserBlockedByMe, UserBlockMe, PrivateUser
]

Получить полные данные пользователя.

RETURNS DESCRIPTION
Union[FullUser, UserBlockedByMe, UserBlockMe, PrivateUser]

Данные пользователя в зависимости от статуса (полный профиль, заблокирован, приватный и т.д.)

RAISES DESCRIPTION
UnauthorizedError

необходима авторизация

NotFoundError

пользователь не найден

UserBlockedError

пользователь заблокирован

get_posts

get_posts(
    cursor: str | None = None,
    limit: int = 20,
    sort: PostSort | Literal["new", "popular"] = "new",
    **kwargs,
) -> tuple[Pagination, list[Post]]

Посты на стене пользователя (включая его собственные).

PARAMETER DESCRIPTION
cursor

курсор следующей страницы (из предыдущего ответа)

TYPE: str | None DEFAULT: None

limit

максимальное количество постов (1 <= limit <= 50)

TYPE: int DEFAULT: 20

sort

сортировка ("new" или "popular")

TYPE: PostSort | Literal['new', 'popular'] DEFAULT: 'new'

RETURNS DESCRIPTION
tuple[Pagination, list[Post]]

Кортеж (пагинация, список постов)

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

пользователь не найден

UserBlockedError

пользователь заблокирован

get_liked_posts

get_liked_posts(
    cursor: str | None = None,
    limit: int = 20,
    sort: PostSort | Literal["new", "popular"] = "new",
    **kwargs,
) -> tuple[Pagination, list[Post]]

Посты, которые лайкнул пользователь.

PARAMETER DESCRIPTION
cursor

курсор следующей страницы

TYPE: str | None DEFAULT: None

limit

максимальное количество постов (1 <= limit <= 50)

TYPE: int DEFAULT: 20

sort

сортировка ("new" или "popular")

TYPE: PostSort | Literal['new', 'popular'] DEFAULT: 'new'

RETURNS DESCRIPTION
tuple[Pagination, list[Post]]

Кортеж (пагинация, список постов)

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

пользователь не найден

UserBlockedError

пользователь заблокирован

get_wall_posts

get_wall_posts(
    cursor: str | None = None,
    limit: int = 20,
    sort: PostSort | Literal["new", "popular"] = "new",
    **kwargs,
) -> tuple[Pagination, list[Post]]

Посты на стене пользователя, сделанные другими пользователями.

PARAMETER DESCRIPTION
cursor

курсор следующей страницы

TYPE: str | None DEFAULT: None

limit

максимальное количество постов (1 <= limit <= 50)

TYPE: int DEFAULT: 20

sort

сортировка ("new" или "popular")

TYPE: PostSort | Literal['new', 'popular'] DEFAULT: 'new'

RETURNS DESCRIPTION
tuple[Pagination, list[Post]]

Кортеж (пагинация, список постов)

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

пользователь не найден

UserBlockedError

пользователь заблокирован

get_is_following

get_is_following(**kwargs) -> bool

Проверить, подписан ли текущий клиент на этого пользователя.

Требуется, чтобы у пользователя был указан id (UUID).

RETURNS DESCRIPTION
bool

Подписан ли

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

report

report(
    reason: Reason
    | Literal[
        "spam",
        "violence",
        "hate",
        "adult",
        "misinfo",
        "other",
    ] = "other",
    description: str = "",
    **kwargs,
) -> Report

Написать донос на пользователя.

Требуется, чтобы у пользователя был указан id (UUID).

PARAMETER DESCRIPTION
reason

причина

TYPE: Reason | Literal['spam', 'violence', 'hate', 'adult', 'misinfo', 'other'] DEFAULT: 'other'

description

текст репорта

TYPE: str DEFAULT: ''

RETURNS DESCRIPTION
Report

Донос

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

ValidationError

не найден пост, пользователь или комментарий по target_id

ValidationError

нельзя отправить жалобу на один и тот же контент

create_post

create_post(
    content: str = "",
    attachment_ids: list[Union[UUID, str, FileRef]]
    | None = None,
    multiple_choice: bool = False,
    question: str | None = None,
    options: list[str] | None = None,
    spans: list[
        Monospace
        | Strike
        | Underline
        | Bold
        | Italic
        | Spoiler
        | Link
    ]
    | None = None,
    **kwargs,
) -> Post

Создать пост на стене пользователя.

Требуется, чтобы у пользователя был указан id (UUID).

PARAMETER DESCRIPTION
content

Текст поста

TYPE: str DEFAULT: ''

attachment_ids

Прикреплённые файлы (список UUID, можно передавать строки, а также FileRef)

TYPE: list[Union[UUID, str, FileRef]] | None DEFAULT: None

multiple_choice

Возможен ли множественный выбор в опросе

TYPE: bool DEFAULT: False

question

Заголовок опроса

TYPE: str | None DEFAULT: None

options

Варианты ответов (список строк)

TYPE: list[str] | None DEFAULT: None

spans

Форматирование текста (список объектов форматирования)

TYPE: list[Monospace | Strike | Underline | Bold | Italic | Spoiler | Link] | None DEFAULT: None

RETURNS DESCRIPTION
Post

Созданный пост

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

ValidationError

Нельзя создать пост content="", attachment_ids=[], question=None

ParamsValidationError

len(content) <= 1_000

VideoRequiresVerificationError

Загрузка видео доступна только верифицированным пользователям

ValidationError

len(attachments_ids) <= 10

ForbiddenError

Некоторые файлы из attachment_ids не существуют

ParamsValidationError

len(spans) <= 100

ValidationError

1 <= len(question) <= 128

ValidationError

2 <= len(options) <= 10

ValidationError

1 <= len(options[i]) <= 32

ParamsValidationError

span[i].offset >= 0

ParamsValidationError

span[i].length > 0

ParamsValidationError

len(span[i].url) <= 2048

UserWithAvatar

UserWithAvatar(
    username_or_id: UUID | str | None = None,
    client: Optional[AsyncITDClient] = None,
    **data,
)

Bases: UserStab

avatar

avatar: str

id

id: UUID

username

username: str | None

client

client: Optional[AsyncITDClient] = None

display_name

display_name: str

follow

follow(**kwargs) -> int

Подписаться на пользователя.

RETURNS DESCRIPTION
int

Количество подписчиков пользователя

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

Пользователь не найден

ConflictError

Вы уже подписаны на этого пользователя

ValidationError

Нельзя подписаться на себя

UserBlockedError

пользователь заблокирован

unfollow

unfollow(**kwargs) -> int

Отписаться от пользователя.

RETURNS DESCRIPTION
int

Количество подписчиков пользователя

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

Пользователь не найден

get_followers

get_followers(
    page: int = 1, limit: int = 30, **kwargs
) -> tuple[PagePagination, list[UserWithFollowing]]

Получить подписчиков пользователя.

PARAMETER DESCRIPTION
page

страница (page >= 1)

TYPE: int DEFAULT: 1

limit

максимальное количество пользователей на странице (1 <= limit <= 100)

TYPE: int DEFAULT: 30

RETURNS DESCRIPTION
tuple[PagePagination, list[UserWithFollowing]]

Кортеж (пагинация, список пользователей)

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

Пользователь не найден

UserBlockedError

пользователь заблокирован

get_following

get_following(
    page: int = 1, limit: int = 30, **kwargs
) -> tuple[PagePagination, list[UserWithFollowing]]

Получить подписки пользователя.

PARAMETER DESCRIPTION
page

страница (page >= 1)

TYPE: int DEFAULT: 1

limit

максимальное количество пользователей на странице (1 <= limit <= 100)

TYPE: int DEFAULT: 30

RETURNS DESCRIPTION
tuple[PagePagination, list[UserWithFollowing]]

Кортеж (пагинация, список пользователей)

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

Пользователь не найден

UserBlockedError

пользователь заблокирован

block

block(**kwargs) -> None

Заблокировать пользователя.

RAISES DESCRIPTION
UnauthorizedError

неверный access токен

NotFoundError

пользователь не найден

ConflictError

пользователь уже заблокирован

ValidationError

нельзя заблокировать себя

unblock

unblock(**kwargs) -> None

Разблокировать пользователя.

RAISES DESCRIPTION
UnauthorizedError

неверный access токен

NotFoundError

пользователь не найден

ConflictError

пользователь не заблокирован

get_full

get_full(
    **kwargs,
) -> Union[
    FullUser, UserBlockedByMe, UserBlockMe, PrivateUser
]

Получить полные данные пользователя.

RETURNS DESCRIPTION
Union[FullUser, UserBlockedByMe, UserBlockMe, PrivateUser]

Данные пользователя в зависимости от статуса (полный профиль, заблокирован, приватный и т.д.)

RAISES DESCRIPTION
UnauthorizedError

необходима авторизация

NotFoundError

пользователь не найден

UserBlockedError

пользователь заблокирован

get_posts

get_posts(
    cursor: str | None = None,
    limit: int = 20,
    sort: PostSort | Literal["new", "popular"] = "new",
    **kwargs,
) -> tuple[Pagination, list[Post]]

Посты на стене пользователя (включая его собственные).

PARAMETER DESCRIPTION
cursor

курсор следующей страницы (из предыдущего ответа)

TYPE: str | None DEFAULT: None

limit

максимальное количество постов (1 <= limit <= 50)

TYPE: int DEFAULT: 20

sort

сортировка ("new" или "popular")

TYPE: PostSort | Literal['new', 'popular'] DEFAULT: 'new'

RETURNS DESCRIPTION
tuple[Pagination, list[Post]]

Кортеж (пагинация, список постов)

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

пользователь не найден

UserBlockedError

пользователь заблокирован

get_liked_posts

get_liked_posts(
    cursor: str | None = None,
    limit: int = 20,
    sort: PostSort | Literal["new", "popular"] = "new",
    **kwargs,
) -> tuple[Pagination, list[Post]]

Посты, которые лайкнул пользователь.

PARAMETER DESCRIPTION
cursor

курсор следующей страницы

TYPE: str | None DEFAULT: None

limit

максимальное количество постов (1 <= limit <= 50)

TYPE: int DEFAULT: 20

sort

сортировка ("new" или "popular")

TYPE: PostSort | Literal['new', 'popular'] DEFAULT: 'new'

RETURNS DESCRIPTION
tuple[Pagination, list[Post]]

Кортеж (пагинация, список постов)

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

пользователь не найден

UserBlockedError

пользователь заблокирован

get_wall_posts

get_wall_posts(
    cursor: str | None = None,
    limit: int = 20,
    sort: PostSort | Literal["new", "popular"] = "new",
    **kwargs,
) -> tuple[Pagination, list[Post]]

Посты на стене пользователя, сделанные другими пользователями.

PARAMETER DESCRIPTION
cursor

курсор следующей страницы

TYPE: str | None DEFAULT: None

limit

максимальное количество постов (1 <= limit <= 50)

TYPE: int DEFAULT: 20

sort

сортировка ("new" или "popular")

TYPE: PostSort | Literal['new', 'popular'] DEFAULT: 'new'

RETURNS DESCRIPTION
tuple[Pagination, list[Post]]

Кортеж (пагинация, список постов)

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

пользователь не найден

UserBlockedError

пользователь заблокирован

get_is_following

get_is_following(**kwargs) -> bool

Проверить, подписан ли текущий клиент на этого пользователя.

Требуется, чтобы у пользователя был указан id (UUID).

RETURNS DESCRIPTION
bool

Подписан ли

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

report

report(
    reason: Reason
    | Literal[
        "spam",
        "violence",
        "hate",
        "adult",
        "misinfo",
        "other",
    ] = "other",
    description: str = "",
    **kwargs,
) -> Report

Написать донос на пользователя.

Требуется, чтобы у пользователя был указан id (UUID).

PARAMETER DESCRIPTION
reason

причина

TYPE: Reason | Literal['spam', 'violence', 'hate', 'adult', 'misinfo', 'other'] DEFAULT: 'other'

description

текст репорта

TYPE: str DEFAULT: ''

RETURNS DESCRIPTION
Report

Донос

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

ValidationError

не найден пост, пользователь или комментарий по target_id

ValidationError

нельзя отправить жалобу на один и тот же контент

create_post

create_post(
    content: str = "",
    attachment_ids: list[Union[UUID, str, FileRef]]
    | None = None,
    multiple_choice: bool = False,
    question: str | None = None,
    options: list[str] | None = None,
    spans: list[
        Monospace
        | Strike
        | Underline
        | Bold
        | Italic
        | Spoiler
        | Link
    ]
    | None = None,
    **kwargs,
) -> Post

Создать пост на стене пользователя.

Требуется, чтобы у пользователя был указан id (UUID).

PARAMETER DESCRIPTION
content

Текст поста

TYPE: str DEFAULT: ''

attachment_ids

Прикреплённые файлы (список UUID, можно передавать строки, а также FileRef)

TYPE: list[Union[UUID, str, FileRef]] | None DEFAULT: None

multiple_choice

Возможен ли множественный выбор в опросе

TYPE: bool DEFAULT: False

question

Заголовок опроса

TYPE: str | None DEFAULT: None

options

Варианты ответов (список строк)

TYPE: list[str] | None DEFAULT: None

spans

Форматирование текста (список объектов форматирования)

TYPE: list[Monospace | Strike | Underline | Bold | Italic | Spoiler | Link] | None DEFAULT: None

RETURNS DESCRIPTION
Post

Созданный пост

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

ValidationError

Нельзя создать пост content="", attachment_ids=[], question=None

ParamsValidationError

len(content) <= 1_000

VideoRequiresVerificationError

Загрузка видео доступна только верифицированным пользователям

ValidationError

len(attachments_ids) <= 10

ForbiddenError

Некоторые файлы из attachment_ids не существуют

ParamsValidationError

len(spans) <= 100

ValidationError

1 <= len(question) <= 128

ValidationError

2 <= len(options) <= 10

ValidationError

1 <= len(options[i]) <= 32

ParamsValidationError

span[i].offset >= 0

ParamsValidationError

span[i].length > 0

ParamsValidationError

len(span[i].url) <= 2048

UserWithVerified

UserWithVerified(
    username_or_id: UUID | str | None = None,
    client: Optional[AsyncITDClient] = None,
    **data,
)

Bases: UserWithAvatar

verified

verified: bool

id

id: UUID

username

username: str | None

client

client: Optional[AsyncITDClient] = None

display_name

display_name: str

avatar

avatar: str

follow

follow(**kwargs) -> int

Подписаться на пользователя.

RETURNS DESCRIPTION
int

Количество подписчиков пользователя

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

Пользователь не найден

ConflictError

Вы уже подписаны на этого пользователя

ValidationError

Нельзя подписаться на себя

UserBlockedError

пользователь заблокирован

unfollow

unfollow(**kwargs) -> int

Отписаться от пользователя.

RETURNS DESCRIPTION
int

Количество подписчиков пользователя

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

Пользователь не найден

get_followers

get_followers(
    page: int = 1, limit: int = 30, **kwargs
) -> tuple[PagePagination, list[UserWithFollowing]]

Получить подписчиков пользователя.

PARAMETER DESCRIPTION
page

страница (page >= 1)

TYPE: int DEFAULT: 1

limit

максимальное количество пользователей на странице (1 <= limit <= 100)

TYPE: int DEFAULT: 30

RETURNS DESCRIPTION
tuple[PagePagination, list[UserWithFollowing]]

Кортеж (пагинация, список пользователей)

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

Пользователь не найден

UserBlockedError

пользователь заблокирован

get_following

get_following(
    page: int = 1, limit: int = 30, **kwargs
) -> tuple[PagePagination, list[UserWithFollowing]]

Получить подписки пользователя.

PARAMETER DESCRIPTION
page

страница (page >= 1)

TYPE: int DEFAULT: 1

limit

максимальное количество пользователей на странице (1 <= limit <= 100)

TYPE: int DEFAULT: 30

RETURNS DESCRIPTION
tuple[PagePagination, list[UserWithFollowing]]

Кортеж (пагинация, список пользователей)

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

Пользователь не найден

UserBlockedError

пользователь заблокирован

block

block(**kwargs) -> None

Заблокировать пользователя.

RAISES DESCRIPTION
UnauthorizedError

неверный access токен

NotFoundError

пользователь не найден

ConflictError

пользователь уже заблокирован

ValidationError

нельзя заблокировать себя

unblock

unblock(**kwargs) -> None

Разблокировать пользователя.

RAISES DESCRIPTION
UnauthorizedError

неверный access токен

NotFoundError

пользователь не найден

ConflictError

пользователь не заблокирован

get_full

get_full(
    **kwargs,
) -> Union[
    FullUser, UserBlockedByMe, UserBlockMe, PrivateUser
]

Получить полные данные пользователя.

RETURNS DESCRIPTION
Union[FullUser, UserBlockedByMe, UserBlockMe, PrivateUser]

Данные пользователя в зависимости от статуса (полный профиль, заблокирован, приватный и т.д.)

RAISES DESCRIPTION
UnauthorizedError

необходима авторизация

NotFoundError

пользователь не найден

UserBlockedError

пользователь заблокирован

get_posts

get_posts(
    cursor: str | None = None,
    limit: int = 20,
    sort: PostSort | Literal["new", "popular"] = "new",
    **kwargs,
) -> tuple[Pagination, list[Post]]

Посты на стене пользователя (включая его собственные).

PARAMETER DESCRIPTION
cursor

курсор следующей страницы (из предыдущего ответа)

TYPE: str | None DEFAULT: None

limit

максимальное количество постов (1 <= limit <= 50)

TYPE: int DEFAULT: 20

sort

сортировка ("new" или "popular")

TYPE: PostSort | Literal['new', 'popular'] DEFAULT: 'new'

RETURNS DESCRIPTION
tuple[Pagination, list[Post]]

Кортеж (пагинация, список постов)

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

пользователь не найден

UserBlockedError

пользователь заблокирован

get_liked_posts

get_liked_posts(
    cursor: str | None = None,
    limit: int = 20,
    sort: PostSort | Literal["new", "popular"] = "new",
    **kwargs,
) -> tuple[Pagination, list[Post]]

Посты, которые лайкнул пользователь.

PARAMETER DESCRIPTION
cursor

курсор следующей страницы

TYPE: str | None DEFAULT: None

limit

максимальное количество постов (1 <= limit <= 50)

TYPE: int DEFAULT: 20

sort

сортировка ("new" или "popular")

TYPE: PostSort | Literal['new', 'popular'] DEFAULT: 'new'

RETURNS DESCRIPTION
tuple[Pagination, list[Post]]

Кортеж (пагинация, список постов)

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

пользователь не найден

UserBlockedError

пользователь заблокирован

get_wall_posts

get_wall_posts(
    cursor: str | None = None,
    limit: int = 20,
    sort: PostSort | Literal["new", "popular"] = "new",
    **kwargs,
) -> tuple[Pagination, list[Post]]

Посты на стене пользователя, сделанные другими пользователями.

PARAMETER DESCRIPTION
cursor

курсор следующей страницы

TYPE: str | None DEFAULT: None

limit

максимальное количество постов (1 <= limit <= 50)

TYPE: int DEFAULT: 20

sort

сортировка ("new" или "popular")

TYPE: PostSort | Literal['new', 'popular'] DEFAULT: 'new'

RETURNS DESCRIPTION
tuple[Pagination, list[Post]]

Кортеж (пагинация, список постов)

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

пользователь не найден

UserBlockedError

пользователь заблокирован

get_is_following

get_is_following(**kwargs) -> bool

Проверить, подписан ли текущий клиент на этого пользователя.

Требуется, чтобы у пользователя был указан id (UUID).

RETURNS DESCRIPTION
bool

Подписан ли

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

report

report(
    reason: Reason
    | Literal[
        "spam",
        "violence",
        "hate",
        "adult",
        "misinfo",
        "other",
    ] = "other",
    description: str = "",
    **kwargs,
) -> Report

Написать донос на пользователя.

Требуется, чтобы у пользователя был указан id (UUID).

PARAMETER DESCRIPTION
reason

причина

TYPE: Reason | Literal['spam', 'violence', 'hate', 'adult', 'misinfo', 'other'] DEFAULT: 'other'

description

текст репорта

TYPE: str DEFAULT: ''

RETURNS DESCRIPTION
Report

Донос

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

ValidationError

не найден пост, пользователь или комментарий по target_id

ValidationError

нельзя отправить жалобу на один и тот же контент

create_post

create_post(
    content: str = "",
    attachment_ids: list[Union[UUID, str, FileRef]]
    | None = None,
    multiple_choice: bool = False,
    question: str | None = None,
    options: list[str] | None = None,
    spans: list[
        Monospace
        | Strike
        | Underline
        | Bold
        | Italic
        | Spoiler
        | Link
    ]
    | None = None,
    **kwargs,
) -> Post

Создать пост на стене пользователя.

Требуется, чтобы у пользователя был указан id (UUID).

PARAMETER DESCRIPTION
content

Текст поста

TYPE: str DEFAULT: ''

attachment_ids

Прикреплённые файлы (список UUID, можно передавать строки, а также FileRef)

TYPE: list[Union[UUID, str, FileRef]] | None DEFAULT: None

multiple_choice

Возможен ли множественный выбор в опросе

TYPE: bool DEFAULT: False

question

Заголовок опроса

TYPE: str | None DEFAULT: None

options

Варианты ответов (список строк)

TYPE: list[str] | None DEFAULT: None

spans

Форматирование текста (список объектов форматирования)

TYPE: list[Monospace | Strike | Underline | Bold | Italic | Spoiler | Link] | None DEFAULT: None

RETURNS DESCRIPTION
Post

Созданный пост

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

ValidationError

Нельзя создать пост content="", attachment_ids=[], question=None

ParamsValidationError

len(content) <= 1_000

VideoRequiresVerificationError

Загрузка видео доступна только верифицированным пользователям

ValidationError

len(attachments_ids) <= 10

ForbiddenError

Некоторые файлы из attachment_ids не существуют

ParamsValidationError

len(spans) <= 100

ValidationError

1 <= len(question) <= 128

ValidationError

2 <= len(options) <= 10

ValidationError

1 <= len(options[i]) <= 32

ParamsValidationError

span[i].offset >= 0

ParamsValidationError

span[i].length > 0

ParamsValidationError

len(span[i].url) <= 2048

UserWithFollowersCount

UserWithFollowersCount(
    username_or_id: UUID | str | None = None,
    client: Optional[AsyncITDClient] = None,
    **data,
)

Bases: UserWithVerified

followers_count

followers_count: int

id

id: UUID

username

username: str | None

client

client: Optional[AsyncITDClient] = None

display_name

display_name: str

avatar

avatar: str

verified

verified: bool

follow

follow(**kwargs) -> int

Подписаться на пользователя.

RETURNS DESCRIPTION
int

Количество подписчиков пользователя

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

Пользователь не найден

ConflictError

Вы уже подписаны на этого пользователя

ValidationError

Нельзя подписаться на себя

UserBlockedError

пользователь заблокирован

unfollow

unfollow(**kwargs) -> int

Отписаться от пользователя.

RETURNS DESCRIPTION
int

Количество подписчиков пользователя

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

Пользователь не найден

get_followers

get_followers(
    page: int = 1, limit: int = 30, **kwargs
) -> tuple[PagePagination, list[UserWithFollowing]]

Получить подписчиков пользователя.

PARAMETER DESCRIPTION
page

страница (page >= 1)

TYPE: int DEFAULT: 1

limit

максимальное количество пользователей на странице (1 <= limit <= 100)

TYPE: int DEFAULT: 30

RETURNS DESCRIPTION
tuple[PagePagination, list[UserWithFollowing]]

Кортеж (пагинация, список пользователей)

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

Пользователь не найден

UserBlockedError

пользователь заблокирован

get_following

get_following(
    page: int = 1, limit: int = 30, **kwargs
) -> tuple[PagePagination, list[UserWithFollowing]]

Получить подписки пользователя.

PARAMETER DESCRIPTION
page

страница (page >= 1)

TYPE: int DEFAULT: 1

limit

максимальное количество пользователей на странице (1 <= limit <= 100)

TYPE: int DEFAULT: 30

RETURNS DESCRIPTION
tuple[PagePagination, list[UserWithFollowing]]

Кортеж (пагинация, список пользователей)

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

Пользователь не найден

UserBlockedError

пользователь заблокирован

block

block(**kwargs) -> None

Заблокировать пользователя.

RAISES DESCRIPTION
UnauthorizedError

неверный access токен

NotFoundError

пользователь не найден

ConflictError

пользователь уже заблокирован

ValidationError

нельзя заблокировать себя

unblock

unblock(**kwargs) -> None

Разблокировать пользователя.

RAISES DESCRIPTION
UnauthorizedError

неверный access токен

NotFoundError

пользователь не найден

ConflictError

пользователь не заблокирован

get_full

get_full(
    **kwargs,
) -> Union[
    FullUser, UserBlockedByMe, UserBlockMe, PrivateUser
]

Получить полные данные пользователя.

RETURNS DESCRIPTION
Union[FullUser, UserBlockedByMe, UserBlockMe, PrivateUser]

Данные пользователя в зависимости от статуса (полный профиль, заблокирован, приватный и т.д.)

RAISES DESCRIPTION
UnauthorizedError

необходима авторизация

NotFoundError

пользователь не найден

UserBlockedError

пользователь заблокирован

get_posts

get_posts(
    cursor: str | None = None,
    limit: int = 20,
    sort: PostSort | Literal["new", "popular"] = "new",
    **kwargs,
) -> tuple[Pagination, list[Post]]

Посты на стене пользователя (включая его собственные).

PARAMETER DESCRIPTION
cursor

курсор следующей страницы (из предыдущего ответа)

TYPE: str | None DEFAULT: None

limit

максимальное количество постов (1 <= limit <= 50)

TYPE: int DEFAULT: 20

sort

сортировка ("new" или "popular")

TYPE: PostSort | Literal['new', 'popular'] DEFAULT: 'new'

RETURNS DESCRIPTION
tuple[Pagination, list[Post]]

Кортеж (пагинация, список постов)

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

пользователь не найден

UserBlockedError

пользователь заблокирован

get_liked_posts

get_liked_posts(
    cursor: str | None = None,
    limit: int = 20,
    sort: PostSort | Literal["new", "popular"] = "new",
    **kwargs,
) -> tuple[Pagination, list[Post]]

Посты, которые лайкнул пользователь.

PARAMETER DESCRIPTION
cursor

курсор следующей страницы

TYPE: str | None DEFAULT: None

limit

максимальное количество постов (1 <= limit <= 50)

TYPE: int DEFAULT: 20

sort

сортировка ("new" или "popular")

TYPE: PostSort | Literal['new', 'popular'] DEFAULT: 'new'

RETURNS DESCRIPTION
tuple[Pagination, list[Post]]

Кортеж (пагинация, список постов)

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

пользователь не найден

UserBlockedError

пользователь заблокирован

get_wall_posts

get_wall_posts(
    cursor: str | None = None,
    limit: int = 20,
    sort: PostSort | Literal["new", "popular"] = "new",
    **kwargs,
) -> tuple[Pagination, list[Post]]

Посты на стене пользователя, сделанные другими пользователями.

PARAMETER DESCRIPTION
cursor

курсор следующей страницы

TYPE: str | None DEFAULT: None

limit

максимальное количество постов (1 <= limit <= 50)

TYPE: int DEFAULT: 20

sort

сортировка ("new" или "popular")

TYPE: PostSort | Literal['new', 'popular'] DEFAULT: 'new'

RETURNS DESCRIPTION
tuple[Pagination, list[Post]]

Кортеж (пагинация, список постов)

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

пользователь не найден

UserBlockedError

пользователь заблокирован

get_is_following

get_is_following(**kwargs) -> bool

Проверить, подписан ли текущий клиент на этого пользователя.

Требуется, чтобы у пользователя был указан id (UUID).

RETURNS DESCRIPTION
bool

Подписан ли

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

report

report(
    reason: Reason
    | Literal[
        "spam",
        "violence",
        "hate",
        "adult",
        "misinfo",
        "other",
    ] = "other",
    description: str = "",
    **kwargs,
) -> Report

Написать донос на пользователя.

Требуется, чтобы у пользователя был указан id (UUID).

PARAMETER DESCRIPTION
reason

причина

TYPE: Reason | Literal['spam', 'violence', 'hate', 'adult', 'misinfo', 'other'] DEFAULT: 'other'

description

текст репорта

TYPE: str DEFAULT: ''

RETURNS DESCRIPTION
Report

Донос

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

ValidationError

не найден пост, пользователь или комментарий по target_id

ValidationError

нельзя отправить жалобу на один и тот же контент

create_post

create_post(
    content: str = "",
    attachment_ids: list[Union[UUID, str, FileRef]]
    | None = None,
    multiple_choice: bool = False,
    question: str | None = None,
    options: list[str] | None = None,
    spans: list[
        Monospace
        | Strike
        | Underline
        | Bold
        | Italic
        | Spoiler
        | Link
    ]
    | None = None,
    **kwargs,
) -> Post

Создать пост на стене пользователя.

Требуется, чтобы у пользователя был указан id (UUID).

PARAMETER DESCRIPTION
content

Текст поста

TYPE: str DEFAULT: ''

attachment_ids

Прикреплённые файлы (список UUID, можно передавать строки, а также FileRef)

TYPE: list[Union[UUID, str, FileRef]] | None DEFAULT: None

multiple_choice

Возможен ли множественный выбор в опросе

TYPE: bool DEFAULT: False

question

Заголовок опроса

TYPE: str | None DEFAULT: None

options

Варианты ответов (список строк)

TYPE: list[str] | None DEFAULT: None

spans

Форматирование текста (список объектов форматирования)

TYPE: list[Monospace | Strike | Underline | Bold | Italic | Spoiler | Link] | None DEFAULT: None

RETURNS DESCRIPTION
Post

Созданный пост

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

ValidationError

Нельзя создать пост content="", attachment_ids=[], question=None

ParamsValidationError

len(content) <= 1_000

VideoRequiresVerificationError

Загрузка видео доступна только верифицированным пользователям

ValidationError

len(attachments_ids) <= 10

ForbiddenError

Некоторые файлы из attachment_ids не существуют

ParamsValidationError

len(spans) <= 100

ValidationError

1 <= len(question) <= 128

ValidationError

2 <= len(options) <= 10

ValidationError

1 <= len(options[i]) <= 32

ParamsValidationError

span[i].offset >= 0

ParamsValidationError

span[i].length > 0

ParamsValidationError

len(span[i].url) <= 2048

UserWithPin

UserWithPin(
    username_or_id: UUID | str | None = None,
    client: Optional[AsyncITDClient] = None,
    **data,
)

Bases: UserWithVerified

pin

pin: Pin | None

Если пина нет в enum PinSlug, то будет None

id

id: UUID

username

username: str | None

client

client: Optional[AsyncITDClient] = None

display_name

display_name: str

avatar

avatar: str

verified

verified: bool

follow

follow(**kwargs) -> int

Подписаться на пользователя.

RETURNS DESCRIPTION
int

Количество подписчиков пользователя

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

Пользователь не найден

ConflictError

Вы уже подписаны на этого пользователя

ValidationError

Нельзя подписаться на себя

UserBlockedError

пользователь заблокирован

unfollow

unfollow(**kwargs) -> int

Отписаться от пользователя.

RETURNS DESCRIPTION
int

Количество подписчиков пользователя

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

Пользователь не найден

get_followers

get_followers(
    page: int = 1, limit: int = 30, **kwargs
) -> tuple[PagePagination, list[UserWithFollowing]]

Получить подписчиков пользователя.

PARAMETER DESCRIPTION
page

страница (page >= 1)

TYPE: int DEFAULT: 1

limit

максимальное количество пользователей на странице (1 <= limit <= 100)

TYPE: int DEFAULT: 30

RETURNS DESCRIPTION
tuple[PagePagination, list[UserWithFollowing]]

Кортеж (пагинация, список пользователей)

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

Пользователь не найден

UserBlockedError

пользователь заблокирован

get_following

get_following(
    page: int = 1, limit: int = 30, **kwargs
) -> tuple[PagePagination, list[UserWithFollowing]]

Получить подписки пользователя.

PARAMETER DESCRIPTION
page

страница (page >= 1)

TYPE: int DEFAULT: 1

limit

максимальное количество пользователей на странице (1 <= limit <= 100)

TYPE: int DEFAULT: 30

RETURNS DESCRIPTION
tuple[PagePagination, list[UserWithFollowing]]

Кортеж (пагинация, список пользователей)

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

Пользователь не найден

UserBlockedError

пользователь заблокирован

block

block(**kwargs) -> None

Заблокировать пользователя.

RAISES DESCRIPTION
UnauthorizedError

неверный access токен

NotFoundError

пользователь не найден

ConflictError

пользователь уже заблокирован

ValidationError

нельзя заблокировать себя

unblock

unblock(**kwargs) -> None

Разблокировать пользователя.

RAISES DESCRIPTION
UnauthorizedError

неверный access токен

NotFoundError

пользователь не найден

ConflictError

пользователь не заблокирован

get_full

get_full(
    **kwargs,
) -> Union[
    FullUser, UserBlockedByMe, UserBlockMe, PrivateUser
]

Получить полные данные пользователя.

RETURNS DESCRIPTION
Union[FullUser, UserBlockedByMe, UserBlockMe, PrivateUser]

Данные пользователя в зависимости от статуса (полный профиль, заблокирован, приватный и т.д.)

RAISES DESCRIPTION
UnauthorizedError

необходима авторизация

NotFoundError

пользователь не найден

UserBlockedError

пользователь заблокирован

get_posts

get_posts(
    cursor: str | None = None,
    limit: int = 20,
    sort: PostSort | Literal["new", "popular"] = "new",
    **kwargs,
) -> tuple[Pagination, list[Post]]

Посты на стене пользователя (включая его собственные).

PARAMETER DESCRIPTION
cursor

курсор следующей страницы (из предыдущего ответа)

TYPE: str | None DEFAULT: None

limit

максимальное количество постов (1 <= limit <= 50)

TYPE: int DEFAULT: 20

sort

сортировка ("new" или "popular")

TYPE: PostSort | Literal['new', 'popular'] DEFAULT: 'new'

RETURNS DESCRIPTION
tuple[Pagination, list[Post]]

Кортеж (пагинация, список постов)

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

пользователь не найден

UserBlockedError

пользователь заблокирован

get_liked_posts

get_liked_posts(
    cursor: str | None = None,
    limit: int = 20,
    sort: PostSort | Literal["new", "popular"] = "new",
    **kwargs,
) -> tuple[Pagination, list[Post]]

Посты, которые лайкнул пользователь.

PARAMETER DESCRIPTION
cursor

курсор следующей страницы

TYPE: str | None DEFAULT: None

limit

максимальное количество постов (1 <= limit <= 50)

TYPE: int DEFAULT: 20

sort

сортировка ("new" или "popular")

TYPE: PostSort | Literal['new', 'popular'] DEFAULT: 'new'

RETURNS DESCRIPTION
tuple[Pagination, list[Post]]

Кортеж (пагинация, список постов)

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

пользователь не найден

UserBlockedError

пользователь заблокирован

get_wall_posts

get_wall_posts(
    cursor: str | None = None,
    limit: int = 20,
    sort: PostSort | Literal["new", "popular"] = "new",
    **kwargs,
) -> tuple[Pagination, list[Post]]

Посты на стене пользователя, сделанные другими пользователями.

PARAMETER DESCRIPTION
cursor

курсор следующей страницы

TYPE: str | None DEFAULT: None

limit

максимальное количество постов (1 <= limit <= 50)

TYPE: int DEFAULT: 20

sort

сортировка ("new" или "popular")

TYPE: PostSort | Literal['new', 'popular'] DEFAULT: 'new'

RETURNS DESCRIPTION
tuple[Pagination, list[Post]]

Кортеж (пагинация, список постов)

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

пользователь не найден

UserBlockedError

пользователь заблокирован

get_is_following

get_is_following(**kwargs) -> bool

Проверить, подписан ли текущий клиент на этого пользователя.

Требуется, чтобы у пользователя был указан id (UUID).

RETURNS DESCRIPTION
bool

Подписан ли

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

report

report(
    reason: Reason
    | Literal[
        "spam",
        "violence",
        "hate",
        "adult",
        "misinfo",
        "other",
    ] = "other",
    description: str = "",
    **kwargs,
) -> Report

Написать донос на пользователя.

Требуется, чтобы у пользователя был указан id (UUID).

PARAMETER DESCRIPTION
reason

причина

TYPE: Reason | Literal['spam', 'violence', 'hate', 'adult', 'misinfo', 'other'] DEFAULT: 'other'

description

текст репорта

TYPE: str DEFAULT: ''

RETURNS DESCRIPTION
Report

Донос

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

ValidationError

не найден пост, пользователь или комментарий по target_id

ValidationError

нельзя отправить жалобу на один и тот же контент

create_post

create_post(
    content: str = "",
    attachment_ids: list[Union[UUID, str, FileRef]]
    | None = None,
    multiple_choice: bool = False,
    question: str | None = None,
    options: list[str] | None = None,
    spans: list[
        Monospace
        | Strike
        | Underline
        | Bold
        | Italic
        | Spoiler
        | Link
    ]
    | None = None,
    **kwargs,
) -> Post

Создать пост на стене пользователя.

Требуется, чтобы у пользователя был указан id (UUID).

PARAMETER DESCRIPTION
content

Текст поста

TYPE: str DEFAULT: ''

attachment_ids

Прикреплённые файлы (список UUID, можно передавать строки, а также FileRef)

TYPE: list[Union[UUID, str, FileRef]] | None DEFAULT: None

multiple_choice

Возможен ли множественный выбор в опросе

TYPE: bool DEFAULT: False

question

Заголовок опроса

TYPE: str | None DEFAULT: None

options

Варианты ответов (список строк)

TYPE: list[str] | None DEFAULT: None

spans

Форматирование текста (список объектов форматирования)

TYPE: list[Monospace | Strike | Underline | Bold | Italic | Spoiler | Link] | None DEFAULT: None

RETURNS DESCRIPTION
Post

Созданный пост

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

ValidationError

Нельзя создать пост content="", attachment_ids=[], question=None

ParamsValidationError

len(content) <= 1_000

VideoRequiresVerificationError

Загрузка видео доступна только верифицированным пользователям

ValidationError

len(attachments_ids) <= 10

ForbiddenError

Некоторые файлы из attachment_ids не существуют

ParamsValidationError

len(spans) <= 100

ValidationError

1 <= len(question) <= 128

ValidationError

2 <= len(options) <= 10

ValidationError

1 <= len(options[i]) <= 32

ParamsValidationError

span[i].offset >= 0

ParamsValidationError

span[i].length > 0

ParamsValidationError

len(span[i].url) <= 2048

UserWithRoles

UserWithRoles(
    username_or_id: UUID | str | None = None,
    client: Optional[AsyncITDClient] = None,
    **data,
)

Bases: UserWithVerified

is_phone_verified

is_phone_verified: bool

roles

roles: list[str | Literal['user']]

bio

bio: str | None

id

id: UUID

username

username: str | None

client

client: Optional[AsyncITDClient] = None

display_name

display_name: str

avatar

avatar: str

verified

verified: bool

follow

follow(**kwargs) -> int

Подписаться на пользователя.

RETURNS DESCRIPTION
int

Количество подписчиков пользователя

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

Пользователь не найден

ConflictError

Вы уже подписаны на этого пользователя

ValidationError

Нельзя подписаться на себя

UserBlockedError

пользователь заблокирован

unfollow

unfollow(**kwargs) -> int

Отписаться от пользователя.

RETURNS DESCRIPTION
int

Количество подписчиков пользователя

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

Пользователь не найден

get_followers

get_followers(
    page: int = 1, limit: int = 30, **kwargs
) -> tuple[PagePagination, list[UserWithFollowing]]

Получить подписчиков пользователя.

PARAMETER DESCRIPTION
page

страница (page >= 1)

TYPE: int DEFAULT: 1

limit

максимальное количество пользователей на странице (1 <= limit <= 100)

TYPE: int DEFAULT: 30

RETURNS DESCRIPTION
tuple[PagePagination, list[UserWithFollowing]]

Кортеж (пагинация, список пользователей)

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

Пользователь не найден

UserBlockedError

пользователь заблокирован

get_following

get_following(
    page: int = 1, limit: int = 30, **kwargs
) -> tuple[PagePagination, list[UserWithFollowing]]

Получить подписки пользователя.

PARAMETER DESCRIPTION
page

страница (page >= 1)

TYPE: int DEFAULT: 1

limit

максимальное количество пользователей на странице (1 <= limit <= 100)

TYPE: int DEFAULT: 30

RETURNS DESCRIPTION
tuple[PagePagination, list[UserWithFollowing]]

Кортеж (пагинация, список пользователей)

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

Пользователь не найден

UserBlockedError

пользователь заблокирован

block

block(**kwargs) -> None

Заблокировать пользователя.

RAISES DESCRIPTION
UnauthorizedError

неверный access токен

NotFoundError

пользователь не найден

ConflictError

пользователь уже заблокирован

ValidationError

нельзя заблокировать себя

unblock

unblock(**kwargs) -> None

Разблокировать пользователя.

RAISES DESCRIPTION
UnauthorizedError

неверный access токен

NotFoundError

пользователь не найден

ConflictError

пользователь не заблокирован

get_full

get_full(
    **kwargs,
) -> Union[
    FullUser, UserBlockedByMe, UserBlockMe, PrivateUser
]

Получить полные данные пользователя.

RETURNS DESCRIPTION
Union[FullUser, UserBlockedByMe, UserBlockMe, PrivateUser]

Данные пользователя в зависимости от статуса (полный профиль, заблокирован, приватный и т.д.)

RAISES DESCRIPTION
UnauthorizedError

необходима авторизация

NotFoundError

пользователь не найден

UserBlockedError

пользователь заблокирован

get_posts

get_posts(
    cursor: str | None = None,
    limit: int = 20,
    sort: PostSort | Literal["new", "popular"] = "new",
    **kwargs,
) -> tuple[Pagination, list[Post]]

Посты на стене пользователя (включая его собственные).

PARAMETER DESCRIPTION
cursor

курсор следующей страницы (из предыдущего ответа)

TYPE: str | None DEFAULT: None

limit

максимальное количество постов (1 <= limit <= 50)

TYPE: int DEFAULT: 20

sort

сортировка ("new" или "popular")

TYPE: PostSort | Literal['new', 'popular'] DEFAULT: 'new'

RETURNS DESCRIPTION
tuple[Pagination, list[Post]]

Кортеж (пагинация, список постов)

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

пользователь не найден

UserBlockedError

пользователь заблокирован

get_liked_posts

get_liked_posts(
    cursor: str | None = None,
    limit: int = 20,
    sort: PostSort | Literal["new", "popular"] = "new",
    **kwargs,
) -> tuple[Pagination, list[Post]]

Посты, которые лайкнул пользователь.

PARAMETER DESCRIPTION
cursor

курсор следующей страницы

TYPE: str | None DEFAULT: None

limit

максимальное количество постов (1 <= limit <= 50)

TYPE: int DEFAULT: 20

sort

сортировка ("new" или "popular")

TYPE: PostSort | Literal['new', 'popular'] DEFAULT: 'new'

RETURNS DESCRIPTION
tuple[Pagination, list[Post]]

Кортеж (пагинация, список постов)

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

пользователь не найден

UserBlockedError

пользователь заблокирован

get_wall_posts

get_wall_posts(
    cursor: str | None = None,
    limit: int = 20,
    sort: PostSort | Literal["new", "popular"] = "new",
    **kwargs,
) -> tuple[Pagination, list[Post]]

Посты на стене пользователя, сделанные другими пользователями.

PARAMETER DESCRIPTION
cursor

курсор следующей страницы

TYPE: str | None DEFAULT: None

limit

максимальное количество постов (1 <= limit <= 50)

TYPE: int DEFAULT: 20

sort

сортировка ("new" или "popular")

TYPE: PostSort | Literal['new', 'popular'] DEFAULT: 'new'

RETURNS DESCRIPTION
tuple[Pagination, list[Post]]

Кортеж (пагинация, список постов)

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

пользователь не найден

UserBlockedError

пользователь заблокирован

get_is_following

get_is_following(**kwargs) -> bool

Проверить, подписан ли текущий клиент на этого пользователя.

Требуется, чтобы у пользователя был указан id (UUID).

RETURNS DESCRIPTION
bool

Подписан ли

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

report

report(
    reason: Reason
    | Literal[
        "spam",
        "violence",
        "hate",
        "adult",
        "misinfo",
        "other",
    ] = "other",
    description: str = "",
    **kwargs,
) -> Report

Написать донос на пользователя.

Требуется, чтобы у пользователя был указан id (UUID).

PARAMETER DESCRIPTION
reason

причина

TYPE: Reason | Literal['spam', 'violence', 'hate', 'adult', 'misinfo', 'other'] DEFAULT: 'other'

description

текст репорта

TYPE: str DEFAULT: ''

RETURNS DESCRIPTION
Report

Донос

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

ValidationError

не найден пост, пользователь или комментарий по target_id

ValidationError

нельзя отправить жалобу на один и тот же контент

create_post

create_post(
    content: str = "",
    attachment_ids: list[Union[UUID, str, FileRef]]
    | None = None,
    multiple_choice: bool = False,
    question: str | None = None,
    options: list[str] | None = None,
    spans: list[
        Monospace
        | Strike
        | Underline
        | Bold
        | Italic
        | Spoiler
        | Link
    ]
    | None = None,
    **kwargs,
) -> Post

Создать пост на стене пользователя.

Требуется, чтобы у пользователя был указан id (UUID).

PARAMETER DESCRIPTION
content

Текст поста

TYPE: str DEFAULT: ''

attachment_ids

Прикреплённые файлы (список UUID, можно передавать строки, а также FileRef)

TYPE: list[Union[UUID, str, FileRef]] | None DEFAULT: None

multiple_choice

Возможен ли множественный выбор в опросе

TYPE: bool DEFAULT: False

question

Заголовок опроса

TYPE: str | None DEFAULT: None

options

Варианты ответов (список строк)

TYPE: list[str] | None DEFAULT: None

spans

Форматирование текста (список объектов форматирования)

TYPE: list[Monospace | Strike | Underline | Bold | Italic | Spoiler | Link] | None DEFAULT: None

RETURNS DESCRIPTION
Post

Созданный пост

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

ValidationError

Нельзя создать пост content="", attachment_ids=[], question=None

ParamsValidationError

len(content) <= 1_000

VideoRequiresVerificationError

Загрузка видео доступна только верифицированным пользователям

ValidationError

len(attachments_ids) <= 10

ForbiddenError

Некоторые файлы из attachment_ids не существуют

ParamsValidationError

len(spans) <= 100

ValidationError

1 <= len(question) <= 128

ValidationError

2 <= len(options) <= 10

ValidationError

1 <= len(options[i]) <= 32

ParamsValidationError

span[i].offset >= 0

ParamsValidationError

span[i].length > 0

ParamsValidationError

len(span[i].url) <= 2048

UserWithFollowing

UserWithFollowing(
    username_or_id: UUID | str | None = None,
    client: Optional[AsyncITDClient] = None,
    **data,
)

Bases: UserWithVerified

is_following

is_following: bool

id

id: UUID

username

username: str | None

client

client: Optional[AsyncITDClient] = None

display_name

display_name: str

avatar

avatar: str

verified

verified: bool

follow

follow(**kwargs) -> int

Подписаться на пользователя.

RETURNS DESCRIPTION
int

Количество подписчиков пользователя

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

Пользователь не найден

ConflictError

Вы уже подписаны на этого пользователя

ValidationError

Нельзя подписаться на себя

UserBlockedError

пользователь заблокирован

unfollow

unfollow(**kwargs) -> int

Отписаться от пользователя.

RETURNS DESCRIPTION
int

Количество подписчиков пользователя

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

Пользователь не найден

get_followers

get_followers(
    page: int = 1, limit: int = 30, **kwargs
) -> tuple[PagePagination, list[UserWithFollowing]]

Получить подписчиков пользователя.

PARAMETER DESCRIPTION
page

страница (page >= 1)

TYPE: int DEFAULT: 1

limit

максимальное количество пользователей на странице (1 <= limit <= 100)

TYPE: int DEFAULT: 30

RETURNS DESCRIPTION
tuple[PagePagination, list[UserWithFollowing]]

Кортеж (пагинация, список пользователей)

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

Пользователь не найден

UserBlockedError

пользователь заблокирован

get_following

get_following(
    page: int = 1, limit: int = 30, **kwargs
) -> tuple[PagePagination, list[UserWithFollowing]]

Получить подписки пользователя.

PARAMETER DESCRIPTION
page

страница (page >= 1)

TYPE: int DEFAULT: 1

limit

максимальное количество пользователей на странице (1 <= limit <= 100)

TYPE: int DEFAULT: 30

RETURNS DESCRIPTION
tuple[PagePagination, list[UserWithFollowing]]

Кортеж (пагинация, список пользователей)

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

Пользователь не найден

UserBlockedError

пользователь заблокирован

block

block(**kwargs) -> None

Заблокировать пользователя.

RAISES DESCRIPTION
UnauthorizedError

неверный access токен

NotFoundError

пользователь не найден

ConflictError

пользователь уже заблокирован

ValidationError

нельзя заблокировать себя

unblock

unblock(**kwargs) -> None

Разблокировать пользователя.

RAISES DESCRIPTION
UnauthorizedError

неверный access токен

NotFoundError

пользователь не найден

ConflictError

пользователь не заблокирован

get_full

get_full(
    **kwargs,
) -> Union[
    FullUser, UserBlockedByMe, UserBlockMe, PrivateUser
]

Получить полные данные пользователя.

RETURNS DESCRIPTION
Union[FullUser, UserBlockedByMe, UserBlockMe, PrivateUser]

Данные пользователя в зависимости от статуса (полный профиль, заблокирован, приватный и т.д.)

RAISES DESCRIPTION
UnauthorizedError

необходима авторизация

NotFoundError

пользователь не найден

UserBlockedError

пользователь заблокирован

get_posts

get_posts(
    cursor: str | None = None,
    limit: int = 20,
    sort: PostSort | Literal["new", "popular"] = "new",
    **kwargs,
) -> tuple[Pagination, list[Post]]

Посты на стене пользователя (включая его собственные).

PARAMETER DESCRIPTION
cursor

курсор следующей страницы (из предыдущего ответа)

TYPE: str | None DEFAULT: None

limit

максимальное количество постов (1 <= limit <= 50)

TYPE: int DEFAULT: 20

sort

сортировка ("new" или "popular")

TYPE: PostSort | Literal['new', 'popular'] DEFAULT: 'new'

RETURNS DESCRIPTION
tuple[Pagination, list[Post]]

Кортеж (пагинация, список постов)

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

пользователь не найден

UserBlockedError

пользователь заблокирован

get_liked_posts

get_liked_posts(
    cursor: str | None = None,
    limit: int = 20,
    sort: PostSort | Literal["new", "popular"] = "new",
    **kwargs,
) -> tuple[Pagination, list[Post]]

Посты, которые лайкнул пользователь.

PARAMETER DESCRIPTION
cursor

курсор следующей страницы

TYPE: str | None DEFAULT: None

limit

максимальное количество постов (1 <= limit <= 50)

TYPE: int DEFAULT: 20

sort

сортировка ("new" или "popular")

TYPE: PostSort | Literal['new', 'popular'] DEFAULT: 'new'

RETURNS DESCRIPTION
tuple[Pagination, list[Post]]

Кортеж (пагинация, список постов)

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

пользователь не найден

UserBlockedError

пользователь заблокирован

get_wall_posts

get_wall_posts(
    cursor: str | None = None,
    limit: int = 20,
    sort: PostSort | Literal["new", "popular"] = "new",
    **kwargs,
) -> tuple[Pagination, list[Post]]

Посты на стене пользователя, сделанные другими пользователями.

PARAMETER DESCRIPTION
cursor

курсор следующей страницы

TYPE: str | None DEFAULT: None

limit

максимальное количество постов (1 <= limit <= 50)

TYPE: int DEFAULT: 20

sort

сортировка ("new" или "popular")

TYPE: PostSort | Literal['new', 'popular'] DEFAULT: 'new'

RETURNS DESCRIPTION
tuple[Pagination, list[Post]]

Кортеж (пагинация, список постов)

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

пользователь не найден

UserBlockedError

пользователь заблокирован

get_is_following

get_is_following(**kwargs) -> bool

Проверить, подписан ли текущий клиент на этого пользователя.

Требуется, чтобы у пользователя был указан id (UUID).

RETURNS DESCRIPTION
bool

Подписан ли

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

report

report(
    reason: Reason
    | Literal[
        "spam",
        "violence",
        "hate",
        "adult",
        "misinfo",
        "other",
    ] = "other",
    description: str = "",
    **kwargs,
) -> Report

Написать донос на пользователя.

Требуется, чтобы у пользователя был указан id (UUID).

PARAMETER DESCRIPTION
reason

причина

TYPE: Reason | Literal['spam', 'violence', 'hate', 'adult', 'misinfo', 'other'] DEFAULT: 'other'

description

текст репорта

TYPE: str DEFAULT: ''

RETURNS DESCRIPTION
Report

Донос

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

ValidationError

не найден пост, пользователь или комментарий по target_id

ValidationError

нельзя отправить жалобу на один и тот же контент

create_post

create_post(
    content: str = "",
    attachment_ids: list[Union[UUID, str, FileRef]]
    | None = None,
    multiple_choice: bool = False,
    question: str | None = None,
    options: list[str] | None = None,
    spans: list[
        Monospace
        | Strike
        | Underline
        | Bold
        | Italic
        | Spoiler
        | Link
    ]
    | None = None,
    **kwargs,
) -> Post

Создать пост на стене пользователя.

Требуется, чтобы у пользователя был указан id (UUID).

PARAMETER DESCRIPTION
content

Текст поста

TYPE: str DEFAULT: ''

attachment_ids

Прикреплённые файлы (список UUID, можно передавать строки, а также FileRef)

TYPE: list[Union[UUID, str, FileRef]] | None DEFAULT: None

multiple_choice

Возможен ли множественный выбор в опросе

TYPE: bool DEFAULT: False

question

Заголовок опроса

TYPE: str | None DEFAULT: None

options

Варианты ответов (список строк)

TYPE: list[str] | None DEFAULT: None

spans

Форматирование текста (список объектов форматирования)

TYPE: list[Monospace | Strike | Underline | Bold | Italic | Spoiler | Link] | None DEFAULT: None

RETURNS DESCRIPTION
Post

Созданный пост

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

ValidationError

Нельзя создать пост content="", attachment_ids=[], question=None

ParamsValidationError

len(content) <= 1_000

VideoRequiresVerificationError

Загрузка видео доступна только верифицированным пользователям

ValidationError

len(attachments_ids) <= 10

ForbiddenError

Некоторые файлы из attachment_ids не существуют

ParamsValidationError

len(spans) <= 100

ValidationError

1 <= len(question) <= 128

ValidationError

2 <= len(options) <= 10

ValidationError

1 <= len(options[i]) <= 32

ParamsValidationError

span[i].offset >= 0

ParamsValidationError

span[i].length > 0

ParamsValidationError

len(span[i].url) <= 2048

CreateUserResponse

CreateUserResponse(
    username_or_id: UUID | str | None = None,
    client: Optional[AsyncITDClient] = None,
    **data,
)

Bases: UserWithAvatar

created_at

created_at: ITDDatetime

id

id: UUID

username

username: str | None

client

client: Optional[AsyncITDClient] = None

display_name

display_name: str

avatar

avatar: str

follow

follow(**kwargs) -> int

Подписаться на пользователя.

RETURNS DESCRIPTION
int

Количество подписчиков пользователя

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

Пользователь не найден

ConflictError

Вы уже подписаны на этого пользователя

ValidationError

Нельзя подписаться на себя

UserBlockedError

пользователь заблокирован

unfollow

unfollow(**kwargs) -> int

Отписаться от пользователя.

RETURNS DESCRIPTION
int

Количество подписчиков пользователя

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

Пользователь не найден

get_followers

get_followers(
    page: int = 1, limit: int = 30, **kwargs
) -> tuple[PagePagination, list[UserWithFollowing]]

Получить подписчиков пользователя.

PARAMETER DESCRIPTION
page

страница (page >= 1)

TYPE: int DEFAULT: 1

limit

максимальное количество пользователей на странице (1 <= limit <= 100)

TYPE: int DEFAULT: 30

RETURNS DESCRIPTION
tuple[PagePagination, list[UserWithFollowing]]

Кортеж (пагинация, список пользователей)

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

Пользователь не найден

UserBlockedError

пользователь заблокирован

get_following

get_following(
    page: int = 1, limit: int = 30, **kwargs
) -> tuple[PagePagination, list[UserWithFollowing]]

Получить подписки пользователя.

PARAMETER DESCRIPTION
page

страница (page >= 1)

TYPE: int DEFAULT: 1

limit

максимальное количество пользователей на странице (1 <= limit <= 100)

TYPE: int DEFAULT: 30

RETURNS DESCRIPTION
tuple[PagePagination, list[UserWithFollowing]]

Кортеж (пагинация, список пользователей)

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

Пользователь не найден

UserBlockedError

пользователь заблокирован

block

block(**kwargs) -> None

Заблокировать пользователя.

RAISES DESCRIPTION
UnauthorizedError

неверный access токен

NotFoundError

пользователь не найден

ConflictError

пользователь уже заблокирован

ValidationError

нельзя заблокировать себя

unblock

unblock(**kwargs) -> None

Разблокировать пользователя.

RAISES DESCRIPTION
UnauthorizedError

неверный access токен

NotFoundError

пользователь не найден

ConflictError

пользователь не заблокирован

get_full

get_full(
    **kwargs,
) -> Union[
    FullUser, UserBlockedByMe, UserBlockMe, PrivateUser
]

Получить полные данные пользователя.

RETURNS DESCRIPTION
Union[FullUser, UserBlockedByMe, UserBlockMe, PrivateUser]

Данные пользователя в зависимости от статуса (полный профиль, заблокирован, приватный и т.д.)

RAISES DESCRIPTION
UnauthorizedError

необходима авторизация

NotFoundError

пользователь не найден

UserBlockedError

пользователь заблокирован

get_posts

get_posts(
    cursor: str | None = None,
    limit: int = 20,
    sort: PostSort | Literal["new", "popular"] = "new",
    **kwargs,
) -> tuple[Pagination, list[Post]]

Посты на стене пользователя (включая его собственные).

PARAMETER DESCRIPTION
cursor

курсор следующей страницы (из предыдущего ответа)

TYPE: str | None DEFAULT: None

limit

максимальное количество постов (1 <= limit <= 50)

TYPE: int DEFAULT: 20

sort

сортировка ("new" или "popular")

TYPE: PostSort | Literal['new', 'popular'] DEFAULT: 'new'

RETURNS DESCRIPTION
tuple[Pagination, list[Post]]

Кортеж (пагинация, список постов)

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

пользователь не найден

UserBlockedError

пользователь заблокирован

get_liked_posts

get_liked_posts(
    cursor: str | None = None,
    limit: int = 20,
    sort: PostSort | Literal["new", "popular"] = "new",
    **kwargs,
) -> tuple[Pagination, list[Post]]

Посты, которые лайкнул пользователь.

PARAMETER DESCRIPTION
cursor

курсор следующей страницы

TYPE: str | None DEFAULT: None

limit

максимальное количество постов (1 <= limit <= 50)

TYPE: int DEFAULT: 20

sort

сортировка ("new" или "popular")

TYPE: PostSort | Literal['new', 'popular'] DEFAULT: 'new'

RETURNS DESCRIPTION
tuple[Pagination, list[Post]]

Кортеж (пагинация, список постов)

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

пользователь не найден

UserBlockedError

пользователь заблокирован

get_wall_posts

get_wall_posts(
    cursor: str | None = None,
    limit: int = 20,
    sort: PostSort | Literal["new", "popular"] = "new",
    **kwargs,
) -> tuple[Pagination, list[Post]]

Посты на стене пользователя, сделанные другими пользователями.

PARAMETER DESCRIPTION
cursor

курсор следующей страницы

TYPE: str | None DEFAULT: None

limit

максимальное количество постов (1 <= limit <= 50)

TYPE: int DEFAULT: 20

sort

сортировка ("new" или "popular")

TYPE: PostSort | Literal['new', 'popular'] DEFAULT: 'new'

RETURNS DESCRIPTION
tuple[Pagination, list[Post]]

Кортеж (пагинация, список постов)

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

пользователь не найден

UserBlockedError

пользователь заблокирован

get_is_following

get_is_following(**kwargs) -> bool

Проверить, подписан ли текущий клиент на этого пользователя.

Требуется, чтобы у пользователя был указан id (UUID).

RETURNS DESCRIPTION
bool

Подписан ли

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

report

report(
    reason: Reason
    | Literal[
        "spam",
        "violence",
        "hate",
        "adult",
        "misinfo",
        "other",
    ] = "other",
    description: str = "",
    **kwargs,
) -> Report

Написать донос на пользователя.

Требуется, чтобы у пользователя был указан id (UUID).

PARAMETER DESCRIPTION
reason

причина

TYPE: Reason | Literal['spam', 'violence', 'hate', 'adult', 'misinfo', 'other'] DEFAULT: 'other'

description

текст репорта

TYPE: str DEFAULT: ''

RETURNS DESCRIPTION
Report

Донос

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

ValidationError

не найден пост, пользователь или комментарий по target_id

ValidationError

нельзя отправить жалобу на один и тот же контент

create_post

create_post(
    content: str = "",
    attachment_ids: list[Union[UUID, str, FileRef]]
    | None = None,
    multiple_choice: bool = False,
    question: str | None = None,
    options: list[str] | None = None,
    spans: list[
        Monospace
        | Strike
        | Underline
        | Bold
        | Italic
        | Spoiler
        | Link
    ]
    | None = None,
    **kwargs,
) -> Post

Создать пост на стене пользователя.

Требуется, чтобы у пользователя был указан id (UUID).

PARAMETER DESCRIPTION
content

Текст поста

TYPE: str DEFAULT: ''

attachment_ids

Прикреплённые файлы (список UUID, можно передавать строки, а также FileRef)

TYPE: list[Union[UUID, str, FileRef]] | None DEFAULT: None

multiple_choice

Возможен ли множественный выбор в опросе

TYPE: bool DEFAULT: False

question

Заголовок опроса

TYPE: str | None DEFAULT: None

options

Варианты ответов (список строк)

TYPE: list[str] | None DEFAULT: None

spans

Форматирование текста (список объектов форматирования)

TYPE: list[Monospace | Strike | Underline | Bold | Italic | Spoiler | Link] | None DEFAULT: None

RETURNS DESCRIPTION
Post

Созданный пост

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

ValidationError

Нельзя создать пост content="", attachment_ids=[], question=None

ParamsValidationError

len(content) <= 1_000

VideoRequiresVerificationError

Загрузка видео доступна только верифицированным пользователям

ValidationError

len(attachments_ids) <= 10

ForbiddenError

Некоторые файлы из attachment_ids не существуют

ParamsValidationError

len(spans) <= 100

ValidationError

1 <= len(question) <= 128

ValidationError

2 <= len(options) <= 10

ValidationError

1 <= len(options[i]) <= 32

ParamsValidationError

span[i].offset >= 0

ParamsValidationError

span[i].length > 0

ParamsValidationError

len(span[i].url) <= 2048

BlockedAuthor

BlockedAuthor(
    username_or_id: UUID | str | None = None,
    client: Optional[AsyncITDClient] = None,
    **data,
)

Bases: UserWithVerified

blocked_at

blocked_at: ITDDatetime

id

id: UUID

username

username: str | None

client

client: Optional[AsyncITDClient] = None

display_name

display_name: str

avatar

avatar: str

verified

verified: bool

follow

follow(**kwargs) -> int

Подписаться на пользователя.

RETURNS DESCRIPTION
int

Количество подписчиков пользователя

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

Пользователь не найден

ConflictError

Вы уже подписаны на этого пользователя

ValidationError

Нельзя подписаться на себя

UserBlockedError

пользователь заблокирован

unfollow

unfollow(**kwargs) -> int

Отписаться от пользователя.

RETURNS DESCRIPTION
int

Количество подписчиков пользователя

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

Пользователь не найден

get_followers

get_followers(
    page: int = 1, limit: int = 30, **kwargs
) -> tuple[PagePagination, list[UserWithFollowing]]

Получить подписчиков пользователя.

PARAMETER DESCRIPTION
page

страница (page >= 1)

TYPE: int DEFAULT: 1

limit

максимальное количество пользователей на странице (1 <= limit <= 100)

TYPE: int DEFAULT: 30

RETURNS DESCRIPTION
tuple[PagePagination, list[UserWithFollowing]]

Кортеж (пагинация, список пользователей)

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

Пользователь не найден

UserBlockedError

пользователь заблокирован

get_following

get_following(
    page: int = 1, limit: int = 30, **kwargs
) -> tuple[PagePagination, list[UserWithFollowing]]

Получить подписки пользователя.

PARAMETER DESCRIPTION
page

страница (page >= 1)

TYPE: int DEFAULT: 1

limit

максимальное количество пользователей на странице (1 <= limit <= 100)

TYPE: int DEFAULT: 30

RETURNS DESCRIPTION
tuple[PagePagination, list[UserWithFollowing]]

Кортеж (пагинация, список пользователей)

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

Пользователь не найден

UserBlockedError

пользователь заблокирован

block

block(**kwargs) -> None

Заблокировать пользователя.

RAISES DESCRIPTION
UnauthorizedError

неверный access токен

NotFoundError

пользователь не найден

ConflictError

пользователь уже заблокирован

ValidationError

нельзя заблокировать себя

unblock

unblock(**kwargs) -> None

Разблокировать пользователя.

RAISES DESCRIPTION
UnauthorizedError

неверный access токен

NotFoundError

пользователь не найден

ConflictError

пользователь не заблокирован

get_full

get_full(
    **kwargs,
) -> Union[
    FullUser, UserBlockedByMe, UserBlockMe, PrivateUser
]

Получить полные данные пользователя.

RETURNS DESCRIPTION
Union[FullUser, UserBlockedByMe, UserBlockMe, PrivateUser]

Данные пользователя в зависимости от статуса (полный профиль, заблокирован, приватный и т.д.)

RAISES DESCRIPTION
UnauthorizedError

необходима авторизация

NotFoundError

пользователь не найден

UserBlockedError

пользователь заблокирован

get_posts

get_posts(
    cursor: str | None = None,
    limit: int = 20,
    sort: PostSort | Literal["new", "popular"] = "new",
    **kwargs,
) -> tuple[Pagination, list[Post]]

Посты на стене пользователя (включая его собственные).

PARAMETER DESCRIPTION
cursor

курсор следующей страницы (из предыдущего ответа)

TYPE: str | None DEFAULT: None

limit

максимальное количество постов (1 <= limit <= 50)

TYPE: int DEFAULT: 20

sort

сортировка ("new" или "popular")

TYPE: PostSort | Literal['new', 'popular'] DEFAULT: 'new'

RETURNS DESCRIPTION
tuple[Pagination, list[Post]]

Кортеж (пагинация, список постов)

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

пользователь не найден

UserBlockedError

пользователь заблокирован

get_liked_posts

get_liked_posts(
    cursor: str | None = None,
    limit: int = 20,
    sort: PostSort | Literal["new", "popular"] = "new",
    **kwargs,
) -> tuple[Pagination, list[Post]]

Посты, которые лайкнул пользователь.

PARAMETER DESCRIPTION
cursor

курсор следующей страницы

TYPE: str | None DEFAULT: None

limit

максимальное количество постов (1 <= limit <= 50)

TYPE: int DEFAULT: 20

sort

сортировка ("new" или "popular")

TYPE: PostSort | Literal['new', 'popular'] DEFAULT: 'new'

RETURNS DESCRIPTION
tuple[Pagination, list[Post]]

Кортеж (пагинация, список постов)

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

пользователь не найден

UserBlockedError

пользователь заблокирован

get_wall_posts

get_wall_posts(
    cursor: str | None = None,
    limit: int = 20,
    sort: PostSort | Literal["new", "popular"] = "new",
    **kwargs,
) -> tuple[Pagination, list[Post]]

Посты на стене пользователя, сделанные другими пользователями.

PARAMETER DESCRIPTION
cursor

курсор следующей страницы

TYPE: str | None DEFAULT: None

limit

максимальное количество постов (1 <= limit <= 50)

TYPE: int DEFAULT: 20

sort

сортировка ("new" или "popular")

TYPE: PostSort | Literal['new', 'popular'] DEFAULT: 'new'

RETURNS DESCRIPTION
tuple[Pagination, list[Post]]

Кортеж (пагинация, список постов)

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

пользователь не найден

UserBlockedError

пользователь заблокирован

get_is_following

get_is_following(**kwargs) -> bool

Проверить, подписан ли текущий клиент на этого пользователя.

Требуется, чтобы у пользователя был указан id (UUID).

RETURNS DESCRIPTION
bool

Подписан ли

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

report

report(
    reason: Reason
    | Literal[
        "spam",
        "violence",
        "hate",
        "adult",
        "misinfo",
        "other",
    ] = "other",
    description: str = "",
    **kwargs,
) -> Report

Написать донос на пользователя.

Требуется, чтобы у пользователя был указан id (UUID).

PARAMETER DESCRIPTION
reason

причина

TYPE: Reason | Literal['spam', 'violence', 'hate', 'adult', 'misinfo', 'other'] DEFAULT: 'other'

description

текст репорта

TYPE: str DEFAULT: ''

RETURNS DESCRIPTION
Report

Донос

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

ValidationError

не найден пост, пользователь или комментарий по target_id

ValidationError

нельзя отправить жалобу на один и тот же контент

create_post

create_post(
    content: str = "",
    attachment_ids: list[Union[UUID, str, FileRef]]
    | None = None,
    multiple_choice: bool = False,
    question: str | None = None,
    options: list[str] | None = None,
    spans: list[
        Monospace
        | Strike
        | Underline
        | Bold
        | Italic
        | Spoiler
        | Link
    ]
    | None = None,
    **kwargs,
) -> Post

Создать пост на стене пользователя.

Требуется, чтобы у пользователя был указан id (UUID).

PARAMETER DESCRIPTION
content

Текст поста

TYPE: str DEFAULT: ''

attachment_ids

Прикреплённые файлы (список UUID, можно передавать строки, а также FileRef)

TYPE: list[Union[UUID, str, FileRef]] | None DEFAULT: None

multiple_choice

Возможен ли множественный выбор в опросе

TYPE: bool DEFAULT: False

question

Заголовок опроса

TYPE: str | None DEFAULT: None

options

Варианты ответов (список строк)

TYPE: list[str] | None DEFAULT: None

spans

Форматирование текста (список объектов форматирования)

TYPE: list[Monospace | Strike | Underline | Bold | Italic | Spoiler | Link] | None DEFAULT: None

RETURNS DESCRIPTION
Post

Созданный пост

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

ValidationError

Нельзя создать пост content="", attachment_ids=[], question=None

ParamsValidationError

len(content) <= 1_000

VideoRequiresVerificationError

Загрузка видео доступна только верифицированным пользователям

ValidationError

len(attachments_ids) <= 10

ForbiddenError

Некоторые файлы из attachment_ids не существуют

ParamsValidationError

len(spans) <= 100

ValidationError

1 <= len(question) <= 128

ValidationError

2 <= len(options) <= 10

ValidationError

1 <= len(options[i]) <= 32

ParamsValidationError

span[i].offset >= 0

ParamsValidationError

span[i].length > 0

ParamsValidationError

len(span[i].url) <= 2048

Me

Me(
    username_or_id: UUID | str | None = None,
    client: Optional[AsyncITDClient] = None,
    **data,
)

Bases: UserStab

bio

bio: str | None

update_at

update_at: ITDDatetime

id

id: UUID

username

username: str | None

client

client: Optional[AsyncITDClient] = None

display_name

display_name: str

follow

follow(**kwargs) -> int

Подписаться на пользователя.

RETURNS DESCRIPTION
int

Количество подписчиков пользователя

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

Пользователь не найден

ConflictError

Вы уже подписаны на этого пользователя

ValidationError

Нельзя подписаться на себя

UserBlockedError

пользователь заблокирован

unfollow

unfollow(**kwargs) -> int

Отписаться от пользователя.

RETURNS DESCRIPTION
int

Количество подписчиков пользователя

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

Пользователь не найден

get_followers

get_followers(
    page: int = 1, limit: int = 30, **kwargs
) -> tuple[PagePagination, list[UserWithFollowing]]

Получить подписчиков пользователя.

PARAMETER DESCRIPTION
page

страница (page >= 1)

TYPE: int DEFAULT: 1

limit

максимальное количество пользователей на странице (1 <= limit <= 100)

TYPE: int DEFAULT: 30

RETURNS DESCRIPTION
tuple[PagePagination, list[UserWithFollowing]]

Кортеж (пагинация, список пользователей)

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

Пользователь не найден

UserBlockedError

пользователь заблокирован

get_following

get_following(
    page: int = 1, limit: int = 30, **kwargs
) -> tuple[PagePagination, list[UserWithFollowing]]

Получить подписки пользователя.

PARAMETER DESCRIPTION
page

страница (page >= 1)

TYPE: int DEFAULT: 1

limit

максимальное количество пользователей на странице (1 <= limit <= 100)

TYPE: int DEFAULT: 30

RETURNS DESCRIPTION
tuple[PagePagination, list[UserWithFollowing]]

Кортеж (пагинация, список пользователей)

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

Пользователь не найден

UserBlockedError

пользователь заблокирован

block

block(**kwargs) -> None

Заблокировать пользователя.

RAISES DESCRIPTION
UnauthorizedError

неверный access токен

NotFoundError

пользователь не найден

ConflictError

пользователь уже заблокирован

ValidationError

нельзя заблокировать себя

unblock

unblock(**kwargs) -> None

Разблокировать пользователя.

RAISES DESCRIPTION
UnauthorizedError

неверный access токен

NotFoundError

пользователь не найден

ConflictError

пользователь не заблокирован

get_full

get_full(
    **kwargs,
) -> Union[
    FullUser, UserBlockedByMe, UserBlockMe, PrivateUser
]

Получить полные данные пользователя.

RETURNS DESCRIPTION
Union[FullUser, UserBlockedByMe, UserBlockMe, PrivateUser]

Данные пользователя в зависимости от статуса (полный профиль, заблокирован, приватный и т.д.)

RAISES DESCRIPTION
UnauthorizedError

необходима авторизация

NotFoundError

пользователь не найден

UserBlockedError

пользователь заблокирован

get_posts

get_posts(
    cursor: str | None = None,
    limit: int = 20,
    sort: PostSort | Literal["new", "popular"] = "new",
    **kwargs,
) -> tuple[Pagination, list[Post]]

Посты на стене пользователя (включая его собственные).

PARAMETER DESCRIPTION
cursor

курсор следующей страницы (из предыдущего ответа)

TYPE: str | None DEFAULT: None

limit

максимальное количество постов (1 <= limit <= 50)

TYPE: int DEFAULT: 20

sort

сортировка ("new" или "popular")

TYPE: PostSort | Literal['new', 'popular'] DEFAULT: 'new'

RETURNS DESCRIPTION
tuple[Pagination, list[Post]]

Кортеж (пагинация, список постов)

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

пользователь не найден

UserBlockedError

пользователь заблокирован

get_liked_posts

get_liked_posts(
    cursor: str | None = None,
    limit: int = 20,
    sort: PostSort | Literal["new", "popular"] = "new",
    **kwargs,
) -> tuple[Pagination, list[Post]]

Посты, которые лайкнул пользователь.

PARAMETER DESCRIPTION
cursor

курсор следующей страницы

TYPE: str | None DEFAULT: None

limit

максимальное количество постов (1 <= limit <= 50)

TYPE: int DEFAULT: 20

sort

сортировка ("new" или "popular")

TYPE: PostSort | Literal['new', 'popular'] DEFAULT: 'new'

RETURNS DESCRIPTION
tuple[Pagination, list[Post]]

Кортеж (пагинация, список постов)

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

пользователь не найден

UserBlockedError

пользователь заблокирован

get_wall_posts

get_wall_posts(
    cursor: str | None = None,
    limit: int = 20,
    sort: PostSort | Literal["new", "popular"] = "new",
    **kwargs,
) -> tuple[Pagination, list[Post]]

Посты на стене пользователя, сделанные другими пользователями.

PARAMETER DESCRIPTION
cursor

курсор следующей страницы

TYPE: str | None DEFAULT: None

limit

максимальное количество постов (1 <= limit <= 50)

TYPE: int DEFAULT: 20

sort

сортировка ("new" или "popular")

TYPE: PostSort | Literal['new', 'popular'] DEFAULT: 'new'

RETURNS DESCRIPTION
tuple[Pagination, list[Post]]

Кортеж (пагинация, список постов)

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

пользователь не найден

UserBlockedError

пользователь заблокирован

get_is_following

get_is_following(**kwargs) -> bool

Проверить, подписан ли текущий клиент на этого пользователя.

Требуется, чтобы у пользователя был указан id (UUID).

RETURNS DESCRIPTION
bool

Подписан ли

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

report

report(
    reason: Reason
    | Literal[
        "spam",
        "violence",
        "hate",
        "adult",
        "misinfo",
        "other",
    ] = "other",
    description: str = "",
    **kwargs,
) -> Report

Написать донос на пользователя.

Требуется, чтобы у пользователя был указан id (UUID).

PARAMETER DESCRIPTION
reason

причина

TYPE: Reason | Literal['spam', 'violence', 'hate', 'adult', 'misinfo', 'other'] DEFAULT: 'other'

description

текст репорта

TYPE: str DEFAULT: ''

RETURNS DESCRIPTION
Report

Донос

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

ValidationError

не найден пост, пользователь или комментарий по target_id

ValidationError

нельзя отправить жалобу на один и тот же контент

create_post

create_post(
    content: str = "",
    attachment_ids: list[Union[UUID, str, FileRef]]
    | None = None,
    multiple_choice: bool = False,
    question: str | None = None,
    options: list[str] | None = None,
    spans: list[
        Monospace
        | Strike
        | Underline
        | Bold
        | Italic
        | Spoiler
        | Link
    ]
    | None = None,
    **kwargs,
) -> Post

Создать пост на стене пользователя.

Требуется, чтобы у пользователя был указан id (UUID).

PARAMETER DESCRIPTION
content

Текст поста

TYPE: str DEFAULT: ''

attachment_ids

Прикреплённые файлы (список UUID, можно передавать строки, а также FileRef)

TYPE: list[Union[UUID, str, FileRef]] | None DEFAULT: None

multiple_choice

Возможен ли множественный выбор в опросе

TYPE: bool DEFAULT: False

question

Заголовок опроса

TYPE: str | None DEFAULT: None

options

Варианты ответов (список строк)

TYPE: list[str] | None DEFAULT: None

spans

Форматирование текста (список объектов форматирования)

TYPE: list[Monospace | Strike | Underline | Bold | Italic | Spoiler | Link] | None DEFAULT: None

RETURNS DESCRIPTION
Post

Созданный пост

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

ValidationError

Нельзя создать пост content="", attachment_ids=[], question=None

ParamsValidationError

len(content) <= 1_000

VideoRequiresVerificationError

Загрузка видео доступна только верифицированным пользователям

ValidationError

len(attachments_ids) <= 10

ForbiddenError

Некоторые файлы из attachment_ids не существуют

ParamsValidationError

len(spans) <= 100

ValidationError

1 <= len(question) <= 128

ValidationError

2 <= len(options) <= 10

ValidationError

1 <= len(options[i]) <= 32

ParamsValidationError

span[i].offset >= 0

ParamsValidationError

span[i].length > 0

ParamsValidationError

len(span[i].url) <= 2048

UserBlockedByMe

UserBlockedByMe(
    username_or_id: UUID | str | None = None,
    client: Optional[AsyncITDClient] = None,
    **data,
)

Bases: UserWithPin

is_blocked_by_me

is_blocked_by_me: bool

last_seen

last_seen: None | LastSeen

online

online: bool

id

id: UUID

username

username: str | None

client

client: Optional[AsyncITDClient] = None

display_name

display_name: str

avatar

avatar: str

verified

verified: bool

pin

pin: Pin | None

Если пина нет в enum PinSlug, то будет None

follow

follow(**kwargs) -> int

Подписаться на пользователя.

RETURNS DESCRIPTION
int

Количество подписчиков пользователя

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

Пользователь не найден

ConflictError

Вы уже подписаны на этого пользователя

ValidationError

Нельзя подписаться на себя

UserBlockedError

пользователь заблокирован

unfollow

unfollow(**kwargs) -> int

Отписаться от пользователя.

RETURNS DESCRIPTION
int

Количество подписчиков пользователя

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

Пользователь не найден

get_followers

get_followers(
    page: int = 1, limit: int = 30, **kwargs
) -> tuple[PagePagination, list[UserWithFollowing]]

Получить подписчиков пользователя.

PARAMETER DESCRIPTION
page

страница (page >= 1)

TYPE: int DEFAULT: 1

limit

максимальное количество пользователей на странице (1 <= limit <= 100)

TYPE: int DEFAULT: 30

RETURNS DESCRIPTION
tuple[PagePagination, list[UserWithFollowing]]

Кортеж (пагинация, список пользователей)

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

Пользователь не найден

UserBlockedError

пользователь заблокирован

get_following

get_following(
    page: int = 1, limit: int = 30, **kwargs
) -> tuple[PagePagination, list[UserWithFollowing]]

Получить подписки пользователя.

PARAMETER DESCRIPTION
page

страница (page >= 1)

TYPE: int DEFAULT: 1

limit

максимальное количество пользователей на странице (1 <= limit <= 100)

TYPE: int DEFAULT: 30

RETURNS DESCRIPTION
tuple[PagePagination, list[UserWithFollowing]]

Кортеж (пагинация, список пользователей)

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

Пользователь не найден

UserBlockedError

пользователь заблокирован

block

block(**kwargs) -> None

Заблокировать пользователя.

RAISES DESCRIPTION
UnauthorizedError

неверный access токен

NotFoundError

пользователь не найден

ConflictError

пользователь уже заблокирован

ValidationError

нельзя заблокировать себя

unblock

unblock(**kwargs) -> None

Разблокировать пользователя.

RAISES DESCRIPTION
UnauthorizedError

неверный access токен

NotFoundError

пользователь не найден

ConflictError

пользователь не заблокирован

get_full

get_full(
    **kwargs,
) -> Union[
    FullUser, UserBlockedByMe, UserBlockMe, PrivateUser
]

Получить полные данные пользователя.

RETURNS DESCRIPTION
Union[FullUser, UserBlockedByMe, UserBlockMe, PrivateUser]

Данные пользователя в зависимости от статуса (полный профиль, заблокирован, приватный и т.д.)

RAISES DESCRIPTION
UnauthorizedError

необходима авторизация

NotFoundError

пользователь не найден

UserBlockedError

пользователь заблокирован

get_posts

get_posts(
    cursor: str | None = None,
    limit: int = 20,
    sort: PostSort | Literal["new", "popular"] = "new",
    **kwargs,
) -> tuple[Pagination, list[Post]]

Посты на стене пользователя (включая его собственные).

PARAMETER DESCRIPTION
cursor

курсор следующей страницы (из предыдущего ответа)

TYPE: str | None DEFAULT: None

limit

максимальное количество постов (1 <= limit <= 50)

TYPE: int DEFAULT: 20

sort

сортировка ("new" или "popular")

TYPE: PostSort | Literal['new', 'popular'] DEFAULT: 'new'

RETURNS DESCRIPTION
tuple[Pagination, list[Post]]

Кортеж (пагинация, список постов)

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

пользователь не найден

UserBlockedError

пользователь заблокирован

get_liked_posts

get_liked_posts(
    cursor: str | None = None,
    limit: int = 20,
    sort: PostSort | Literal["new", "popular"] = "new",
    **kwargs,
) -> tuple[Pagination, list[Post]]

Посты, которые лайкнул пользователь.

PARAMETER DESCRIPTION
cursor

курсор следующей страницы

TYPE: str | None DEFAULT: None

limit

максимальное количество постов (1 <= limit <= 50)

TYPE: int DEFAULT: 20

sort

сортировка ("new" или "popular")

TYPE: PostSort | Literal['new', 'popular'] DEFAULT: 'new'

RETURNS DESCRIPTION
tuple[Pagination, list[Post]]

Кортеж (пагинация, список постов)

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

пользователь не найден

UserBlockedError

пользователь заблокирован

get_wall_posts

get_wall_posts(
    cursor: str | None = None,
    limit: int = 20,
    sort: PostSort | Literal["new", "popular"] = "new",
    **kwargs,
) -> tuple[Pagination, list[Post]]

Посты на стене пользователя, сделанные другими пользователями.

PARAMETER DESCRIPTION
cursor

курсор следующей страницы

TYPE: str | None DEFAULT: None

limit

максимальное количество постов (1 <= limit <= 50)

TYPE: int DEFAULT: 20

sort

сортировка ("new" или "popular")

TYPE: PostSort | Literal['new', 'popular'] DEFAULT: 'new'

RETURNS DESCRIPTION
tuple[Pagination, list[Post]]

Кортеж (пагинация, список постов)

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

пользователь не найден

UserBlockedError

пользователь заблокирован

get_is_following

get_is_following(**kwargs) -> bool

Проверить, подписан ли текущий клиент на этого пользователя.

Требуется, чтобы у пользователя был указан id (UUID).

RETURNS DESCRIPTION
bool

Подписан ли

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

report

report(
    reason: Reason
    | Literal[
        "spam",
        "violence",
        "hate",
        "adult",
        "misinfo",
        "other",
    ] = "other",
    description: str = "",
    **kwargs,
) -> Report

Написать донос на пользователя.

Требуется, чтобы у пользователя был указан id (UUID).

PARAMETER DESCRIPTION
reason

причина

TYPE: Reason | Literal['spam', 'violence', 'hate', 'adult', 'misinfo', 'other'] DEFAULT: 'other'

description

текст репорта

TYPE: str DEFAULT: ''

RETURNS DESCRIPTION
Report

Донос

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

ValidationError

не найден пост, пользователь или комментарий по target_id

ValidationError

нельзя отправить жалобу на один и тот же контент

create_post

create_post(
    content: str = "",
    attachment_ids: list[Union[UUID, str, FileRef]]
    | None = None,
    multiple_choice: bool = False,
    question: str | None = None,
    options: list[str] | None = None,
    spans: list[
        Monospace
        | Strike
        | Underline
        | Bold
        | Italic
        | Spoiler
        | Link
    ]
    | None = None,
    **kwargs,
) -> Post

Создать пост на стене пользователя.

Требуется, чтобы у пользователя был указан id (UUID).

PARAMETER DESCRIPTION
content

Текст поста

TYPE: str DEFAULT: ''

attachment_ids

Прикреплённые файлы (список UUID, можно передавать строки, а также FileRef)

TYPE: list[Union[UUID, str, FileRef]] | None DEFAULT: None

multiple_choice

Возможен ли множественный выбор в опросе

TYPE: bool DEFAULT: False

question

Заголовок опроса

TYPE: str | None DEFAULT: None

options

Варианты ответов (список строк)

TYPE: list[str] | None DEFAULT: None

spans

Форматирование текста (список объектов форматирования)

TYPE: list[Monospace | Strike | Underline | Bold | Italic | Spoiler | Link] | None DEFAULT: None

RETURNS DESCRIPTION
Post

Созданный пост

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

ValidationError

Нельзя создать пост content="", attachment_ids=[], question=None

ParamsValidationError

len(content) <= 1_000

VideoRequiresVerificationError

Загрузка видео доступна только верифицированным пользователям

ValidationError

len(attachments_ids) <= 10

ForbiddenError

Некоторые файлы из attachment_ids не существуют

ParamsValidationError

len(spans) <= 100

ValidationError

1 <= len(question) <= 128

ValidationError

2 <= len(options) <= 10

ValidationError

1 <= len(options[i]) <= 32

ParamsValidationError

span[i].offset >= 0

ParamsValidationError

span[i].length > 0

ParamsValidationError

len(span[i].url) <= 2048

User

User(
    username_or_id: UUID | str | None = None,
    client: Optional[AsyncITDClient] = None,
    **data,
)

Bases: UserWithPin

wall_access

wall_access: Visibility

banner

banner: str | None

is_followed_by

is_followed_by: bool

is_following

is_following: bool

posts_count

posts_count: int

following_count

following_count: int

followers_count

followers_count: int

id

id: UUID

username

username: str | None

client

client: Optional[AsyncITDClient] = None

display_name

display_name: str

avatar

avatar: str

verified

verified: bool

pin

pin: Pin | None

Если пина нет в enum PinSlug, то будет None

follow

follow(**kwargs) -> int

Подписаться на пользователя.

RETURNS DESCRIPTION
int

Количество подписчиков пользователя

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

Пользователь не найден

ConflictError

Вы уже подписаны на этого пользователя

ValidationError

Нельзя подписаться на себя

UserBlockedError

пользователь заблокирован

unfollow

unfollow(**kwargs) -> int

Отписаться от пользователя.

RETURNS DESCRIPTION
int

Количество подписчиков пользователя

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

Пользователь не найден

get_followers

get_followers(
    page: int = 1, limit: int = 30, **kwargs
) -> tuple[PagePagination, list[UserWithFollowing]]

Получить подписчиков пользователя.

PARAMETER DESCRIPTION
page

страница (page >= 1)

TYPE: int DEFAULT: 1

limit

максимальное количество пользователей на странице (1 <= limit <= 100)

TYPE: int DEFAULT: 30

RETURNS DESCRIPTION
tuple[PagePagination, list[UserWithFollowing]]

Кортеж (пагинация, список пользователей)

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

Пользователь не найден

UserBlockedError

пользователь заблокирован

get_following

get_following(
    page: int = 1, limit: int = 30, **kwargs
) -> tuple[PagePagination, list[UserWithFollowing]]

Получить подписки пользователя.

PARAMETER DESCRIPTION
page

страница (page >= 1)

TYPE: int DEFAULT: 1

limit

максимальное количество пользователей на странице (1 <= limit <= 100)

TYPE: int DEFAULT: 30

RETURNS DESCRIPTION
tuple[PagePagination, list[UserWithFollowing]]

Кортеж (пагинация, список пользователей)

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

Пользователь не найден

UserBlockedError

пользователь заблокирован

block

block(**kwargs) -> None

Заблокировать пользователя.

RAISES DESCRIPTION
UnauthorizedError

неверный access токен

NotFoundError

пользователь не найден

ConflictError

пользователь уже заблокирован

ValidationError

нельзя заблокировать себя

unblock

unblock(**kwargs) -> None

Разблокировать пользователя.

RAISES DESCRIPTION
UnauthorizedError

неверный access токен

NotFoundError

пользователь не найден

ConflictError

пользователь не заблокирован

get_full

get_full(
    **kwargs,
) -> Union[
    FullUser, UserBlockedByMe, UserBlockMe, PrivateUser
]

Получить полные данные пользователя.

RETURNS DESCRIPTION
Union[FullUser, UserBlockedByMe, UserBlockMe, PrivateUser]

Данные пользователя в зависимости от статуса (полный профиль, заблокирован, приватный и т.д.)

RAISES DESCRIPTION
UnauthorizedError

необходима авторизация

NotFoundError

пользователь не найден

UserBlockedError

пользователь заблокирован

get_posts

get_posts(
    cursor: str | None = None,
    limit: int = 20,
    sort: PostSort | Literal["new", "popular"] = "new",
    **kwargs,
) -> tuple[Pagination, list[Post]]

Посты на стене пользователя (включая его собственные).

PARAMETER DESCRIPTION
cursor

курсор следующей страницы (из предыдущего ответа)

TYPE: str | None DEFAULT: None

limit

максимальное количество постов (1 <= limit <= 50)

TYPE: int DEFAULT: 20

sort

сортировка ("new" или "popular")

TYPE: PostSort | Literal['new', 'popular'] DEFAULT: 'new'

RETURNS DESCRIPTION
tuple[Pagination, list[Post]]

Кортеж (пагинация, список постов)

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

пользователь не найден

UserBlockedError

пользователь заблокирован

get_liked_posts

get_liked_posts(
    cursor: str | None = None,
    limit: int = 20,
    sort: PostSort | Literal["new", "popular"] = "new",
    **kwargs,
) -> tuple[Pagination, list[Post]]

Посты, которые лайкнул пользователь.

PARAMETER DESCRIPTION
cursor

курсор следующей страницы

TYPE: str | None DEFAULT: None

limit

максимальное количество постов (1 <= limit <= 50)

TYPE: int DEFAULT: 20

sort

сортировка ("new" или "popular")

TYPE: PostSort | Literal['new', 'popular'] DEFAULT: 'new'

RETURNS DESCRIPTION
tuple[Pagination, list[Post]]

Кортеж (пагинация, список постов)

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

пользователь не найден

UserBlockedError

пользователь заблокирован

get_wall_posts

get_wall_posts(
    cursor: str | None = None,
    limit: int = 20,
    sort: PostSort | Literal["new", "popular"] = "new",
    **kwargs,
) -> tuple[Pagination, list[Post]]

Посты на стене пользователя, сделанные другими пользователями.

PARAMETER DESCRIPTION
cursor

курсор следующей страницы

TYPE: str | None DEFAULT: None

limit

максимальное количество постов (1 <= limit <= 50)

TYPE: int DEFAULT: 20

sort

сортировка ("new" или "popular")

TYPE: PostSort | Literal['new', 'popular'] DEFAULT: 'new'

RETURNS DESCRIPTION
tuple[Pagination, list[Post]]

Кортеж (пагинация, список постов)

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

пользователь не найден

UserBlockedError

пользователь заблокирован

get_is_following

get_is_following(**kwargs) -> bool

Проверить, подписан ли текущий клиент на этого пользователя.

Требуется, чтобы у пользователя был указан id (UUID).

RETURNS DESCRIPTION
bool

Подписан ли

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

report

report(
    reason: Reason
    | Literal[
        "spam",
        "violence",
        "hate",
        "adult",
        "misinfo",
        "other",
    ] = "other",
    description: str = "",
    **kwargs,
) -> Report

Написать донос на пользователя.

Требуется, чтобы у пользователя был указан id (UUID).

PARAMETER DESCRIPTION
reason

причина

TYPE: Reason | Literal['spam', 'violence', 'hate', 'adult', 'misinfo', 'other'] DEFAULT: 'other'

description

текст репорта

TYPE: str DEFAULT: ''

RETURNS DESCRIPTION
Report

Донос

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

ValidationError

не найден пост, пользователь или комментарий по target_id

ValidationError

нельзя отправить жалобу на один и тот же контент

create_post

create_post(
    content: str = "",
    attachment_ids: list[Union[UUID, str, FileRef]]
    | None = None,
    multiple_choice: bool = False,
    question: str | None = None,
    options: list[str] | None = None,
    spans: list[
        Monospace
        | Strike
        | Underline
        | Bold
        | Italic
        | Spoiler
        | Link
    ]
    | None = None,
    **kwargs,
) -> Post

Создать пост на стене пользователя.

Требуется, чтобы у пользователя был указан id (UUID).

PARAMETER DESCRIPTION
content

Текст поста

TYPE: str DEFAULT: ''

attachment_ids

Прикреплённые файлы (список UUID, можно передавать строки, а также FileRef)

TYPE: list[Union[UUID, str, FileRef]] | None DEFAULT: None

multiple_choice

Возможен ли множественный выбор в опросе

TYPE: bool DEFAULT: False

question

Заголовок опроса

TYPE: str | None DEFAULT: None

options

Варианты ответов (список строк)

TYPE: list[str] | None DEFAULT: None

spans

Форматирование текста (список объектов форматирования)

TYPE: list[Monospace | Strike | Underline | Bold | Italic | Spoiler | Link] | None DEFAULT: None

RETURNS DESCRIPTION
Post

Созданный пост

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

ValidationError

Нельзя создать пост content="", attachment_ids=[], question=None

ParamsValidationError

len(content) <= 1_000

VideoRequiresVerificationError

Загрузка видео доступна только верифицированным пользователям

ValidationError

len(attachments_ids) <= 10

ForbiddenError

Некоторые файлы из attachment_ids не существуют

ParamsValidationError

len(spans) <= 100

ValidationError

1 <= len(question) <= 128

ValidationError

2 <= len(options) <= 10

ValidationError

1 <= len(options[i]) <= 32

ParamsValidationError

span[i].offset >= 0

ParamsValidationError

span[i].length > 0

ParamsValidationError

len(span[i].url) <= 2048

BaseFullUser

BaseFullUser(
    username_or_id: UUID | str | None = None,
    client: Optional[AsyncITDClient] = None,
    **data,
)

Bases: User

bio

bio: str | None

created_at

created_at: ITDDatetime

likes_visibility

likes_visibility: str

id

id: UUID

username

username: str | None

client

client: Optional[AsyncITDClient] = None

display_name

display_name: str

avatar

avatar: str

verified

verified: bool

pin

pin: Pin | None

Если пина нет в enum PinSlug, то будет None

wall_access

wall_access: Visibility

banner

banner: str | None

is_followed_by

is_followed_by: bool

is_following

is_following: bool

posts_count

posts_count: int

following_count

following_count: int

followers_count

followers_count: int

follow

follow(**kwargs) -> int

Подписаться на пользователя.

RETURNS DESCRIPTION
int

Количество подписчиков пользователя

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

Пользователь не найден

ConflictError

Вы уже подписаны на этого пользователя

ValidationError

Нельзя подписаться на себя

UserBlockedError

пользователь заблокирован

unfollow

unfollow(**kwargs) -> int

Отписаться от пользователя.

RETURNS DESCRIPTION
int

Количество подписчиков пользователя

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

Пользователь не найден

get_followers

get_followers(
    page: int = 1, limit: int = 30, **kwargs
) -> tuple[PagePagination, list[UserWithFollowing]]

Получить подписчиков пользователя.

PARAMETER DESCRIPTION
page

страница (page >= 1)

TYPE: int DEFAULT: 1

limit

максимальное количество пользователей на странице (1 <= limit <= 100)

TYPE: int DEFAULT: 30

RETURNS DESCRIPTION
tuple[PagePagination, list[UserWithFollowing]]

Кортеж (пагинация, список пользователей)

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

Пользователь не найден

UserBlockedError

пользователь заблокирован

get_following

get_following(
    page: int = 1, limit: int = 30, **kwargs
) -> tuple[PagePagination, list[UserWithFollowing]]

Получить подписки пользователя.

PARAMETER DESCRIPTION
page

страница (page >= 1)

TYPE: int DEFAULT: 1

limit

максимальное количество пользователей на странице (1 <= limit <= 100)

TYPE: int DEFAULT: 30

RETURNS DESCRIPTION
tuple[PagePagination, list[UserWithFollowing]]

Кортеж (пагинация, список пользователей)

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

Пользователь не найден

UserBlockedError

пользователь заблокирован

block

block(**kwargs) -> None

Заблокировать пользователя.

RAISES DESCRIPTION
UnauthorizedError

неверный access токен

NotFoundError

пользователь не найден

ConflictError

пользователь уже заблокирован

ValidationError

нельзя заблокировать себя

unblock

unblock(**kwargs) -> None

Разблокировать пользователя.

RAISES DESCRIPTION
UnauthorizedError

неверный access токен

NotFoundError

пользователь не найден

ConflictError

пользователь не заблокирован

get_full

get_full(
    **kwargs,
) -> Union[
    FullUser, UserBlockedByMe, UserBlockMe, PrivateUser
]

Получить полные данные пользователя.

RETURNS DESCRIPTION
Union[FullUser, UserBlockedByMe, UserBlockMe, PrivateUser]

Данные пользователя в зависимости от статуса (полный профиль, заблокирован, приватный и т.д.)

RAISES DESCRIPTION
UnauthorizedError

необходима авторизация

NotFoundError

пользователь не найден

UserBlockedError

пользователь заблокирован

get_posts

get_posts(
    cursor: str | None = None,
    limit: int = 20,
    sort: PostSort | Literal["new", "popular"] = "new",
    **kwargs,
) -> tuple[Pagination, list[Post]]

Посты на стене пользователя (включая его собственные).

PARAMETER DESCRIPTION
cursor

курсор следующей страницы (из предыдущего ответа)

TYPE: str | None DEFAULT: None

limit

максимальное количество постов (1 <= limit <= 50)

TYPE: int DEFAULT: 20

sort

сортировка ("new" или "popular")

TYPE: PostSort | Literal['new', 'popular'] DEFAULT: 'new'

RETURNS DESCRIPTION
tuple[Pagination, list[Post]]

Кортеж (пагинация, список постов)

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

пользователь не найден

UserBlockedError

пользователь заблокирован

get_liked_posts

get_liked_posts(
    cursor: str | None = None,
    limit: int = 20,
    sort: PostSort | Literal["new", "popular"] = "new",
    **kwargs,
) -> tuple[Pagination, list[Post]]

Посты, которые лайкнул пользователь.

PARAMETER DESCRIPTION
cursor

курсор следующей страницы

TYPE: str | None DEFAULT: None

limit

максимальное количество постов (1 <= limit <= 50)

TYPE: int DEFAULT: 20

sort

сортировка ("new" или "popular")

TYPE: PostSort | Literal['new', 'popular'] DEFAULT: 'new'

RETURNS DESCRIPTION
tuple[Pagination, list[Post]]

Кортеж (пагинация, список постов)

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

пользователь не найден

UserBlockedError

пользователь заблокирован

get_wall_posts

get_wall_posts(
    cursor: str | None = None,
    limit: int = 20,
    sort: PostSort | Literal["new", "popular"] = "new",
    **kwargs,
) -> tuple[Pagination, list[Post]]

Посты на стене пользователя, сделанные другими пользователями.

PARAMETER DESCRIPTION
cursor

курсор следующей страницы

TYPE: str | None DEFAULT: None

limit

максимальное количество постов (1 <= limit <= 50)

TYPE: int DEFAULT: 20

sort

сортировка ("new" или "popular")

TYPE: PostSort | Literal['new', 'popular'] DEFAULT: 'new'

RETURNS DESCRIPTION
tuple[Pagination, list[Post]]

Кортеж (пагинация, список постов)

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

пользователь не найден

UserBlockedError

пользователь заблокирован

get_is_following

get_is_following(**kwargs) -> bool

Проверить, подписан ли текущий клиент на этого пользователя.

Требуется, чтобы у пользователя был указан id (UUID).

RETURNS DESCRIPTION
bool

Подписан ли

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

report

report(
    reason: Reason
    | Literal[
        "spam",
        "violence",
        "hate",
        "adult",
        "misinfo",
        "other",
    ] = "other",
    description: str = "",
    **kwargs,
) -> Report

Написать донос на пользователя.

Требуется, чтобы у пользователя был указан id (UUID).

PARAMETER DESCRIPTION
reason

причина

TYPE: Reason | Literal['spam', 'violence', 'hate', 'adult', 'misinfo', 'other'] DEFAULT: 'other'

description

текст репорта

TYPE: str DEFAULT: ''

RETURNS DESCRIPTION
Report

Донос

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

ValidationError

не найден пост, пользователь или комментарий по target_id

ValidationError

нельзя отправить жалобу на один и тот же контент

create_post

create_post(
    content: str = "",
    attachment_ids: list[Union[UUID, str, FileRef]]
    | None = None,
    multiple_choice: bool = False,
    question: str | None = None,
    options: list[str] | None = None,
    spans: list[
        Monospace
        | Strike
        | Underline
        | Bold
        | Italic
        | Spoiler
        | Link
    ]
    | None = None,
    **kwargs,
) -> Post

Создать пост на стене пользователя.

Требуется, чтобы у пользователя был указан id (UUID).

PARAMETER DESCRIPTION
content

Текст поста

TYPE: str DEFAULT: ''

attachment_ids

Прикреплённые файлы (список UUID, можно передавать строки, а также FileRef)

TYPE: list[Union[UUID, str, FileRef]] | None DEFAULT: None

multiple_choice

Возможен ли множественный выбор в опросе

TYPE: bool DEFAULT: False

question

Заголовок опроса

TYPE: str | None DEFAULT: None

options

Варианты ответов (список строк)

TYPE: list[str] | None DEFAULT: None

spans

Форматирование текста (список объектов форматирования)

TYPE: list[Monospace | Strike | Underline | Bold | Italic | Spoiler | Link] | None DEFAULT: None

RETURNS DESCRIPTION
Post

Созданный пост

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

ValidationError

Нельзя создать пост content="", attachment_ids=[], question=None

ParamsValidationError

len(content) <= 1_000

VideoRequiresVerificationError

Загрузка видео доступна только верифицированным пользователям

ValidationError

len(attachments_ids) <= 10

ForbiddenError

Некоторые файлы из attachment_ids не существуют

ParamsValidationError

len(spans) <= 100

ValidationError

1 <= len(question) <= 128

ValidationError

2 <= len(options) <= 10

ValidationError

1 <= len(options[i]) <= 32

ParamsValidationError

span[i].offset >= 0

ParamsValidationError

span[i].length > 0

ParamsValidationError

len(span[i].url) <= 2048

FullMe

FullMe(
    username_or_id: UUID | str | None = None,
    client: Optional[AsyncITDClient] = None,
    **data,
)

Bases: BaseFullUser

is_private

is_private: bool

is_phone_verified

is_phone_verified: bool

id

id: UUID

username

username: str | None

client

client: Optional[AsyncITDClient] = None

display_name

display_name: str

avatar

avatar: str

verified

verified: bool

pin

pin: Pin | None

Если пина нет в enum PinSlug, то будет None

wall_access

wall_access: Visibility

banner

banner: str | None

is_followed_by

is_followed_by: bool

is_following

is_following: bool

posts_count

posts_count: int

following_count

following_count: int

followers_count

followers_count: int

bio

bio: str | None

created_at

created_at: ITDDatetime

likes_visibility

likes_visibility: str

follow

follow(**kwargs) -> int

Подписаться на пользователя.

RETURNS DESCRIPTION
int

Количество подписчиков пользователя

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

Пользователь не найден

ConflictError

Вы уже подписаны на этого пользователя

ValidationError

Нельзя подписаться на себя

UserBlockedError

пользователь заблокирован

unfollow

unfollow(**kwargs) -> int

Отписаться от пользователя.

RETURNS DESCRIPTION
int

Количество подписчиков пользователя

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

Пользователь не найден

get_followers

get_followers(
    page: int = 1, limit: int = 30, **kwargs
) -> tuple[PagePagination, list[UserWithFollowing]]

Получить подписчиков пользователя.

PARAMETER DESCRIPTION
page

страница (page >= 1)

TYPE: int DEFAULT: 1

limit

максимальное количество пользователей на странице (1 <= limit <= 100)

TYPE: int DEFAULT: 30

RETURNS DESCRIPTION
tuple[PagePagination, list[UserWithFollowing]]

Кортеж (пагинация, список пользователей)

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

Пользователь не найден

UserBlockedError

пользователь заблокирован

get_following

get_following(
    page: int = 1, limit: int = 30, **kwargs
) -> tuple[PagePagination, list[UserWithFollowing]]

Получить подписки пользователя.

PARAMETER DESCRIPTION
page

страница (page >= 1)

TYPE: int DEFAULT: 1

limit

максимальное количество пользователей на странице (1 <= limit <= 100)

TYPE: int DEFAULT: 30

RETURNS DESCRIPTION
tuple[PagePagination, list[UserWithFollowing]]

Кортеж (пагинация, список пользователей)

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

Пользователь не найден

UserBlockedError

пользователь заблокирован

block

block(**kwargs) -> None

Заблокировать пользователя.

RAISES DESCRIPTION
UnauthorizedError

неверный access токен

NotFoundError

пользователь не найден

ConflictError

пользователь уже заблокирован

ValidationError

нельзя заблокировать себя

unblock

unblock(**kwargs) -> None

Разблокировать пользователя.

RAISES DESCRIPTION
UnauthorizedError

неверный access токен

NotFoundError

пользователь не найден

ConflictError

пользователь не заблокирован

get_full

get_full(
    **kwargs,
) -> Union[
    FullUser, UserBlockedByMe, UserBlockMe, PrivateUser
]

Получить полные данные пользователя.

RETURNS DESCRIPTION
Union[FullUser, UserBlockedByMe, UserBlockMe, PrivateUser]

Данные пользователя в зависимости от статуса (полный профиль, заблокирован, приватный и т.д.)

RAISES DESCRIPTION
UnauthorizedError

необходима авторизация

NotFoundError

пользователь не найден

UserBlockedError

пользователь заблокирован

get_posts

get_posts(
    cursor: str | None = None,
    limit: int = 20,
    sort: PostSort | Literal["new", "popular"] = "new",
    **kwargs,
) -> tuple[Pagination, list[Post]]

Посты на стене пользователя (включая его собственные).

PARAMETER DESCRIPTION
cursor

курсор следующей страницы (из предыдущего ответа)

TYPE: str | None DEFAULT: None

limit

максимальное количество постов (1 <= limit <= 50)

TYPE: int DEFAULT: 20

sort

сортировка ("new" или "popular")

TYPE: PostSort | Literal['new', 'popular'] DEFAULT: 'new'

RETURNS DESCRIPTION
tuple[Pagination, list[Post]]

Кортеж (пагинация, список постов)

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

пользователь не найден

UserBlockedError

пользователь заблокирован

get_liked_posts

get_liked_posts(
    cursor: str | None = None,
    limit: int = 20,
    sort: PostSort | Literal["new", "popular"] = "new",
    **kwargs,
) -> tuple[Pagination, list[Post]]

Посты, которые лайкнул пользователь.

PARAMETER DESCRIPTION
cursor

курсор следующей страницы

TYPE: str | None DEFAULT: None

limit

максимальное количество постов (1 <= limit <= 50)

TYPE: int DEFAULT: 20

sort

сортировка ("new" или "popular")

TYPE: PostSort | Literal['new', 'popular'] DEFAULT: 'new'

RETURNS DESCRIPTION
tuple[Pagination, list[Post]]

Кортеж (пагинация, список постов)

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

пользователь не найден

UserBlockedError

пользователь заблокирован

get_wall_posts

get_wall_posts(
    cursor: str | None = None,
    limit: int = 20,
    sort: PostSort | Literal["new", "popular"] = "new",
    **kwargs,
) -> tuple[Pagination, list[Post]]

Посты на стене пользователя, сделанные другими пользователями.

PARAMETER DESCRIPTION
cursor

курсор следующей страницы

TYPE: str | None DEFAULT: None

limit

максимальное количество постов (1 <= limit <= 50)

TYPE: int DEFAULT: 20

sort

сортировка ("new" или "popular")

TYPE: PostSort | Literal['new', 'popular'] DEFAULT: 'new'

RETURNS DESCRIPTION
tuple[Pagination, list[Post]]

Кортеж (пагинация, список постов)

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

пользователь не найден

UserBlockedError

пользователь заблокирован

get_is_following

get_is_following(**kwargs) -> bool

Проверить, подписан ли текущий клиент на этого пользователя.

Требуется, чтобы у пользователя был указан id (UUID).

RETURNS DESCRIPTION
bool

Подписан ли

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

report

report(
    reason: Reason
    | Literal[
        "spam",
        "violence",
        "hate",
        "adult",
        "misinfo",
        "other",
    ] = "other",
    description: str = "",
    **kwargs,
) -> Report

Написать донос на пользователя.

Требуется, чтобы у пользователя был указан id (UUID).

PARAMETER DESCRIPTION
reason

причина

TYPE: Reason | Literal['spam', 'violence', 'hate', 'adult', 'misinfo', 'other'] DEFAULT: 'other'

description

текст репорта

TYPE: str DEFAULT: ''

RETURNS DESCRIPTION
Report

Донос

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

ValidationError

не найден пост, пользователь или комментарий по target_id

ValidationError

нельзя отправить жалобу на один и тот же контент

create_post

create_post(
    content: str = "",
    attachment_ids: list[Union[UUID, str, FileRef]]
    | None = None,
    multiple_choice: bool = False,
    question: str | None = None,
    options: list[str] | None = None,
    spans: list[
        Monospace
        | Strike
        | Underline
        | Bold
        | Italic
        | Spoiler
        | Link
    ]
    | None = None,
    **kwargs,
) -> Post

Создать пост на стене пользователя.

Требуется, чтобы у пользователя был указан id (UUID).

PARAMETER DESCRIPTION
content

Текст поста

TYPE: str DEFAULT: ''

attachment_ids

Прикреплённые файлы (список UUID, можно передавать строки, а также FileRef)

TYPE: list[Union[UUID, str, FileRef]] | None DEFAULT: None

multiple_choice

Возможен ли множественный выбор в опросе

TYPE: bool DEFAULT: False

question

Заголовок опроса

TYPE: str | None DEFAULT: None

options

Варианты ответов (список строк)

TYPE: list[str] | None DEFAULT: None

spans

Форматирование текста (список объектов форматирования)

TYPE: list[Monospace | Strike | Underline | Bold | Italic | Spoiler | Link] | None DEFAULT: None

RETURNS DESCRIPTION
Post

Созданный пост

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

ValidationError

Нельзя создать пост content="", attachment_ids=[], question=None

ParamsValidationError

len(content) <= 1_000

VideoRequiresVerificationError

Загрузка видео доступна только верифицированным пользователям

ValidationError

len(attachments_ids) <= 10

ForbiddenError

Некоторые файлы из attachment_ids не существуют

ParamsValidationError

len(spans) <= 100

ValidationError

1 <= len(question) <= 128

ValidationError

2 <= len(options) <= 10

ValidationError

1 <= len(options[i]) <= 32

ParamsValidationError

span[i].offset >= 0

ParamsValidationError

span[i].length > 0

ParamsValidationError

len(span[i].url) <= 2048

LastSeenMixin

LastSeenMixin(
    username_or_id: UUID | str | None = None,
    client: Optional[AsyncITDClient] = None,
    **data,
)

Bases: User

pinned_post_id

pinned_post_id: UUID | None

last_seen

last_seen: None | LastSeen

online

online: bool

id

id: UUID

username

username: str | None

client

client: Optional[AsyncITDClient] = None

display_name

display_name: str

avatar

avatar: str

verified

verified: bool

pin

pin: Pin | None

Если пина нет в enum PinSlug, то будет None

wall_access

wall_access: Visibility

banner

banner: str | None

is_followed_by

is_followed_by: bool

is_following

is_following: bool

posts_count

posts_count: int

following_count

following_count: int

followers_count

followers_count: int

follow

follow(**kwargs) -> int

Подписаться на пользователя.

RETURNS DESCRIPTION
int

Количество подписчиков пользователя

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

Пользователь не найден

ConflictError

Вы уже подписаны на этого пользователя

ValidationError

Нельзя подписаться на себя

UserBlockedError

пользователь заблокирован

unfollow

unfollow(**kwargs) -> int

Отписаться от пользователя.

RETURNS DESCRIPTION
int

Количество подписчиков пользователя

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

Пользователь не найден

get_followers

get_followers(
    page: int = 1, limit: int = 30, **kwargs
) -> tuple[PagePagination, list[UserWithFollowing]]

Получить подписчиков пользователя.

PARAMETER DESCRIPTION
page

страница (page >= 1)

TYPE: int DEFAULT: 1

limit

максимальное количество пользователей на странице (1 <= limit <= 100)

TYPE: int DEFAULT: 30

RETURNS DESCRIPTION
tuple[PagePagination, list[UserWithFollowing]]

Кортеж (пагинация, список пользователей)

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

Пользователь не найден

UserBlockedError

пользователь заблокирован

get_following

get_following(
    page: int = 1, limit: int = 30, **kwargs
) -> tuple[PagePagination, list[UserWithFollowing]]

Получить подписки пользователя.

PARAMETER DESCRIPTION
page

страница (page >= 1)

TYPE: int DEFAULT: 1

limit

максимальное количество пользователей на странице (1 <= limit <= 100)

TYPE: int DEFAULT: 30

RETURNS DESCRIPTION
tuple[PagePagination, list[UserWithFollowing]]

Кортеж (пагинация, список пользователей)

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

Пользователь не найден

UserBlockedError

пользователь заблокирован

block

block(**kwargs) -> None

Заблокировать пользователя.

RAISES DESCRIPTION
UnauthorizedError

неверный access токен

NotFoundError

пользователь не найден

ConflictError

пользователь уже заблокирован

ValidationError

нельзя заблокировать себя

unblock

unblock(**kwargs) -> None

Разблокировать пользователя.

RAISES DESCRIPTION
UnauthorizedError

неверный access токен

NotFoundError

пользователь не найден

ConflictError

пользователь не заблокирован

get_full

get_full(
    **kwargs,
) -> Union[
    FullUser, UserBlockedByMe, UserBlockMe, PrivateUser
]

Получить полные данные пользователя.

RETURNS DESCRIPTION
Union[FullUser, UserBlockedByMe, UserBlockMe, PrivateUser]

Данные пользователя в зависимости от статуса (полный профиль, заблокирован, приватный и т.д.)

RAISES DESCRIPTION
UnauthorizedError

необходима авторизация

NotFoundError

пользователь не найден

UserBlockedError

пользователь заблокирован

get_posts

get_posts(
    cursor: str | None = None,
    limit: int = 20,
    sort: PostSort | Literal["new", "popular"] = "new",
    **kwargs,
) -> tuple[Pagination, list[Post]]

Посты на стене пользователя (включая его собственные).

PARAMETER DESCRIPTION
cursor

курсор следующей страницы (из предыдущего ответа)

TYPE: str | None DEFAULT: None

limit

максимальное количество постов (1 <= limit <= 50)

TYPE: int DEFAULT: 20

sort

сортировка ("new" или "popular")

TYPE: PostSort | Literal['new', 'popular'] DEFAULT: 'new'

RETURNS DESCRIPTION
tuple[Pagination, list[Post]]

Кортеж (пагинация, список постов)

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

пользователь не найден

UserBlockedError

пользователь заблокирован

get_liked_posts

get_liked_posts(
    cursor: str | None = None,
    limit: int = 20,
    sort: PostSort | Literal["new", "popular"] = "new",
    **kwargs,
) -> tuple[Pagination, list[Post]]

Посты, которые лайкнул пользователь.

PARAMETER DESCRIPTION
cursor

курсор следующей страницы

TYPE: str | None DEFAULT: None

limit

максимальное количество постов (1 <= limit <= 50)

TYPE: int DEFAULT: 20

sort

сортировка ("new" или "popular")

TYPE: PostSort | Literal['new', 'popular'] DEFAULT: 'new'

RETURNS DESCRIPTION
tuple[Pagination, list[Post]]

Кортеж (пагинация, список постов)

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

пользователь не найден

UserBlockedError

пользователь заблокирован

get_wall_posts

get_wall_posts(
    cursor: str | None = None,
    limit: int = 20,
    sort: PostSort | Literal["new", "popular"] = "new",
    **kwargs,
) -> tuple[Pagination, list[Post]]

Посты на стене пользователя, сделанные другими пользователями.

PARAMETER DESCRIPTION
cursor

курсор следующей страницы

TYPE: str | None DEFAULT: None

limit

максимальное количество постов (1 <= limit <= 50)

TYPE: int DEFAULT: 20

sort

сортировка ("new" или "popular")

TYPE: PostSort | Literal['new', 'popular'] DEFAULT: 'new'

RETURNS DESCRIPTION
tuple[Pagination, list[Post]]

Кортеж (пагинация, список постов)

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

пользователь не найден

UserBlockedError

пользователь заблокирован

get_is_following

get_is_following(**kwargs) -> bool

Проверить, подписан ли текущий клиент на этого пользователя.

Требуется, чтобы у пользователя был указан id (UUID).

RETURNS DESCRIPTION
bool

Подписан ли

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

report

report(
    reason: Reason
    | Literal[
        "spam",
        "violence",
        "hate",
        "adult",
        "misinfo",
        "other",
    ] = "other",
    description: str = "",
    **kwargs,
) -> Report

Написать донос на пользователя.

Требуется, чтобы у пользователя был указан id (UUID).

PARAMETER DESCRIPTION
reason

причина

TYPE: Reason | Literal['spam', 'violence', 'hate', 'adult', 'misinfo', 'other'] DEFAULT: 'other'

description

текст репорта

TYPE: str DEFAULT: ''

RETURNS DESCRIPTION
Report

Донос

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

ValidationError

не найден пост, пользователь или комментарий по target_id

ValidationError

нельзя отправить жалобу на один и тот же контент

create_post

create_post(
    content: str = "",
    attachment_ids: list[Union[UUID, str, FileRef]]
    | None = None,
    multiple_choice: bool = False,
    question: str | None = None,
    options: list[str] | None = None,
    spans: list[
        Monospace
        | Strike
        | Underline
        | Bold
        | Italic
        | Spoiler
        | Link
    ]
    | None = None,
    **kwargs,
) -> Post

Создать пост на стене пользователя.

Требуется, чтобы у пользователя был указан id (UUID).

PARAMETER DESCRIPTION
content

Текст поста

TYPE: str DEFAULT: ''

attachment_ids

Прикреплённые файлы (список UUID, можно передавать строки, а также FileRef)

TYPE: list[Union[UUID, str, FileRef]] | None DEFAULT: None

multiple_choice

Возможен ли множественный выбор в опросе

TYPE: bool DEFAULT: False

question

Заголовок опроса

TYPE: str | None DEFAULT: None

options

Варианты ответов (список строк)

TYPE: list[str] | None DEFAULT: None

spans

Форматирование текста (список объектов форматирования)

TYPE: list[Monospace | Strike | Underline | Bold | Italic | Spoiler | Link] | None DEFAULT: None

RETURNS DESCRIPTION
Post

Созданный пост

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

ValidationError

Нельзя создать пост content="", attachment_ids=[], question=None

ParamsValidationError

len(content) <= 1_000

VideoRequiresVerificationError

Загрузка видео доступна только верифицированным пользователям

ValidationError

len(attachments_ids) <= 10

ForbiddenError

Некоторые файлы из attachment_ids не существуют

ParamsValidationError

len(spans) <= 100

ValidationError

1 <= len(question) <= 128

ValidationError

2 <= len(options) <= 10

ValidationError

1 <= len(options[i]) <= 32

ParamsValidationError

span[i].offset >= 0

ParamsValidationError

span[i].length > 0

ParamsValidationError

len(span[i].url) <= 2048

FullUser

FullUser(
    username_or_id: UUID | str | None = None,
    client: Optional[AsyncITDClient] = None,
    **data,
)

Bases: BaseFullUser, LastSeenMixin

id

id: UUID

username

username: str | None

client

client: Optional[AsyncITDClient] = None

display_name

display_name: str

avatar

avatar: str

verified

verified: bool

pin

pin: Pin | None

Если пина нет в enum PinSlug, то будет None

wall_access

wall_access: Visibility

banner

banner: str | None

is_followed_by

is_followed_by: bool

is_following

is_following: bool

posts_count

posts_count: int

following_count

following_count: int

followers_count

followers_count: int

pinned_post_id

pinned_post_id: UUID | None

last_seen

last_seen: None | LastSeen

online

online: bool

bio

bio: str | None

created_at

created_at: ITDDatetime

likes_visibility

likes_visibility: str

follow

follow(**kwargs) -> int

Подписаться на пользователя.

RETURNS DESCRIPTION
int

Количество подписчиков пользователя

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

Пользователь не найден

ConflictError

Вы уже подписаны на этого пользователя

ValidationError

Нельзя подписаться на себя

UserBlockedError

пользователь заблокирован

unfollow

unfollow(**kwargs) -> int

Отписаться от пользователя.

RETURNS DESCRIPTION
int

Количество подписчиков пользователя

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

Пользователь не найден

get_followers

get_followers(
    page: int = 1, limit: int = 30, **kwargs
) -> tuple[PagePagination, list[UserWithFollowing]]

Получить подписчиков пользователя.

PARAMETER DESCRIPTION
page

страница (page >= 1)

TYPE: int DEFAULT: 1

limit

максимальное количество пользователей на странице (1 <= limit <= 100)

TYPE: int DEFAULT: 30

RETURNS DESCRIPTION
tuple[PagePagination, list[UserWithFollowing]]

Кортеж (пагинация, список пользователей)

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

Пользователь не найден

UserBlockedError

пользователь заблокирован

get_following

get_following(
    page: int = 1, limit: int = 30, **kwargs
) -> tuple[PagePagination, list[UserWithFollowing]]

Получить подписки пользователя.

PARAMETER DESCRIPTION
page

страница (page >= 1)

TYPE: int DEFAULT: 1

limit

максимальное количество пользователей на странице (1 <= limit <= 100)

TYPE: int DEFAULT: 30

RETURNS DESCRIPTION
tuple[PagePagination, list[UserWithFollowing]]

Кортеж (пагинация, список пользователей)

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

Пользователь не найден

UserBlockedError

пользователь заблокирован

block

block(**kwargs) -> None

Заблокировать пользователя.

RAISES DESCRIPTION
UnauthorizedError

неверный access токен

NotFoundError

пользователь не найден

ConflictError

пользователь уже заблокирован

ValidationError

нельзя заблокировать себя

unblock

unblock(**kwargs) -> None

Разблокировать пользователя.

RAISES DESCRIPTION
UnauthorizedError

неверный access токен

NotFoundError

пользователь не найден

ConflictError

пользователь не заблокирован

get_full

get_full(
    **kwargs,
) -> Union[
    FullUser, UserBlockedByMe, UserBlockMe, PrivateUser
]

Получить полные данные пользователя.

RETURNS DESCRIPTION
Union[FullUser, UserBlockedByMe, UserBlockMe, PrivateUser]

Данные пользователя в зависимости от статуса (полный профиль, заблокирован, приватный и т.д.)

RAISES DESCRIPTION
UnauthorizedError

необходима авторизация

NotFoundError

пользователь не найден

UserBlockedError

пользователь заблокирован

get_posts

get_posts(
    cursor: str | None = None,
    limit: int = 20,
    sort: PostSort | Literal["new", "popular"] = "new",
    **kwargs,
) -> tuple[Pagination, list[Post]]

Посты на стене пользователя (включая его собственные).

PARAMETER DESCRIPTION
cursor

курсор следующей страницы (из предыдущего ответа)

TYPE: str | None DEFAULT: None

limit

максимальное количество постов (1 <= limit <= 50)

TYPE: int DEFAULT: 20

sort

сортировка ("new" или "popular")

TYPE: PostSort | Literal['new', 'popular'] DEFAULT: 'new'

RETURNS DESCRIPTION
tuple[Pagination, list[Post]]

Кортеж (пагинация, список постов)

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

пользователь не найден

UserBlockedError

пользователь заблокирован

get_liked_posts

get_liked_posts(
    cursor: str | None = None,
    limit: int = 20,
    sort: PostSort | Literal["new", "popular"] = "new",
    **kwargs,
) -> tuple[Pagination, list[Post]]

Посты, которые лайкнул пользователь.

PARAMETER DESCRIPTION
cursor

курсор следующей страницы

TYPE: str | None DEFAULT: None

limit

максимальное количество постов (1 <= limit <= 50)

TYPE: int DEFAULT: 20

sort

сортировка ("new" или "popular")

TYPE: PostSort | Literal['new', 'popular'] DEFAULT: 'new'

RETURNS DESCRIPTION
tuple[Pagination, list[Post]]

Кортеж (пагинация, список постов)

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

пользователь не найден

UserBlockedError

пользователь заблокирован

get_wall_posts

get_wall_posts(
    cursor: str | None = None,
    limit: int = 20,
    sort: PostSort | Literal["new", "popular"] = "new",
    **kwargs,
) -> tuple[Pagination, list[Post]]

Посты на стене пользователя, сделанные другими пользователями.

PARAMETER DESCRIPTION
cursor

курсор следующей страницы

TYPE: str | None DEFAULT: None

limit

максимальное количество постов (1 <= limit <= 50)

TYPE: int DEFAULT: 20

sort

сортировка ("new" или "popular")

TYPE: PostSort | Literal['new', 'popular'] DEFAULT: 'new'

RETURNS DESCRIPTION
tuple[Pagination, list[Post]]

Кортеж (пагинация, список постов)

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

пользователь не найден

UserBlockedError

пользователь заблокирован

get_is_following

get_is_following(**kwargs) -> bool

Проверить, подписан ли текущий клиент на этого пользователя.

Требуется, чтобы у пользователя был указан id (UUID).

RETURNS DESCRIPTION
bool

Подписан ли

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

report

report(
    reason: Reason
    | Literal[
        "spam",
        "violence",
        "hate",
        "adult",
        "misinfo",
        "other",
    ] = "other",
    description: str = "",
    **kwargs,
) -> Report

Написать донос на пользователя.

Требуется, чтобы у пользователя был указан id (UUID).

PARAMETER DESCRIPTION
reason

причина

TYPE: Reason | Literal['spam', 'violence', 'hate', 'adult', 'misinfo', 'other'] DEFAULT: 'other'

description

текст репорта

TYPE: str DEFAULT: ''

RETURNS DESCRIPTION
Report

Донос

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

ValidationError

не найден пост, пользователь или комментарий по target_id

ValidationError

нельзя отправить жалобу на один и тот же контент

create_post

create_post(
    content: str = "",
    attachment_ids: list[Union[UUID, str, FileRef]]
    | None = None,
    multiple_choice: bool = False,
    question: str | None = None,
    options: list[str] | None = None,
    spans: list[
        Monospace
        | Strike
        | Underline
        | Bold
        | Italic
        | Spoiler
        | Link
    ]
    | None = None,
    **kwargs,
) -> Post

Создать пост на стене пользователя.

Требуется, чтобы у пользователя был указан id (UUID).

PARAMETER DESCRIPTION
content

Текст поста

TYPE: str DEFAULT: ''

attachment_ids

Прикреплённые файлы (список UUID, можно передавать строки, а также FileRef)

TYPE: list[Union[UUID, str, FileRef]] | None DEFAULT: None

multiple_choice

Возможен ли множественный выбор в опросе

TYPE: bool DEFAULT: False

question

Заголовок опроса

TYPE: str | None DEFAULT: None

options

Варианты ответов (список строк)

TYPE: list[str] | None DEFAULT: None

spans

Форматирование текста (список объектов форматирования)

TYPE: list[Monospace | Strike | Underline | Bold | Italic | Spoiler | Link] | None DEFAULT: None

RETURNS DESCRIPTION
Post

Созданный пост

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

ValidationError

Нельзя создать пост content="", attachment_ids=[], question=None

ParamsValidationError

len(content) <= 1_000

VideoRequiresVerificationError

Загрузка видео доступна только верифицированным пользователям

ValidationError

len(attachments_ids) <= 10

ForbiddenError

Некоторые файлы из attachment_ids не существуют

ParamsValidationError

len(spans) <= 100

ValidationError

1 <= len(question) <= 128

ValidationError

2 <= len(options) <= 10

ValidationError

1 <= len(options[i]) <= 32

ParamsValidationError

span[i].offset >= 0

ParamsValidationError

span[i].length > 0

ParamsValidationError

len(span[i].url) <= 2048

UserBlockMe

UserBlockMe(
    username_or_id: UUID | str | None = None,
    client: Optional[AsyncITDClient] = None,
    **data,
)

Bases: LastSeenMixin

is_private

is_private: bool

is_blocked_by_them

is_blocked_by_them: bool

id

id: UUID

username

username: str | None

client

client: Optional[AsyncITDClient] = None

display_name

display_name: str

avatar

avatar: str

verified

verified: bool

pin

pin: Pin | None

Если пина нет в enum PinSlug, то будет None

wall_access

wall_access: Visibility

banner

banner: str | None

is_followed_by

is_followed_by: bool

is_following

is_following: bool

posts_count

posts_count: int

following_count

following_count: int

followers_count

followers_count: int

pinned_post_id

pinned_post_id: UUID | None

last_seen

last_seen: None | LastSeen

online

online: bool

follow

follow(**kwargs) -> int

Подписаться на пользователя.

RETURNS DESCRIPTION
int

Количество подписчиков пользователя

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

Пользователь не найден

ConflictError

Вы уже подписаны на этого пользователя

ValidationError

Нельзя подписаться на себя

UserBlockedError

пользователь заблокирован

unfollow

unfollow(**kwargs) -> int

Отписаться от пользователя.

RETURNS DESCRIPTION
int

Количество подписчиков пользователя

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

Пользователь не найден

get_followers

get_followers(
    page: int = 1, limit: int = 30, **kwargs
) -> tuple[PagePagination, list[UserWithFollowing]]

Получить подписчиков пользователя.

PARAMETER DESCRIPTION
page

страница (page >= 1)

TYPE: int DEFAULT: 1

limit

максимальное количество пользователей на странице (1 <= limit <= 100)

TYPE: int DEFAULT: 30

RETURNS DESCRIPTION
tuple[PagePagination, list[UserWithFollowing]]

Кортеж (пагинация, список пользователей)

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

Пользователь не найден

UserBlockedError

пользователь заблокирован

get_following

get_following(
    page: int = 1, limit: int = 30, **kwargs
) -> tuple[PagePagination, list[UserWithFollowing]]

Получить подписки пользователя.

PARAMETER DESCRIPTION
page

страница (page >= 1)

TYPE: int DEFAULT: 1

limit

максимальное количество пользователей на странице (1 <= limit <= 100)

TYPE: int DEFAULT: 30

RETURNS DESCRIPTION
tuple[PagePagination, list[UserWithFollowing]]

Кортеж (пагинация, список пользователей)

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

Пользователь не найден

UserBlockedError

пользователь заблокирован

block

block(**kwargs) -> None

Заблокировать пользователя.

RAISES DESCRIPTION
UnauthorizedError

неверный access токен

NotFoundError

пользователь не найден

ConflictError

пользователь уже заблокирован

ValidationError

нельзя заблокировать себя

unblock

unblock(**kwargs) -> None

Разблокировать пользователя.

RAISES DESCRIPTION
UnauthorizedError

неверный access токен

NotFoundError

пользователь не найден

ConflictError

пользователь не заблокирован

get_full

get_full(
    **kwargs,
) -> Union[
    FullUser, UserBlockedByMe, UserBlockMe, PrivateUser
]

Получить полные данные пользователя.

RETURNS DESCRIPTION
Union[FullUser, UserBlockedByMe, UserBlockMe, PrivateUser]

Данные пользователя в зависимости от статуса (полный профиль, заблокирован, приватный и т.д.)

RAISES DESCRIPTION
UnauthorizedError

необходима авторизация

NotFoundError

пользователь не найден

UserBlockedError

пользователь заблокирован

get_posts

get_posts(
    cursor: str | None = None,
    limit: int = 20,
    sort: PostSort | Literal["new", "popular"] = "new",
    **kwargs,
) -> tuple[Pagination, list[Post]]

Посты на стене пользователя (включая его собственные).

PARAMETER DESCRIPTION
cursor

курсор следующей страницы (из предыдущего ответа)

TYPE: str | None DEFAULT: None

limit

максимальное количество постов (1 <= limit <= 50)

TYPE: int DEFAULT: 20

sort

сортировка ("new" или "popular")

TYPE: PostSort | Literal['new', 'popular'] DEFAULT: 'new'

RETURNS DESCRIPTION
tuple[Pagination, list[Post]]

Кортеж (пагинация, список постов)

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

пользователь не найден

UserBlockedError

пользователь заблокирован

get_liked_posts

get_liked_posts(
    cursor: str | None = None,
    limit: int = 20,
    sort: PostSort | Literal["new", "popular"] = "new",
    **kwargs,
) -> tuple[Pagination, list[Post]]

Посты, которые лайкнул пользователь.

PARAMETER DESCRIPTION
cursor

курсор следующей страницы

TYPE: str | None DEFAULT: None

limit

максимальное количество постов (1 <= limit <= 50)

TYPE: int DEFAULT: 20

sort

сортировка ("new" или "popular")

TYPE: PostSort | Literal['new', 'popular'] DEFAULT: 'new'

RETURNS DESCRIPTION
tuple[Pagination, list[Post]]

Кортеж (пагинация, список постов)

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

пользователь не найден

UserBlockedError

пользователь заблокирован

get_wall_posts

get_wall_posts(
    cursor: str | None = None,
    limit: int = 20,
    sort: PostSort | Literal["new", "popular"] = "new",
    **kwargs,
) -> tuple[Pagination, list[Post]]

Посты на стене пользователя, сделанные другими пользователями.

PARAMETER DESCRIPTION
cursor

курсор следующей страницы

TYPE: str | None DEFAULT: None

limit

максимальное количество постов (1 <= limit <= 50)

TYPE: int DEFAULT: 20

sort

сортировка ("new" или "popular")

TYPE: PostSort | Literal['new', 'popular'] DEFAULT: 'new'

RETURNS DESCRIPTION
tuple[Pagination, list[Post]]

Кортеж (пагинация, список постов)

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

пользователь не найден

UserBlockedError

пользователь заблокирован

get_is_following

get_is_following(**kwargs) -> bool

Проверить, подписан ли текущий клиент на этого пользователя.

Требуется, чтобы у пользователя был указан id (UUID).

RETURNS DESCRIPTION
bool

Подписан ли

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

report

report(
    reason: Reason
    | Literal[
        "spam",
        "violence",
        "hate",
        "adult",
        "misinfo",
        "other",
    ] = "other",
    description: str = "",
    **kwargs,
) -> Report

Написать донос на пользователя.

Требуется, чтобы у пользователя был указан id (UUID).

PARAMETER DESCRIPTION
reason

причина

TYPE: Reason | Literal['spam', 'violence', 'hate', 'adult', 'misinfo', 'other'] DEFAULT: 'other'

description

текст репорта

TYPE: str DEFAULT: ''

RETURNS DESCRIPTION
Report

Донос

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

ValidationError

не найден пост, пользователь или комментарий по target_id

ValidationError

нельзя отправить жалобу на один и тот же контент

create_post

create_post(
    content: str = "",
    attachment_ids: list[Union[UUID, str, FileRef]]
    | None = None,
    multiple_choice: bool = False,
    question: str | None = None,
    options: list[str] | None = None,
    spans: list[
        Monospace
        | Strike
        | Underline
        | Bold
        | Italic
        | Spoiler
        | Link
    ]
    | None = None,
    **kwargs,
) -> Post

Создать пост на стене пользователя.

Требуется, чтобы у пользователя был указан id (UUID).

PARAMETER DESCRIPTION
content

Текст поста

TYPE: str DEFAULT: ''

attachment_ids

Прикреплённые файлы (список UUID, можно передавать строки, а также FileRef)

TYPE: list[Union[UUID, str, FileRef]] | None DEFAULT: None

multiple_choice

Возможен ли множественный выбор в опросе

TYPE: bool DEFAULT: False

question

Заголовок опроса

TYPE: str | None DEFAULT: None

options

Варианты ответов (список строк)

TYPE: list[str] | None DEFAULT: None

spans

Форматирование текста (список объектов форматирования)

TYPE: list[Monospace | Strike | Underline | Bold | Italic | Spoiler | Link] | None DEFAULT: None

RETURNS DESCRIPTION
Post

Созданный пост

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

ValidationError

Нельзя создать пост content="", attachment_ids=[], question=None

ParamsValidationError

len(content) <= 1_000

VideoRequiresVerificationError

Загрузка видео доступна только верифицированным пользователям

ValidationError

len(attachments_ids) <= 10

ForbiddenError

Некоторые файлы из attachment_ids не существуют

ParamsValidationError

len(spans) <= 100

ValidationError

1 <= len(question) <= 128

ValidationError

2 <= len(options) <= 10

ValidationError

1 <= len(options[i]) <= 32

ParamsValidationError

span[i].offset >= 0

ParamsValidationError

span[i].length > 0

ParamsValidationError

len(span[i].url) <= 2048

PrivateUser

PrivateUser(
    username_or_id: UUID | str | None = None,
    client: Optional[AsyncITDClient] = None,
    **data,
)

Bases: LastSeenMixin

is_private

is_private: bool

id

id: UUID

username

username: str | None

client

client: Optional[AsyncITDClient] = None

display_name

display_name: str

avatar

avatar: str

verified

verified: bool

pin

pin: Pin | None

Если пина нет в enum PinSlug, то будет None

wall_access

wall_access: Visibility

banner

banner: str | None

is_followed_by

is_followed_by: bool

is_following

is_following: bool

posts_count

posts_count: int

following_count

following_count: int

followers_count

followers_count: int

pinned_post_id

pinned_post_id: UUID | None

last_seen

last_seen: None | LastSeen

online

online: bool

follow

follow(**kwargs) -> int

Подписаться на пользователя.

RETURNS DESCRIPTION
int

Количество подписчиков пользователя

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

Пользователь не найден

ConflictError

Вы уже подписаны на этого пользователя

ValidationError

Нельзя подписаться на себя

UserBlockedError

пользователь заблокирован

unfollow

unfollow(**kwargs) -> int

Отписаться от пользователя.

RETURNS DESCRIPTION
int

Количество подписчиков пользователя

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

Пользователь не найден

get_followers

get_followers(
    page: int = 1, limit: int = 30, **kwargs
) -> tuple[PagePagination, list[UserWithFollowing]]

Получить подписчиков пользователя.

PARAMETER DESCRIPTION
page

страница (page >= 1)

TYPE: int DEFAULT: 1

limit

максимальное количество пользователей на странице (1 <= limit <= 100)

TYPE: int DEFAULT: 30

RETURNS DESCRIPTION
tuple[PagePagination, list[UserWithFollowing]]

Кортеж (пагинация, список пользователей)

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

Пользователь не найден

UserBlockedError

пользователь заблокирован

get_following

get_following(
    page: int = 1, limit: int = 30, **kwargs
) -> tuple[PagePagination, list[UserWithFollowing]]

Получить подписки пользователя.

PARAMETER DESCRIPTION
page

страница (page >= 1)

TYPE: int DEFAULT: 1

limit

максимальное количество пользователей на странице (1 <= limit <= 100)

TYPE: int DEFAULT: 30

RETURNS DESCRIPTION
tuple[PagePagination, list[UserWithFollowing]]

Кортеж (пагинация, список пользователей)

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

Пользователь не найден

UserBlockedError

пользователь заблокирован

block

block(**kwargs) -> None

Заблокировать пользователя.

RAISES DESCRIPTION
UnauthorizedError

неверный access токен

NotFoundError

пользователь не найден

ConflictError

пользователь уже заблокирован

ValidationError

нельзя заблокировать себя

unblock

unblock(**kwargs) -> None

Разблокировать пользователя.

RAISES DESCRIPTION
UnauthorizedError

неверный access токен

NotFoundError

пользователь не найден

ConflictError

пользователь не заблокирован

get_full

get_full(
    **kwargs,
) -> Union[
    FullUser, UserBlockedByMe, UserBlockMe, PrivateUser
]

Получить полные данные пользователя.

RETURNS DESCRIPTION
Union[FullUser, UserBlockedByMe, UserBlockMe, PrivateUser]

Данные пользователя в зависимости от статуса (полный профиль, заблокирован, приватный и т.д.)

RAISES DESCRIPTION
UnauthorizedError

необходима авторизация

NotFoundError

пользователь не найден

UserBlockedError

пользователь заблокирован

get_posts

get_posts(
    cursor: str | None = None,
    limit: int = 20,
    sort: PostSort | Literal["new", "popular"] = "new",
    **kwargs,
) -> tuple[Pagination, list[Post]]

Посты на стене пользователя (включая его собственные).

PARAMETER DESCRIPTION
cursor

курсор следующей страницы (из предыдущего ответа)

TYPE: str | None DEFAULT: None

limit

максимальное количество постов (1 <= limit <= 50)

TYPE: int DEFAULT: 20

sort

сортировка ("new" или "popular")

TYPE: PostSort | Literal['new', 'popular'] DEFAULT: 'new'

RETURNS DESCRIPTION
tuple[Pagination, list[Post]]

Кортеж (пагинация, список постов)

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

пользователь не найден

UserBlockedError

пользователь заблокирован

get_liked_posts

get_liked_posts(
    cursor: str | None = None,
    limit: int = 20,
    sort: PostSort | Literal["new", "popular"] = "new",
    **kwargs,
) -> tuple[Pagination, list[Post]]

Посты, которые лайкнул пользователь.

PARAMETER DESCRIPTION
cursor

курсор следующей страницы

TYPE: str | None DEFAULT: None

limit

максимальное количество постов (1 <= limit <= 50)

TYPE: int DEFAULT: 20

sort

сортировка ("new" или "popular")

TYPE: PostSort | Literal['new', 'popular'] DEFAULT: 'new'

RETURNS DESCRIPTION
tuple[Pagination, list[Post]]

Кортеж (пагинация, список постов)

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

пользователь не найден

UserBlockedError

пользователь заблокирован

get_wall_posts

get_wall_posts(
    cursor: str | None = None,
    limit: int = 20,
    sort: PostSort | Literal["new", "popular"] = "new",
    **kwargs,
) -> tuple[Pagination, list[Post]]

Посты на стене пользователя, сделанные другими пользователями.

PARAMETER DESCRIPTION
cursor

курсор следующей страницы

TYPE: str | None DEFAULT: None

limit

максимальное количество постов (1 <= limit <= 50)

TYPE: int DEFAULT: 20

sort

сортировка ("new" или "popular")

TYPE: PostSort | Literal['new', 'popular'] DEFAULT: 'new'

RETURNS DESCRIPTION
tuple[Pagination, list[Post]]

Кортеж (пагинация, список постов)

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

NotFoundError

пользователь не найден

UserBlockedError

пользователь заблокирован

get_is_following

get_is_following(**kwargs) -> bool

Проверить, подписан ли текущий клиент на этого пользователя.

Требуется, чтобы у пользователя был указан id (UUID).

RETURNS DESCRIPTION
bool

Подписан ли

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

report

report(
    reason: Reason
    | Literal[
        "spam",
        "violence",
        "hate",
        "adult",
        "misinfo",
        "other",
    ] = "other",
    description: str = "",
    **kwargs,
) -> Report

Написать донос на пользователя.

Требуется, чтобы у пользователя был указан id (UUID).

PARAMETER DESCRIPTION
reason

причина

TYPE: Reason | Literal['spam', 'violence', 'hate', 'adult', 'misinfo', 'other'] DEFAULT: 'other'

description

текст репорта

TYPE: str DEFAULT: ''

RETURNS DESCRIPTION
Report

Донос

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

ValidationError

не найден пост, пользователь или комментарий по target_id

ValidationError

нельзя отправить жалобу на один и тот же контент

create_post

create_post(
    content: str = "",
    attachment_ids: list[Union[UUID, str, FileRef]]
    | None = None,
    multiple_choice: bool = False,
    question: str | None = None,
    options: list[str] | None = None,
    spans: list[
        Monospace
        | Strike
        | Underline
        | Bold
        | Italic
        | Spoiler
        | Link
    ]
    | None = None,
    **kwargs,
) -> Post

Создать пост на стене пользователя.

Требуется, чтобы у пользователя был указан id (UUID).

PARAMETER DESCRIPTION
content

Текст поста

TYPE: str DEFAULT: ''

attachment_ids

Прикреплённые файлы (список UUID, можно передавать строки, а также FileRef)

TYPE: list[Union[UUID, str, FileRef]] | None DEFAULT: None

multiple_choice

Возможен ли множественный выбор в опросе

TYPE: bool DEFAULT: False

question

Заголовок опроса

TYPE: str | None DEFAULT: None

options

Варианты ответов (список строк)

TYPE: list[str] | None DEFAULT: None

spans

Форматирование текста (список объектов форматирования)

TYPE: list[Monospace | Strike | Underline | Bold | Italic | Spoiler | Link] | None DEFAULT: None

RETURNS DESCRIPTION
Post

Созданный пост

RAISES DESCRIPTION
UnauthorizedError

ошибка авторизации

ValidationError

Нельзя создать пост content="", attachment_ids=[], question=None

ParamsValidationError

len(content) <= 1_000

VideoRequiresVerificationError

Загрузка видео доступна только верифицированным пользователям

ValidationError

len(attachments_ids) <= 10

ForbiddenError

Некоторые файлы из attachment_ids не существуют

ParamsValidationError

len(spans) <= 100

ValidationError

1 <= len(question) <= 128

ValidationError

2 <= len(options) <= 10

ValidationError

1 <= len(options[i]) <= 32

ParamsValidationError

span[i].offset >= 0

ParamsValidationError

span[i].length > 0

ParamsValidationError

len(span[i].url) <= 2048

DeletedMe

Bases: ITDBaseModel

can_restore

can_restore: bool

is_deleted

is_deleted: bool

restore_deadline

restore_deadline: ITDDatetime

validate_pin_or_none

validate_pin_or_none(value: Any) -> Any

Преобразует неизвестные значения пинов в None

validate_pin_with_date_or_none

validate_pin_with_date_or_none(value: Any) -> Any

Преобразует неизвестные значения пинов в None