Compatible endpoints
Two additional doors onto the same Vedika AI query. Both are stateless adapters on top of the harness pipeline; both share the same auth, the same public model ids, and the same error envelope shapes.
Chat Completions-compatible door
Base URL: https://harness.example.com/openai/v1
curl https://harness.example.com/openai/v1/chat/completions \
-H "Authorization: Bearer <VEDIKA_AGENT_KEY>" \
-H "Content-Type: application/json" \
-d '{
"model": "vedika-standard",
"messages": [
{"role": "user", "content": "What does my chart say about 2026?"}
]
}'
Messages-compatible door
Base URL: https://harness.example.com/anthropic
curl https://harness.example.com/anthropic/v1/messages \
-H "Authorization: Bearer <VEDIKA_AGENT_KEY>" \
-H "anthropic-version: 2023-06-01" \
-H "Content-Type: application/json" \
-d '{
"model": "vedika-standard",
"max_tokens": 1024,
"messages": [
{"role": "user", "content": "What does my chart say about 2026?"}
]
}'
What each door accepts and rejects
Streaming v1
Both doors accept stream: true, but the answer is one-shot:
the full validated answer is delivered in a single delta after
settlement. Token-by-token streaming is reserved for the chat-app door
and is not advertised on the compat surface.
Extension fields
Send Vedika-specific inputs through an extension object. The Chat
Completions door accepts a top-level vedika field; the
Messages door accepts the same shape via extra_body or
top-level prop.
{
"vedika": {
"birth_details": { "date": "1990-06-15", "time": "08:30", "place": "Mumbai" },
"language": "en",
"system": "vedic",
"conversation_id": "conv_..."
}
}