usage.cost. Per-user and
AccountKit-gated like other primitives (naive.forUser(id).llm).
chat and stream require a paid account — this is the one primitive the free signup credits
do not buy. On an account that has never bought credits or subscribed, both throw a NaiveError
with code: "llm_routing_requires_payment" (echoed as details.block_reason); branch
on that rather than on the 402, since it is not fixed by retrying or by more free credit. One
credit purchase or one subscription clears it permanently. models() and generation() are free
and never gated.Prefer the drop-in proxy (
baseURL: https://api.usenaive.ai/v1/proxy/openrouter)
if you want to keep using the OpenAI/OpenRouter SDK unchanged. See
LLM → Use Naive instead of OpenRouter.