Enterprise API
Enterprise is an overlay on the shared Clavue account — not a billed SKU and not a second login. Commercial auto-approves so other products can connect immediately. Enterprise waits for ops review, then uses the same OpenAI-compatible API.
Apply & console
Sign in at /account, then open /enterprise/apply. After approval, manage keys and IPs at /enterprise/console. /enterprise/login only returns you to the shared account with next=/enterprise/console.
- Commercial — auto-approved, mint cv_ent_ immediately
- Enterprise — pending until ops approve or reject
- Rejected orgs can apply again
- Personal cv_live_ keys stay on /api-keys
Connection
Point any OpenAI-compatible client at api.clavue.com. Use the org key as the Bearer token. Other Clavue products (CLI, GUI, Chat, your own servers) use the same base URL.
export OPENAI_BASE_URL=https://api.clavue.com/v1
export OPENAI_API_KEY=cv_ent_…
curl -s $OPENAI_BASE_URL/models \
-H "Authorization: Bearer $OPENAI_API_KEY"
curl -s $OPENAI_BASE_URL/chat/completions \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"clavue-2.1","messages":[{"role":"user","content":"Hello"}]}'OpenAI SDK
Same pattern as personal keys. Swap the token prefix from cv_live_ to cv_ent_.
from openai import OpenAI
client = OpenAI(
api_key="cv_ent_...",
base_url="https://api.clavue.com/v1",
)
r = client.chat.completions.create(
model="clavue-2.1",
messages=[{"role": "user", "content": "Hello"}],
)
print(r.choices[0].message.content)Connecting server IPs
Every successful API-key auth records the connecting server IP (x-forwarded-for / x-real-ip), last path, user-agent, first/last seen, and request count. Owners see their org table on /enterprise/console. Ops see every key IP on the membership admin Enterprise tab.