AI & Voice AI credits
The credits command (aliases: credit, ai-credits) mirrors the
dashboard’s two credit widgets and the /ai-credits page. Strictly
read-only — top-ups and refunds happen through billing flows, not here.
Backed by /api/v1/app/ai-credits/* and /api/v1/app/voice-ai/*.
Quick start
splashify credits # full overview (alias: credit)
splashify credits ai # just the AI credit balance
splashify credits transactions # AI credit history
splashify credits voice # Voice AI rate, trial, available
splashify credits agents # list voice agentsWhat “credits” mean here
Two distinct billing pools live behind this command:
| Pool | Used for | Top-up | Unit |
|---|---|---|---|
| AI credits | Maya chat, AI agents, template generation, OCR, sentiment | Add-on purchase or plan grant | Tokens (≈ 4 chars each) |
| Voice AI minutes | Voice AI calls, transcription, TTS | Per-minute billing from wallet | Minutes |
The CLI surfaces both pools via separate subcommands so you can monitor them independently.
Command reference
splashify credits — overview
splashify credits # default — consolidated view
splashify credits info # aliasReturns a merged JSON object with every section the page reads:
{
"ai": {/* AI credit balance + plan grant */},
"voice": {/* Voice AI rate, trial, available minutes */},
"agents": [/* voice agents list */]
}If any section fails it shows up as {"error":"…"} for that key — the
rest still renders.
splashify credits ai — AI credit balance
splashify credits ai # alias: info| Backed by | GET /api/v1/app/ai-credits/info |
|---|
Response shape:
{
"success": true,
"credits": {
"balance": 1245,
"plan_grant": 1000,
"purchased": 245,
"used_this_period": 387,
"expires_at": "2026-06-30T00:00:00Z"
}
}splashify credits transactions — AI credit history
splashify credits transactions # alias: tx
splashify credits transactions --limit 200| Backed by | GET /api/v1/app/ai-credits/transactions[?limit=…] |
|---|
Each row is a credit movement:
{
"transaction_id": "uuid",
"type": "debit", // debit | credit | grant | refund
"amount": 12,
"reason": "maya_chat", // maya_chat | template_gen | ocr | …
"created_at": "2026-05-20T14:00:00Z",
"metadata": {}
}splashify credits voice — Voice AI
splashify credits voice # alias: voice-ai| Backed by | GET /api/v1/app/voice-ai/info |
|---|
Returns the Voice AI rate card and your remaining minutes:
{
"success": true,
"voice": {
"rate_per_minute": 4.50,
"currency": "INR",
"trial_minutes": 10,
"trial_used": 7,
"available_minutes":3,
"wallet_minutes": 1245.5,
"total_available": 1248.5
}
}Trial minutes are granted once on signup; wallet minutes are the rolling balance from your wallet at the Voice AI rate. The page shows
total_availableas the sum of the two.
splashify credits agents — list voice agents
splashify credits agents| Backed by | GET /api/v1/app/voice-ai/agents |
|---|
Returns the voice agents available on the account — each with agent_id,
name, language, voice, is_default.
Common workflows
Daily credit-burn audit
splashify credits transactions --limit 200 | \
jq '.transactions | map(select(.type == "debit")) | group_by(.reason) |
map({reason: .[0].reason, total: (map(.amount) | add), count: length}) |
sort_by(-.total)'Alert when AI credits drop below a threshold
BALANCE=$(splashify credits ai | jq '.credits.balance')
if [ "$BALANCE" -lt 100 ]; then
echo "AI credits low: $BALANCE — top up"
exit 1
fiCross-check Voice AI minutes against today’s calls
USED=$(splashify calling analytics --period today | jq '.analytics.total_minutes // 0')
AVAIL=$(splashify credits voice | jq '.voice.total_available')
echo "Used today: $USED Available: $AVAIL"Find which Maya chats burned the most credits
splashify credits transactions --limit 500 | \
jq '.transactions[] | select(.reason == "maya_chat") |
{created_at, amount, metadata}' | \
jq -s 'sort_by(-.amount) | .[:10]'Troubleshooting
balance not updating after a top-up — the wallet/billing pipeline
backfills the credit balance asynchronously. Wait ~1 minute and re-run
credits ai. If it’s still wrong after 5 minutes, file a ticket with
splashify support create.
voice returns 403 — Voice AI is a paid feature. Check
splashify subscription for the active plan + add-ons.
transactions empty even though credits clearly moved — the
endpoint default limit is 50; you may have scrolled past. Try
--limit 500. Voice AI minute movements are not here — they live
on the wallet (splashify wallet transactions).
expires_at in the past but balance > 0 — purchased credits don’t
expire, but plan-granted credits do. The expires_at only applies to
plan_grant. purchased carries forward indefinitely.
See also
splashify wallet— wallet balance + transactions (separate from AI credits).splashify subscription— active plan and add-ons (including Voice AI).splashify calling— non-Voice-AI calling commands.splashify expenses— per-message billing (separate from AI/Voice credits).