Observability
Per-request response headers, usage analytics, and the audit log. Trace any request, any time.
Response headers
Every response from /v1/chat/completions includes a set of x-conduix-* headers that explain exactly what happened.
curl -i https://api.conduix.ai/v1/chat/completions \
-H "Authorization: Bearer cx_live_…" \
-H "Content-Type: application/json" \
-d '{"model":"gpt-4o-mini","messages":[{"role":"user","content":"hi"}]}' \
| grep -i ^x-conduixfrom openai import OpenAI
client = OpenAI(api_key="cx_live_…", base_url="https://api.conduix.ai/v1")
response = client.chat.completions.with_raw_response.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": "Hello"}],
)
print("provider: ", response.headers.get("x-conduix-provider"))
print("model served:", response.headers.get("x-conduix-model-served"))
print("latency: ", response.headers.get("x-conduix-latency-ms"), "ms")
parsed = response.parse()Usage analytics
The dashboard shows by-model breakdowns over any date range: /dashboard/usage. Each row carries the provider as a badge, total tokens, request count, and spend in credits.
For programmatic access, hit GET /api/usage?bucket=day with your dashboard JWT — returns the same data structured for charting.
Audit log
The audit log captures org-level events — logins, key creation/revocation, billing events, policy changes, member invites/removals. View at /dashboard/audit.
Request IDs
Every API response carries an x-conduix-request-id header (e.g. cx-req-abc123…). Include this id in support emails — it lets us pull the full request trace immediately. The same id appears in every log line tied to that request, server-side.
Errors
Conduix returns OpenAI-compatible error envelopes. Common codes:
SLA & uptime
Conduix routes around individual provider outages — when one provider trips its circuit breaker, traffic auto-fails over to the next entry in the chain. Customers don't see the failure. Custom SLAs available with Scale and Enterprise plans; talk to sales.