Demo chat.
A public, unauthenticated endpoint backed by a fixed engagement context. Useful for prototypes and marketing integrations. Do not rely on it for production traffic.
Contexts never mix
The demo endpoint uses a hardcoded DEMO_SYSTEM_PROMPT that describes a fictional manufacturing engagement (Vantage Industrial Group). It never reads from your organization's database rows, and the live endpoint never falls through to the demo prompt. Do not proxy one to the other.
Contract
/api/chat/demoStableStream an assistant reply conditioned on the fixed Vantage Industrial Group engagement.
Request body
messagesrequiredSame shape as live chat — non-empty array; final message must have role "user". The server does not reconstruct history, so clients should include prior turns in the array for conversational continuity.
Example request
curl -N -X POST https://app.corvanahq.com/api/chat/demo \
-H "Content-Type: application/json" \
-d '{
"messages": [
{ "role": "user", "content": "Walk me through Vantage in two sentences." }
]
}'Example response
200 OK — streamed plain textMargaret, here's the short version — we've surfaced roughly $14.2M in …
Error codes
| Code | Status | Description |
|---|---|---|
INVALID_JSON | 400 | Request body could not be parsed. |
MISSING_MESSAGES | 400 | `messages` missing or empty. |
RATE_LIMITED | 429 | 15 requests per hour per client IP — see Retry-After. |
UPSTREAM_OVERLOADED | 503 | Anthropic overloaded. |
UPSTREAM_ERROR | 502 | Other model-side error. |
Differences from live chat
- No authentication. The demo endpoint does not check session cookies.
- No persistence. No
ConversationorChatMessagerows are written. - No conversation header.
X-Conversation-Idis not set. - Lower budget.
max_tokensis 2048 (live is 4096) and output effort ismedium(live ishigh). Answers are shorter by design. - Fixed prompt. The system prompt is a single cached text block describing Vantage. L4–L6 dynamic layers are not composed.
- IP rate limit. 15 requests per hour per source IP, derived from the first token of
x-forwarded-for(orx-real-ip). See Rate limits.
When to use the demo endpoint
- Prototyping a UI integration before provisioning an organization.
- Marketing or sales surfaces that need a no-sign-in conversational demo.
- Public benchmarking of streaming behavior, time-to-first-byte, or formatting fidelity.
For anything that needs an organization's actual context, engagement memory, or compliance posture — use the live endpoint.