Python SDK - Installation#
rafikidb is a typed client for the RafikiDB API: data, auth, realtime,
storage, environment variables, secrets, webhooks, edge functions and
payments.
- Python 3.10+
- Zero required dependencies (stdlib
urllib) - Optional
websocketsextra for the WebSocket realtime transport - Same envelope and error model as the REST API
Install#
pip install rafikidb
# WebSocket realtime (recommended in production)
pip install rafikidb[realtime]
BashInitialize#
from rafikidb import create_client
db = create_client(
project_id="5c73dab0-...",
api_key="raf_live_...",
base_url="https://api.rafikidb.com/api/v1", # optional
session=None, # optional: restore a persisted session
timeout=30.0, # optional: request timeout in seconds
)
Python| Option | Type | Description |
|---|---|---|
project_id | str | Required. Used by auth/realtime URLs |
api_key | str | Required. Sent as X-AFRIBASE-API-Key |
base_url | str | None | Default http://localhost:8080/api/v1 |
session | dict | None | Restore a project-user session (see Auth) |
timeout | float | Request timeout in seconds (default 30.0) |
Responses#
Every method returns the API envelope unchanged:
rows = db.from_("profiles").select().limit(10).execute()
rows.success # True
rows.message # "Request was successful"
rows.data # list[dict] | None
rows.errors # list[str]
PythonFailures raise RafikiDBError:
from rafikidb import RafikiDBError
try:
db.from_("profiles").insert({})
except RafikiDBError as err:
err.message # "Nationality is required"
err.status # 400
err.code # "invalid_input"
err.errors # ["Nationality is required"]
PythonNext: Data.