Bookivox Python SDK
Official Python client and CLI for the Bookivox API: typed access to agents, node types, tools, knowledge-base documents, recordings, credentials and test calls.
- Typed: generated
TypedDictmodels and typed method signatures (py.typed). - Safe by default: timeouts, retries on idempotent verbs only, typed errors, no secret logging.
- One install:
pip install bookivoxgives you both the SDK and thebookivoxCLI. - Single runtime dependency:
httpx.
Requirements
- Python 3.11 or newer.
- A Bookivox API key (
bookeys_sk-...), created in API keys.
Install
python3 -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\Activate.ps1
pip install bookivox
uv add bookivox # or: poetry add bookivox
Verify the installation:
python -c "import bookivox_sdk; print(bookivox_sdk.__version__)"
bookivox --version
Authenticate
The API key is read from the api_key argument, then from BOOKIVOX_API_KEY:
export BOOKIVOX_API_KEY="bookeys_sk-..."
import os
from bookivox_sdk import Bookivox
client = Bookivox(
api_key=os.environ["BOOKIVOX_API_KEY"], # or omit to use the env var
timeout=30.0,
max_retries=2, # idempotent requests only
)
| Parameter | Env var | Default |
|---|---|---|
api_key |
BOOKIVOX_API_KEY |
Required |
timeout |
none | 30.0 |
max_retries |
none | 2 |
The API origin is https://api.bookivox.com and is not configurable.
Quick start
import os
from bookivox_sdk import Bookivox
with Bookivox(api_key=os.environ["BOOKIVOX_API_KEY"]) as client:
for workflow in client.list_workflows():
print(workflow["id"], workflow.get("name"))
Bookivox is a context manager: with closes the underlying connection pool.
Methods
| Method | HTTP | Description |
|---|---|---|
list_workflows(*, status=None) |
GET /workflow/fetch |
List the organization's agents |
get_workflow(workflow_id) |
GET /workflow/fetch/{id} |
Fetch one agent |
create_workflow(body) |
POST /workflow/create/definition |
Create an agent |
update_workflow(workflow_id, body) |
PUT /workflow/{id} |
Update an agent |
list_node_types() |
GET /node-types |
List node types and their specs |
get_node_type(name) |
GET /node-types/{name} |
Fetch one node type spec |
list_tools(*, status=None, category=None) |
GET /tools/ |
List tools |
create_tool(body) |
POST /tools/ |
Create a tool |
list_documents(*, status=None, limit=None, offset=None) |
GET /knowledge-base/documents |
List knowledge-base documents |
list_recordings(*, workflow_id=None, ...) |
GET /workflow-recordings/ |
List recordings |
list_credentials() |
GET /credentials/ |
List credentials |
test_phone_call(body) |
POST /telephony/initiate-call |
Start a test call (billable) |
Errors
from bookivox_sdk import (
Bookivox,
AuthenticationError,
NotFoundError,
RateLimitError,
ValidationError,
)
try:
with Bookivox() as client:
client.get_workflow("wf_123")
except AuthenticationError:
... # 401: invalid or revoked key
except NotFoundError:
... # 404: unknown agent, or outside your organization
except ValidationError as exc:
print(exc.status_code, exc.body)
except RateLimitError as exc:
print("retry in", exc.retry_after, "s")
Every APIStatusError exposes status_code, request_id and body.
CLI
bookivox login --api-key "$BOOKIVOX_API_KEY"
bookivox config
bookivox workflows list --json
Exit codes: 0 ok, 1 error, 2 usage, 3 auth, 4 not found,
5 rate limit, 6 connection.
Security
- Never commit
.envfiles; load the key from your platform's secret manager. test_phone_calltriggers a real, billable phone call.
Generated code
src/bookivox_sdk/models.py and src/bookivox_sdk/_generated.py are generated
from the API OpenAPI schema and must never be edited by hand. Regenerate them
with ./generate_sdk.sh from the repository root.
Full documentation: https://docs.bookivox.com/sdk/overview.
Metadata
Release files for bookivox 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| bookivox-0.1.1.tar.gz | 13.7 kB | Without provenance | Details for bookivox-0.1.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| bookivox-0.1.1-py3-none-any.whl | Python 3 | none | any | Details for bookivox-0.1.1-py3-none-any.whl |
Total release size: 30.6 kB
Release files / bookivox-0.1.1.tar.gz
| Download URL | bookivox-0.1.1.tar.gz |
|---|---|
| Size | 13.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1a324b0cff83ef7f7e8213a35be647f0a66b36378c25b74462cb2e102bee782b
|
|
BLAKE2b-256 checksum How to use checksums |
013c5f3f716f9a74ad8b9dad2d6e80460470fdb719c7c32c1a62424c19d1c8f1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.5
|
Release files / bookivox-0.1.1-py3-none-any.whl
| Download URL | bookivox-0.1.1-py3-none-any.whl |
|---|---|
| Size | 16.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b91bfda532545bf9bd6912048f397d79f82636bfedc870c050cc2b6528c5e907
|
|
BLAKE2b-256 checksum How to use checksums |
98b09e6268dbfbec646fb4096de1922af59594e07ddfd07fdf2049451512c051
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.5
|
Security for bookivox 0.1.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.