API reference
Both endpoints are OpenAI-compatible, so any OpenAI SDK, LiteLLM, LangChain or plain HTTP client works. The endpoint is the same for everyone — only your key differs.
Chat completions — dhandare-4-mini
POST https://models.quantforge.co.in/v1/chat/completions
curl https://models.quantforge.co.in/v1/chat/completions \
-H "Authorization: Bearer YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "dhandare-4-mini",
"messages": [
{"role": "system", "content": "You are a health-check probe. Reply with exactly the word: OK"},
{"role": "user", "content": "Reply with exactly the word: OK"}
]
}'
The x-api-key header is
accepted too, for Anthropic-style clients.
Embeddings — dhandare-embed-1
POST https://embeddings.quantforge.co.in/v1/embeddings
curl https://embeddings.quantforge.co.in/v1/embeddings \
-H "Authorization: Bearer YOUR_EMBED_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "dhandare-embed-1", "input": "text to embed"}'
Returns 384-dimensional vectors, L2-normalised.
input accepts a string or an array of strings.
Usage and billing in the response
"usage": {
"prompt_tokens": 812,
"completion_tokens": 143,
"total_tokens": 955,
"prompt_tokens_details": { "cached_tokens": 640 }
}
Repeating the same system prompt within 5 minutes bills those tokens at the cheaper cached rate. These are exactly the numbers debited from your wallet.
Errors
| Status | Code | Meaning |
|---|---|---|
| 401 | invalid_api_key | Key is wrong or was revoked by regeneration. |
| 401 | wrong_product_key | You used the other product's key. |
| 402 | subscription_expired | No active plan — renew in the console. |
| 402 | insufficient_balance | Wallet exhausted — recharge in the console. |
| 403 | account_disabled | Account disabled by an administrator. |
What this model is — and is not
dhandare-4-mini is a deterministic work model, not a general LLM. It serves defined task shapes — trading-signal narration, post-trade reflection, bull/bear debate, assistant planning (including read-only SQL over a supplied schema) and answer formatting — and returns the same output for the same input, every time, with no GPU and no third-party API behind it. Prompts outside those shapes get an explicit "unsupported task" reply: this model never invents prose to look clever.