# Async VK Teams bot API wrapper
[](https://pypi.org/project/async-icq/)
[](https://pypi.org/project/async-icq/)
[](https://pypi.org/project/async-icq/)
[](https://pypi.org/project/async-icq/)
[](https://pypi.org/project/async-icq/)
[](https://pypi.org/project/async-icq/)
[](https://pypi.org/project/async-icq/)
<img src="https://myteam.mail.ru/botapi/res/logo_myteam.png" width="40%">
Pure Async Python interface for Bot API.
# Table of contents
- [Introduction](#introduction)
- [Quick start](#quick-start)
- [Installing](#installing)
- [Examples](#examples)
- [API description](#api-description)
# Introduction
This library provides complete VK Teams Bot API 1.0 interface and requires Python 3.5+
# Quick start
* Create your own bot by sending the /newbot command to @Metabot and follow the instructions.
>Note: a bot can only reply after the user has added it to his contact list, or if the user was the first to start a dialogue.
* You can configure the domain that hosts your VK Teams server. When instantiating the Bot class, add the address of your domain.
> Example: Bot(token=TOKEN, url="https://myteam.mail.ru"), by default we use the domain: http://myteam.mail.ru (VK Teams)
# Installing
Install using pip:
```bash
pip install -U async-icq
```
Install from sources:
```bash
git clone https://github.com/dasshit/async-icq.git
cd async-icq
python setup.py install
```
# Examples
Basic example of using this library will look like this
```python
from async_icq.bot import AsyncBot
from async_icq.events import Event
# Creating bot
example = AsyncBot(
token='TOKEN',
url='https://api.icq.net',
)
# Adding some basic event handler by decorators (handler must accept 2 arguments: bot and event)
# Diffent decorators will set it up for diffent types of events
@example.message_handler()
async def hello(event: Event):
await event.answer(
text=f'Hi, {event.from_.userId}'
)
await event.log(
f'Answered to {event.chat.chatId} to {event.from_.userId}')
# Starting to poll new events and sending them to middleware and handlers
example.start_poll()
```
Example of how to use this library could be found in async-icq/examples
# API description
<ul>
<li><a href="https://teams.vk.com/botapi/#/">teams.vk.com/botapi</a></li>
</ul>
Raw data
{
"_id": null,
"home_page": "https://github.com/dasshit/async-icq",
"name": "async-icq",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.5",
"maintainer_email": null,
"keywords": "mailru im bot api",
"author": "Valerii Korobov",
"author_email": "dasshit@yandex.ru",
"download_url": "https://files.pythonhosted.org/packages/c0/58/70d8765243fc16d2540f51f531a07eeba6a620ed21e3e652fd51bc75c747/async_icq-1.4.9.tar.gz",
"platform": null,
"description": "# Async VK Teams bot API wrapper\n\n[](https://pypi.org/project/async-icq/)\n[](https://pypi.org/project/async-icq/)\n[](https://pypi.org/project/async-icq/)\n[](https://pypi.org/project/async-icq/)\n[](https://pypi.org/project/async-icq/)\n[](https://pypi.org/project/async-icq/)\n[](https://pypi.org/project/async-icq/)\n\n<img src=\"https://myteam.mail.ru/botapi/res/logo_myteam.png\" width=\"40%\">\n\nPure Async Python interface for Bot API.\n\n# Table of contents\n- [Introduction](#introduction)\n- [Quick start](#quick-start)\n- [Installing](#installing)\n- [Examples](#examples) \n- [API description](#api-description)\n\n# Introduction\n\n\nThis library provides complete VK Teams Bot API 1.0 interface and requires Python 3.5+\n\n# Quick start\n\n* Create your own bot by sending the /newbot command to @Metabot and follow the instructions.\n >Note: a bot can only reply after the user has added it to his contact list, or if the user was the first to start a dialogue.\n* You can configure the domain that hosts your VK Teams server. When instantiating the Bot class, add the address of your domain.\n > Example: Bot(token=TOKEN, url=\"https://myteam.mail.ru\"), by default we use the domain: http://myteam.mail.ru (VK Teams)\n\n# Installing\n\nInstall using pip:\n```bash\npip install -U async-icq\n```\n\nInstall from sources:\n```bash\ngit clone https://github.com/dasshit/async-icq.git\ncd async-icq\npython setup.py install\n```\n\n# Examples\n\nBasic example of using this library will look like this\n\n```python\nfrom async_icq.bot import AsyncBot\nfrom async_icq.events import Event\n\n# Creating bot\nexample = AsyncBot(\n token='TOKEN',\n url='https://api.icq.net',\n)\n\n\n# Adding some basic event handler by decorators (handler must accept 2 arguments: bot and event)\n# Diffent decorators will set it up for diffent types of events\n@example.message_handler()\nasync def hello(event: Event):\n \n await event.answer(\n text=f'Hi, {event.from_.userId}'\n )\n\n await event.log(\n f'Answered to {event.chat.chatId} to {event.from_.userId}')\n\n\n# Starting to poll new events and sending them to middleware and handlers\nexample.start_poll()\n```\n\nExample of how to use this library could be found in async-icq/examples\n\n# API description\n<ul>\n <li><a href=\"https://teams.vk.com/botapi/#/\">teams.vk.com/botapi</a></li>\n</ul>\n",
"bugtrack_url": null,
"license": null,
"summary": "ICQ/VK Teams Bot API interface",
"version": "1.4.9",
"project_urls": {
"Homepage": "https://github.com/dasshit/async-icq"
},
"split_keywords": [
"mailru",
"im",
"bot",
"api"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "928f0f65b3b700282ae0a2e3ba970e1a39cc226b185e9573bcb394ce0db1938e",
"md5": "49e6dd671ee4b4d8cf2052c80961fb34",
"sha256": "330ef45751e50133f0fea51227a0bf74f64b646919e738b2ec8eceacda4359a0"
},
"downloads": -1,
"filename": "async_icq-1.4.9-py3-none-any.whl",
"has_sig": false,
"md5_digest": "49e6dd671ee4b4d8cf2052c80961fb34",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.5",
"size": 16808,
"upload_time": "2025-11-09T10:32:50",
"upload_time_iso_8601": "2025-11-09T10:32:50.781085Z",
"url": "https://files.pythonhosted.org/packages/92/8f/0f65b3b700282ae0a2e3ba970e1a39cc226b185e9573bcb394ce0db1938e/async_icq-1.4.9-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "c05870d8765243fc16d2540f51f531a07eeba6a620ed21e3e652fd51bc75c747",
"md5": "c603a1a3e42aaa879b5c0c94406bdd79",
"sha256": "1a7c83097accd25b8144527669b810c552af8d5970e058e4dd95200f5f51bd8d"
},
"downloads": -1,
"filename": "async_icq-1.4.9.tar.gz",
"has_sig": false,
"md5_digest": "c603a1a3e42aaa879b5c0c94406bdd79",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.5",
"size": 19612,
"upload_time": "2025-11-09T10:32:51",
"upload_time_iso_8601": "2025-11-09T10:32:51.670224Z",
"url": "https://files.pythonhosted.org/packages/c0/58/70d8765243fc16d2540f51f531a07eeba6a620ed21e3e652fd51bc75c747/async_icq-1.4.9.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-11-09 10:32:51",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "dasshit",
"github_project": "async-icq",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [
{
"name": "aiohttp",
"specs": [
[
">=",
"3.8.1"
]
]
},
{
"name": "aiologger",
"specs": [
[
">=",
"0.6.1"
]
]
},
{
"name": "aiosignal",
"specs": [
[
">=",
"1.2.0"
]
]
},
{
"name": "async-timeout",
"specs": [
[
">=",
"4.0.2"
]
]
},
{
"name": "attrs",
"specs": [
[
">=",
"21.4.0"
]
]
},
{
"name": "charset-normalizer",
"specs": [
[
">=",
"2.0.10"
]
]
},
{
"name": "frozenlist",
"specs": [
[
">=",
"1.2.0"
]
]
},
{
"name": "idna",
"specs": [
[
">=",
"3.3"
]
]
},
{
"name": "multidict",
"specs": [
[
">=",
"5.2.0"
]
]
},
{
"name": "yarl",
"specs": [
[
">=",
"1.7.2"
]
]
},
{
"name": "uvloop",
"specs": [
[
"==",
"0.16.0"
]
]
},
{
"name": "ujson",
"specs": [
[
"==",
"5.1.0"
]
]
}
],
"test_requirements": [
{
"name": "aiohttp",
"specs": [
[
"==",
"3.12.14"
]
]
},
{
"name": "aiologger",
"specs": [
[
"==",
"0.6.1"
]
]
},
{
"name": "aiosignal",
"specs": [
[
"==",
"1.2.0"
]
]
},
{
"name": "async-timeout",
"specs": [
[
"==",
"4.0.2"
]
]
},
{
"name": "attrs",
"specs": [
[
"==",
"21.4.0"
]
]
},
{
"name": "bleach",
"specs": [
[
"==",
"4.1.0"
]
]
},
{
"name": "certifi",
"specs": [
[
"==",
"2024.7.4"
]
]
},
{
"name": "charset-normalizer",
"specs": [
[
"==",
"2.0.10"
]
]
},
{
"name": "colorama",
"specs": [
[
"==",
"0.4.4"
]
]
},
{
"name": "docutils",
"specs": [
[
"==",
"0.18.1"
]
]
},
{
"name": "frozenlist",
"specs": [
[
"==",
"1.2.0"
]
]
},
{
"name": "idna",
"specs": [
[
"==",
"3.7"
]
]
},
{
"name": "importlib-metadata",
"specs": [
[
"==",
"4.10.1"
]
]
},
{
"name": "iniconfig",
"specs": [
[
"==",
"1.1.1"
]
]
},
{
"name": "keyring",
"specs": [
[
"==",
"23.5.0"
]
]
},
{
"name": "memory-profiler",
"specs": [
[
"==",
"0.60.0"
]
]
},
{
"name": "multidict",
"specs": [
[
"==",
"5.2.0"
]
]
},
{
"name": "packaging",
"specs": [
[
"==",
"21.3"
]
]
},
{
"name": "pkginfo",
"specs": [
[
"==",
"1.8.2"
]
]
},
{
"name": "pluggy",
"specs": [
[
"==",
"1.0.0"
]
]
},
{
"name": "psutil",
"specs": [
[
"==",
"5.9.0"
]
]
},
{
"name": "py",
"specs": [
[
"==",
"1.11.0"
]
]
},
{
"name": "Pygments",
"specs": [
[
"==",
"2.15.0"
]
]
},
{
"name": "pyparsing",
"specs": [
[
"==",
"3.0.7"
]
]
},
{
"name": "pytest",
"specs": [
[
"==",
"6.2.5"
]
]
},
{
"name": "pytest-asyncio",
"specs": [
[
"==",
"0.17.2"
]
]
},
{
"name": "pytest-xdist",
"specs": [
[
"==",
"2.5.0"
]
]
},
{
"name": "readme-renderer",
"specs": [
[
"==",
"32.0"
]
]
},
{
"name": "requests",
"specs": [
[
"==",
"2.32.4"
]
]
},
{
"name": "requests-toolbelt",
"specs": [
[
"==",
"0.9.1"
]
]
},
{
"name": "rfc3986",
"specs": [
[
"==",
"2.0.0"
]
]
},
{
"name": "six",
"specs": [
[
"==",
"1.16.0"
]
]
},
{
"name": "toml",
"specs": [
[
"==",
"0.10.2"
]
]
},
{
"name": "tqdm",
"specs": [
[
"==",
"4.66.3"
]
]
},
{
"name": "twine",
"specs": [
[
"==",
"3.7.1"
]
]
},
{
"name": "urllib3",
"specs": [
[
"==",
"2.5.0"
]
]
},
{
"name": "webencodings",
"specs": [
[
"==",
"0.5.1"
]
]
},
{
"name": "yarl",
"specs": [
[
"==",
"1.7.2"
]
]
},
{
"name": "zipp",
"specs": [
[
"==",
"3.19.1"
]
]
},
{
"name": "uvloop",
"specs": [
[
"==",
"0.16.0"
]
]
},
{
"name": "ujson",
"specs": [
[
"==",
"5.1.0"
]
]
}
],
"lcname": "async-icq"
}