Jivra API
An OpenAI-style HTTP API for Jivra chat, images and short videos. Base URL: https://chundulabs.in (not live yet). All responses are JSON unless noted.
1. Get a free key
curl -X POST https://chundulabs.in/v1/keys -H "Content-Type: application/json" -d '{"accept_terms":true}'The key (starts with ck_) is shown once. Send it as Authorization: Bearer ck_.... We store only a one-way hash of it.
2. Chat
curl https://chundulabs.in/v1/chat/completions \
-H "Authorization: Bearer $JIVRA_KEY" -H "Content-Type: application/json" \
-d '{"model":"auto","messages":[{"role":"user","content":"Explain UPI in 3 lines"}],"max_tokens":300}'
Models (pick with "model"; list them with GET /v1/models): jivra-lite — fastest, everyday questions; jivra-standard — balanced, the default; jivra-pro — best quality, thinks step by step for hard maths, code and reasoning (slower, up to 1,536 tokens); auto — sends simple messages to Lite and hard maths, code or reasoning to Pro. If a model is busy or down, Jivra answers with the next model down and sets "jivra_fallback": true. The old id jivra-1 still works and means jivra-standard.
Reply: {"id":"...","model":"jivra-standard","choices":[{"message":{"role":"assistant","content":"..."}}],"usage":{"prompt_tokens":..,"completion_tokens":..}}. max_tokens is capped at 512 and the last 10 messages are kept. Streaming is not supported yet. Works with OpenAI client libraries by setting base_url to https://chundulabs.in/v1.
3. Images
POST /v1/images/generations {"prompt":"a lotus at sunrise, watercolor","size":"512x512"}
GET /v1/images/jobs/{id} -> {"id","status":"queued|running|done|error","queue_position"}
GET /v1/images/{id}.png -> the picture (only for the key that created it)Sizes: 256x256, 384x384, 512x512. Each image takes 1 to 3 minutes on our CPU servers.
4. Short videos
POST /v1/videos/generations {"topic":"3 tips to save money"} or {"script":"your own text"}
GET /v1/videos/jobs/{id} -> {"status","stage","progress"}
GET /v1/videos/{id}.mp4 GET /v1/videos (your own videos only)Vertical 1080x1920, 20 to 60 seconds, voiceover and captions. Optional lang: en, hi, te.
5. Other endpoints
GET /v1/models: the model you are talking to and its version.GET /v1/usage: your plan, limits and today's use.GET /v1/status: public up/down status (no key needed).
Limits (Free plan)
- Chat: 4 per minute, 30 per day. Images: 2 per hour, 5 per day. Videos: 2 per day.
- Per network: 90 requests a minute in total and 10 chat messages a minute.
- Busy times: requests wait in a short queue (up to about 45 seconds); if it is full you get
503withRetry-After.
Errors
400bad request, or"code":"content_policy"when the safety filter blocks a request.401missing or invalid key.403 "suspended": key paused for 24 hours after repeated policy violations.429rate limit.503busy or maintenance, retry later.504the model took too long.
Every API reply has an X-Request-Id header; quote it when you contact us.
Privacy
We do not store your prompts or chat replies, and we do not log IP addresses. We keep the route, status, timing and token counts for each request so we can keep the service healthy. See the Privacy Policy.