HTTP REST gateway for the Kryten ecosystem — exposes KrytenClient via FastAPI
Project description
kryten-api-gate
HTTP REST gateway for the Kryten ecosystem — exposes kryten-py via FastAPI.
Overview
kryten-api-gate sits between HTTP clients and the Kryten NATS message bus, translating REST calls into KrytenClient commands dispatched to Kryten-Robot.
HTTP Client → kryten-api-gate → KrytenClient → NATS → Kryten-Robot → CyTube
Installation
pip install kryten-api-gate
Quick Start
-
Copy
config.example.jsontoconfig.jsonand fill in your values:{ "nats_url": "nats://localhost:4222", "channel": "your-channel", "api_key": "your-secret-api-key", "host": "0.0.0.0", "port": 8080 }
-
Run the server:
kryten-api-gate # or python -m kryten_api_gate
-
Interactive API docs at
http://localhost:8080/docs
Authentication
All endpoints (except /api/v1/system/health and /api/v1/system/version) require a Bearer token:
Authorization: Bearer <api_key>
API Routes
| Prefix | Description |
|---|---|
GET /api/v1/system/health |
Health check (unauthenticated) |
GET /api/v1/system/version |
Version info (unauthenticated) |
POST /api/v1/chat/send |
Send a chat message |
GET/POST /api/v1/playlist/ |
Playlist management |
POST /api/v1/playback/ |
Playback control |
POST /api/v1/moderation/ |
Moderation actions |
GET/POST /api/v1/admin/ |
Admin channel settings |
GET/POST /api/v1/emotes/ |
Emote management |
GET/POST /api/v1/filters/ |
Chat filter management |
GET/POST /api/v1/polls/ |
Poll management |
GET /api/v1/library/ |
Media library search |
GET/PUT/DELETE /api/v1/kv/ |
Key-value store |
GET /api/v1/state/ |
Channel state queries |
Configuration
| Key | Description | Default |
|---|---|---|
nats_url |
NATS server URL | nats://localhost:4222 |
channel |
CyTube channel name | required |
api_key |
API authentication key | required |
host |
Listen address | 0.0.0.0 |
port |
Listen port | 8080 |
log_level |
Logging level | info |
Systemd Service
A systemd unit file is provided at systemd/kryten-api-gate.service.
Development
git clone https://github.com/grobertson/kryten-api-gate
cd kryten-api-gate
pip install -e ".[dev]"
uvicorn kryten_api_gate.app:create_app --factory --reload
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
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
File details
Details for the file kryten_api_gate-0.2.0.tar.gz.
File metadata
- Download URL: kryten_api_gate-0.2.0.tar.gz
- Upload date:
- Size: 14.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1a7d3df647f0676ffd15c26f4656bc028e3c62b8651af13e79261937fc0aa005
|
|
| MD5 |
85933fa7128baf135f3d73afdcd89b06
|
|
| BLAKE2b-256 |
9d5c38ab6018e3727bb59b0cf70206f7e591e08ce5a49f39c351a96bce843eb3
|
File details
Details for the file kryten_api_gate-0.2.0-py3-none-any.whl.
File metadata
- Download URL: kryten_api_gate-0.2.0-py3-none-any.whl
- Upload date:
- Size: 16.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3b5c587857b1ea8fc1ae62cb15483292e5a7853162fd3bb56a587a46600f0d69
|
|
| MD5 |
96831b3abdfc9e55c22beda636e75864
|
|
| BLAKE2b-256 |
8c174a1eeaaa2fd907d67e07a3529c062659dd6264e6d2707cec61e1a80a99fc
|