Official Python SDK for Brenox — server-side API key integrations.
- Documentation: www.breno-x.com/docs
- Requires: Python 3.10+
pip install brenox-sdk
# or: uv add brenox-sdkCreate an app and API key in the developer console, then:
import os
from brenox import BrenoxServer
server = BrenoxServer(
base_url=os.environ.get("BRENOX_API_URL", "https://api.breno-x.com"),
api_key=os.environ["BRENOX_API_KEY"], # bx_test_* or bx_live_*
)
user = server.users.provision(external_id="user-123", username="alice")
channel = server.channels.create(name="general")
server.messages.send(
channel_id=channel.id,
external_id="user-123",
content="Hello from Python!",
)
# Embed flow — issue a JWT for @brenox/react on the frontend (never expose the API key)
session = server.sessions.create(external_id="user-123", channel_id=channel.id)
# return session.token to the browserfrom fastapi import FastAPI
from brenox import BrenoxServer
import os
app = FastAPI()
brenox = BrenoxServer(
base_url=os.environ["BRENOX_API_URL"],
api_key=os.environ["BRENOX_API_KEY"],
)
@app.post("/chat/session")
def create_chat_session(external_id: str, channel_id: int):
brenox.users.provision(external_id=external_id)
session = brenox.sessions.create(
external_id=external_id,
channel_id=channel_id,
)
return {
"token": session.token,
"workspace_id": session.workspace_id,
"channel_id": session.channel_id,
"environment": session.environment,
}Use @brenox/sdk + @brenox/react in the browser with the returned token.
| Resource | Methods |
|---|---|
server.users |
provision |
server.sessions |
create |
server.channels |
create |
server.messages |
send, list |
Auth: Authorization: Bearer <api_key> by default, or auth_style="x-api-key".
| Key prefix | Use |
|---|---|
bx_test_* |
Development / sandbox |
bx_live_* |
Production |
Sandbox keys are rejected when BRENOX_ENV or ENV is production.
- Documentation
- Developer console
- TypeScript SDK (client + React)
python -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"
pytest
ruff check src testsIntegration smoke (optional, requires Brenox API on localhost:8080):
BRENOX_API_KEY=bx_test_... pytest tests/integration -m integration