API reference
Tenants
A tenant owns namespaces, keys, usage and a bill.
List your tenants
GET
/v1/tenants With your role in each (a key sees its own tenant).
Status codes
200OK |
401No key, or an unknown or revoked one. |
curl -s https://api.skimmerdb.com/v1/tenants \
-H "Authorization: Bearer $KEY"from skimmerdb import SkimmerDB
from skimmerdb._api.api.tenants import list_tenants
db = SkimmerDB() # SKIMMERDB_KEY
answer = list_tenants.sync(client=db.api)import { SkimmerDB } from "skimmerdb";
import { listTenants } from "skimmerdb/api";
const db = new SkimmerDB(); // SKIMMERDB_KEY
const { data } = await listTenants({ client: db.client });Create a tenant
POST
/v1/tenants A new tenant you own (a login only: keys belong to one tenant). Act for it with X-Tenant:
Body application/json
namestringrequired |
Answer
idinteger |
namestring |
planstring |
statusstring |
rolestring |
created_atstring |
Status codes
201Created |
401No key, or an unknown or revoked one. |
403The key's scope or namespaces don't allow it, or the tenant is suspended. |
422Invalid: the message says why (code invalid with fields: which input fields; query_timeout: past the plan's time limit; scan_refused: send scan: true). |
curl -s https://api.skimmerdb.com/v1/tenants \
-H "Authorization: Bearer $KEY" \
-d '{"name":"Acme staging"}'from skimmerdb import SkimmerDB
from skimmerdb._api.api.tenants import create_tenant
from skimmerdb._api.models import TenantRequest
db = SkimmerDB() # SKIMMERDB_KEY
answer = create_tenant.sync(client=db.api, body=TenantRequest.from_dict({"name":"Acme staging"}))import { SkimmerDB } from "skimmerdb";
import { createTenant } from "skimmerdb/api";
const db = new SkimmerDB(); // SKIMMERDB_KEY
const { data } = await createTenant({ client: db.client, body: {"name":"Acme staging"} });{
"id": 43,
"name": "Acme staging",
"plan": "free",
"status": "active",
"role": "owner",
"created_at": "2026-10-06T09:00:00Z"
}Delete a tenant
DELETE
/v1/tenants/{id} The tenant, its namespaces, keys and usage, for good (its owner; not your account's own tenant).
Parameters
idstring · pathrequired |
Status codes
204Done (no body) |
401No key, or an unknown or revoked one. |
404No such namespace, document, key or tenant (or one this key may not see: the same answer). |
409Exists already, or not possible in this state. |
curl -s -X DELETE https://api.skimmerdb.com/v1/tenants/t-1 \
-H "Authorization: Bearer $KEY"from skimmerdb import SkimmerDB
from skimmerdb._api.api.tenants import delete_tenant
db = SkimmerDB() # SKIMMERDB_KEY
answer = delete_tenant.sync("t-1", client=db.api)import { SkimmerDB } from "skimmerdb";
import { deleteTenant } from "skimmerdb/api";
const db = new SkimmerDB(); // SKIMMERDB_KEY
const { data } = await deleteTenant({ client: db.client, path: { id: "t-1" } });