docs
OpenAI-compatible API at https://fable.rizz.zone/v1. One model: claude-fable-5 — 1M context, 128K output, tools, images.
- Sign in and top up (min ₹100).
- Create an API key.
- Point your client at
https://fable.rizz.zone/v1.
Pricing
| per token | per 1M tokens | |
|---|---|---|
| Input | ₹0.005 | ₹5,000 |
| Output (incl. reasoning) | ₹0.01 | ₹10,000 |
No cache discounts. Input is billed before the request is forwarded, from Anthropic's own token count. Output is billed from OpenRouter's final count.
Reasoning
Set reasoning_effort to low · medium · high · xhigh · max. temperature/top_p are not supported and get stripped.
Clients
curl
curl https://fable.rizz.zone/v1/chat/completions \
-H "Authorization: Bearer $UHH_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-fable-5",
"messages": [{"role": "user", "content": "hello"}],
"reasoning_effort": "medium",
"stream": true
}'
opencode
In opencode.json, with UHH_API_KEY in your environment. Each reasoning effort is a variant — cycle them with the variant_cycle keybind or pin one as uuuuuuuhhhhhh/claude-fable-5:
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"uuuuuuuhhhhhh": {
"npm": "@ai-sdk/openai-compatible",
"name": "uuuuuuuhhhhhh",
"options": {
"baseURL": "https://fable.rizz.zone/v1",
"apiKey": "{env:UHH_API_KEY}"
},
"models": {
"claude-fable-5": {
"name": "Claude Fable 5",
"reasoning": true,
"tool_call": true,
"attachment": true,
"limit": { "context": 1000000, "output": 128000 },
"variants": {
"low": { "reasoningEffort": "low" },
"medium": { "reasoningEffort": "medium" },
"high": { "reasoningEffort": "high" },
"xhigh": { "reasoningEffort": "xhigh" },
"max": { "reasoningEffort": "max" }
}
}
}
}
}
}
pi
In ~/.pi/agent/models.json. pi's five thinking levels map onto Fable's five efforts (minimal→low … xhigh→max), so the whole range is reachable from the thinking selector:
{
"providers": {
"uuuuuuuhhhhhh": {
"baseUrl": "https://fable.rizz.zone/v1",
"api": "openai-completions",
"apiKey": "$UHH_API_KEY",
"models": [
{
"id": "claude-fable-5",
"name": "Claude Fable 5",
"reasoning": true,
"input": ["text", "image"],
"contextWindow": 1000000,
"maxTokens": 128000,
"thinkingLevelMap": {
"minimal": "low",
"low": "medium",
"medium": "high",
"high": "xhigh",
"xhigh": "max"
}
}
]
}
}
}
Claude Code
Not recommended — it expects other Claude models (haiku etc.) that we don't serve.
Billing rules & limits
- Input is charged up front. If it takes you below zero you get a 402, the request is not forwarded, and the charge stands.
max_tokensis capped to what your balance affords. Responses stopped by that cap show asbalance_cappedin history; streams that outrun it get cut off. Either way you pay for what was generated.- 50 requests/minute, 3 concurrent requests per account.
- Global weekly spend cap — when hit, everything 503s until Monday 00:00 UTC. Your balance is unaffected.
- Top-ups are non-refundable. MyPayIndia reversals debit your balance.