Official Python SDK for KarboAI Bot API
Project description
karbo
Official Python SDK for the KarboAI Bot API.
Installation
pip install karbo
Quick Start
import asyncio
import karbo
BOT_TOKEN = "your-bot-token"
async def main():
bot = karbo.KarboBot(BOT_TOKEN)
ws = karbo.KarboBotWS(BOT_TOKEN)
me = await bot.get_me()
print(f"Bot: {me.name} ({me.bot_id})")
@ws.on_message
async def on_message(message: karbo.Message):
if message.user_id == me.bot_id:
return
await bot.send_message(message.chat_id, f"Echo: {message.content}")
await ws.run_forever()
asyncio.run(main())
API Reference
KarboBot(token, *, base_url="https://api.karboai.com")
Async HTTP client. Use as a context manager or call .close() when done.
| Method | Description |
|---|---|
get_me() |
Get bot info (BotInfo) |
send_message(chat_id, content, *, reply_to=None, images=None) |
Send a message with optional images (SentMessage) |
upload_image(file_path) |
Upload a local image, returns its URL (str) |
get_message(chat_id, message_id) |
Get a specific message (Message) |
get_chat_members(chat_id, *, limit=100, offset=0) |
List chat members (list[Member]) |
get_user(user_id) |
Get user profile (User) |
get_user_in_community(user_id, community_id) |
Get user profile in a community (User) |
leave_chat(chat_id) |
Leave a chat |
kick_user(chat_id, user_id) |
Kick a user (requires helper role) |
Sending images
url = await bot.upload_image("photo.jpg")
await bot.send_message(chat_id, "Check this out!", images=[url])
# Send multiple images
urls = [await bot.upload_image(p) for p in ["a.png", "b.png"]]
await bot.send_message(chat_id, "", images=urls)
KarboBotWS(token, *, ws_url="https://api.karboai.com")
WebSocket client for real-time events.
ws = karbo.KarboBotWS(BOT_TOKEN)
@ws.on_message
async def handler(message: karbo.Message):
...
@ws.on_connect
async def connected():
...
@ws.on_disconnect
async def disconnected():
...
await ws.run_forever()
Models
BotInfo—bot_id,name,statusMessage—message_id,chat_id,user_id,content,created_time,type,reply_message_id,author,imagesSentMessage—message_id,created_timeUser—user_id,nickname,avatar,short_info,role,app_role,panel_color,level,nickname_color,nickname_emoji,avatar_frame,bubble_idMember—user_id,nickname,avatar,role,app_role,panel_color,level,nickname_color,nickname_emoji,avatar_frame,member_status,is_api_botAuthor—user_id,nickname,avatar,role,app_role,panel_color,level,nickname_color,nickname_emoji,avatar_frameAvatarFrame—frame_id,fileMessageReaction—reaction,is_sticker,count,me
Exceptions
All inherit from karbo.KarboError:
AuthenticationError— invalid token (401)ForbiddenError— no permission (403)NotFoundError— resource not found (404)ValidationError— bad request (400)RateLimitError— too many requests (429), has.retry_afterAPIError— other HTTP errors, has.statusand.body
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
karbo-0.4.0.tar.gz
(15.7 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
karbo-0.4.0-py3-none-any.whl
(9.6 kB
view details)
File details
Details for the file karbo-0.4.0.tar.gz.
File metadata
- Download URL: karbo-0.4.0.tar.gz
- Upload date:
- Size: 15.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cd9f5f7d2c951e7cef4f19bc681b09162e6270fab3da888ecf09d310b50d1c20
|
|
| MD5 |
44ea40082cd3d284fe843be736ba2bf5
|
|
| BLAKE2b-256 |
1521c75bd3fd221a2c4f20c8b6f5f0dfd12e4ca6e528fd9c377bf8591ec65732
|
File details
Details for the file karbo-0.4.0-py3-none-any.whl.
File metadata
- Download URL: karbo-0.4.0-py3-none-any.whl
- Upload date:
- Size: 9.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
52a76ee151350af4b68739033756503c98976e370a6fac852dcb1e4873b1a668
|
|
| MD5 |
a4134a64b02a273b901e85a804c9595e
|
|
| BLAKE2b-256 |
e685389244f1acadcd47a8759dbe833b13fe94c2fad5ffef1335514f7b98a9d4
|