/docs
Build against one endpoint,reach every model.
OpenAI-compatible surfaces for chat, image generation, auth, and credits. Bearer-authenticated, streaming when you ask for it, signed webhooks on every relevant event. Each credit-metered call is audited with a per-key ledger you can inspect in the dashboard.
curl https://api.naravirtual.ai/v1/chat/completions \
-H "Authorization: Bearer $NARA_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-3-5-sonnet",
"messages": [{ "role": "user", "content": "Hello." }]
}'OpenAI-compatibledrop-in for openai-python
/docs#reference
Start where you need it.
Each reference is a standalone page — code samples, wire formats, error codes, retry behavior. Keep this tab open alongside your editor.
API reference
Every public endpoint in one page — auth, chat, image, credits, contact. Method, path, params, response shape, status codes, and drop-in curl / JavaScript / Python samples per call.
Webhooks
How to receive NARA webhooks, verify signatures, de-dupe on delivery IDs, and what we do when your endpoint is slow or down.
API keys
Name, scope, and cap your keys. Rotate without breaking running clients — keys are independent, and so are their credit ceilings.
/docs#surfaces
Two requests, two surfaces.
curl https://api.naravirtual.ai/v1/chat/completions \
-H "Authorization: Bearer $NARA_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-3-5-sonnet",
"messages": [{ "role": "user", "content": "Hello." }]
}'streaming optional22 models
curl https://api.naravirtual.ai/v1/image/generations \
-H "Authorization: Bearer $NARA_KEY" \
-H "Content-Type: application/json" \
-d '{
"prompt": "an editorial portrait, warm tungsten",
"size": "1024x1024",
"n": 1
}'multipart insigned URLs out
/start
Mint a key and start calling.
100 free credits. No card. The same credential works in Chat, Image, and Canvas.