Response Shape
The 200 envelope, field by field — answer, chart, follow-ups and the cost breakdown.
A 200 returns the reading plus a complete usage and cost breakdown. Billing and usage are nested under metadata.
#Response envelope
{
"answer": "Based on your chart, the 10th house lord ...",
"response": "…(same as answer)…",
"birthChart": { "...": "computed chart" },
"conversationId": "1a8cee6b-…",
"followUps": ["…"],
"metadata": {
"cost": { "costUsd": 0.0253, "currency": "USD" },
"usage": { "input_tokens": 12084, "output_tokens": 291,
"cached_tokens": 0, "total_tokens": 12375 },
"wallet": { "balance_before": 50, "deducted": 0.0253,
"balance_after": 49.9747, "currency": "USD" },
"speed": "standard",
"language": "en"
},
"success": true
}#Field reference
- answer / response
- The reading, in the requested or detected language (both carry the same text).
- birthChart
- The computed chart the reading is grounded in — your citation surface (see Grounding).
- conversationId
- Echo it on the next request for multi-turn memory.
- followUps
- Suggested next questions you can surface in the UI.
- metadata.cost.costUsd
- The displayed charge in USD; use the wallet fields for the actual debit and balance.
- metadata.usage
- Token breakdown, including
cached_tokens. - metadata.wallet.deducted
- Amount charged to the wallet for this call.
- metadata.wallet.balance_after
- Wallet balance after this call.
- metadata.speed / language
- The tier and language actually used.
#Structured output
With "responseFormat": "json", the body also includes a structuredResponse object built from the reading — convenient when you render fields rather than prose. See Structured Outputs.
Note
A query answered from the cache — or served by a direct chart calculation without calling the reasoning engine — is charged a flat
$0.01 and returns usage: {0,0,0}, because no tokens were generated. A short but novel question still reaches the engine and is billed at its tier's normal rate. The actual wallet debit is metadata.wallet.deducted. See Prompt Caching.