Skip to main content

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

  • BotInfobot_id, name, status
  • Messagemessage_id, chat_id, user_id, content, created_time, type, reply_message_id, author, images
  • SentMessagemessage_id, created_time
  • Useruser_id, nickname, avatar, short_info, role, app_role, panel_color, level, nickname_color, nickname_emoji, avatar_frame, bubble_id
  • Memberuser_id, nickname, avatar, role, app_role, panel_color, level, nickname_color, nickname_emoji, avatar_frame, member_status, is_api_bot
  • Authoruser_id, nickname, avatar, role, app_role, panel_color, level, nickname_color, nickname_emoji, avatar_frame
  • AvatarFrameframe_id, file
  • MessageReactionreaction, 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_after
  • APIError — other HTTP errors, has .status and .body

License

MIT

Project details


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.3.1.tar.gz (15.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

karbo-0.3.1-py3-none-any.whl (9.6 kB view details)

Uploaded Python 3

File details

Details for the file karbo-0.3.1.tar.gz.

File metadata

  • Download URL: karbo-0.3.1.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

Hashes for karbo-0.3.1.tar.gz
Algorithm Hash digest
SHA256 ce75424a7f3cb81fcb03a3311a345c2885ac0ac30d3d231ddc5b1be21e6691c9
MD5 b8384c218aec292c855f6fa1e24e74b5
BLAKE2b-256 117897c3ca7ba3918afadd24b28e4d38d05a0113a27ef9c19b513c2cb98146d0

See more details on using hashes here.

File details

Details for the file karbo-0.3.1-py3-none-any.whl.

File metadata

  • Download URL: karbo-0.3.1-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

Hashes for karbo-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 495158c80c69dd4eae348def4f2c58f4892823ab1009bde60c6fd7f15281e4bf
MD5 5697709beb42069f07c667127c1bb65c
BLAKE2b-256 a219464432bafff028ed5fde57c83992354acb26a2718cd442f1b8f6eedb901b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page