CyborgDB Service
CyborgDB Service is the FastAPI-based REST API server for CyborgDB — the vector database that stays encrypted even while it's searching. It serves encrypted vector ingestion, search, and retrieval over HTTP: vectors stay encrypted through search, and only the result of a query is decrypted. Run it yourself in your own VPC or on-prem.
Features
- Encryption-in-use: Vectors stay encrypted at rest, in transit, and through search — only the query result is decrypted
- Encrypted ANN: Disk-backed encrypted DiskIVF index with recall within 2% of a plaintext baseline (read the benchmarks)
- Filters on encrypted metadata: Combine vector similarity with equality and range predicates in a single request
- BYOK / HYOK: Per-index key wrapping via AWS KMS or AWS Secrets Manager, including cross-account BYOK (see
BYOK.md) - Per-tenant key isolation: Per-index, per-user keys with cryptographic RBAC; revoke a user and their keys are erased
- Multiple backing stores: Embedded RocksDB disk or AWS S3 / S3-compatible object storage
Getting Started
To get started in minutes, check out our Quickstart Guide.
Installation
- Install
cyborgdb-service
pip install cyborgdb-service
# GPU (CUDA 12): pip install cyborgdb-service-cu12
- [Optional] Set an API key for unlimited usage — without one the service runs in free-tier mode (per-index cap of 1M items)
export CYBORGDB_API_KEY=your_api_key_here # optional; unset runs free tier
- [Optional] Choose a storage backend (default:
diskat~/.cyborgdb/data)
export CYBORGDB_DB_TYPE='disk|s3' # default: disk
export CYBORGDB_DISK_PATH=/path/to/data # disk only; default ~/.cyborgdb/data
export CYBORGDB_S3_BUCKET=my-bucket # s3 only (required)
Tip: Run cyborgdb-service --help for a detailed list of all configuration options.
- Run the server
cyborgdb-service
Storage Backends
| Backend | Select with | Notes |
|---|---|---|
| Disk (default) | CYBORGDB_DB_TYPE=disk |
Embedded RocksDB. CYBORGDB_DISK_PATH sets the data directory (default ~/.cyborgdb/data). |
| S3 | CYBORGDB_DB_TYPE=s3 |
Requires CYBORGDB_S3_BUCKET. Optional: CYBORGDB_S3_REGION, CYBORGDB_S3_PREFIX, CYBORGDB_S3_ENDPOINT. |
S3 credentials
Each AWS-touching client (S3 storage, KMS) resolves credentials independently:
- On AWS (ECS/EC2/EKS) — set nothing; the AWS default credential provider chain picks up the instance/task role.
- Off AWS, real S3 — provide
AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEYenv vars or a mounted AWS profile; the default chain picks them up. - S3-compatible endpoint (MinIO etc.) — set
CYBORGDB_S3_ENDPOINTplus explicitCYBORGDB_S3_ACCESS_KEY/CYBORGDB_S3_SECRET_KEY(and optionallyCYBORGDB_S3_SESSION_TOKEN). A custom endpoint is not AWS: the AWS chain is never used against it, and startup fails fast if the explicit keys are missing. TheCYBORGDB_S3_*namespace is kept separate fromAWS_*so storage credentials can't collide with KMS credentials.
YAML Configuration File (optional)
Everything settable by environment variable can also live in a YAML file —
see cyborgdb.example.yaml. The file is resolved
from CYBORGDB_CONFIG_FILE, then ./cyborgdb.yaml, ./cyborgdb.yml,
/etc/cyborgdb/cyborgdb.yaml. Environment variables override the file on
conflict. The YAML file is also where the per-index KMS registry
(kms.registry:) is configured.
API Key Configuration
The CYBORGDB_API_KEY is the cyborgdb-core license key (not a service-auth credential).
It is optional — when unset, the service runs in free-tier mode (per-index cap of 1M
items). To unlock unlimited usage, provide your key using any of these methods:
Method 1: Environment Variable (Easiest)
export CYBORGDB_API_KEY=your_api_key_here
cyborgdb-service
Method 2: .env File
Create a .env file in the project root:
CYBORGDB_API_KEY=your_api_key_here
Then run:
cyborgdb-service
Method 3: Inline with Launch
CYBORGDB_API_KEY=your_api_key_here cyborgdb-service
Service Authentication
Request authentication is controlled by CYBORGDB_SERVICE_ROOT_KEY — separate from the
CYBORGDB_API_KEY license key above:
- Unset (default): authentication is disabled and the service accepts every request. Do not run a network-exposed deployment this way.
- Set: authentication is enabled. Clients must send the key in the
X-API-Keyheader. Routes accept the root key or acdbk_user token minted under it, and the root key can mint per-user API keys.
export CYBORGDB_SERVICE_ROOT_KEY=your_root_key_here
# then call the API with: -H "X-API-Key: your_root_key_here"
Documentation
For more information on CyborgDB, see the Cyborg Docs.
License
CyborgDB Service is licensed under the MIT License. The underlying library, CyborgDB Core, is licensed under Cyborg's Terms of Service.
Metadata
Release files for cyborgdb-service 0.18.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| cyborgdb_service-0.18.0.tar.gz | 2.0 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| cyborgdb_service-0.18.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 2.1 MB
Release files / cyborgdb_service-0.18.0.tar.gz
| Download URL | cyborgdb_service-0.18.0.tar.gz |
|---|---|
| Size | 2.0 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0f1bde97500198f82e999a4dcea2fb456479d0c95212319755eea52cf09d7f00
|
|
BLAKE2b-256 checksum How to use checksums |
9341589091e2284abb5d10d4cd5e14753885cf1d85b2baa9bf6eb97d818ce01f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 1, 2026.
Transparency logRelease files / cyborgdb_service-0.18.0-py3-none-any.whl
| Download URL | cyborgdb_service-0.18.0-py3-none-any.whl |
|---|---|
| Size | 92.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
6879b1746033e5d5cacf422243b3aadcbacb40424736c796ee07ea1ee0b5a7be
|
|
BLAKE2b-256 checksum How to use checksums |
630ca15e0fa68461645d229a6a686c8b5864d18c3668d5251a827694b09e354a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 1, 2026.
Transparency log