Skip to main content

CLI First

# Check usage and buy more credits
naive usage --days 30
naive billing packs
naive billing topup --pack medium

How Credits Work

Every company has a credit balance. Operations deduct credits on use. New accounts start with 20 free credits.

Credit Costs

Each credit is worth $0.50 USD.

Fixed-Price Operations

OperationCreditsCharging
Email send1Immediately on success
Web search1Immediately on success
URL read0.5Immediately on success
Research (quick)3Immediately on success
Research (thorough)5On job completion
Research (exhaustive)8On job completion
CEO run (pre-check)5Pre-check on run start
Stock photo search0Free
Browser session open0Free (time floor billed at close)
Browser navigate / act / extract / observe / screenshot1 eachImmediately per action
Browser autonomous signup4On success (approval-gated)
Browser autonomous login3On success
Browser session time floor1–3At close, by elapsed time (≤5 / ≤15 / ≤30 min)

LLM Calls

There are two ways LLM usage is billed, both per-token and deducted after the call completes (after the final SSE event for streams):
  • The llm primitive & OpenRouter proxy (POST /v1/llm/chat/completions, naive.llm.chat(), and the /v1/proxy/openrouter/* drop-in). These route through OpenRouter, which returns the exact USD cost of each call. Naive bills that returned usage.cost × markup, converted to credits — so there’s no per-model rate table and pricing always tracks OpenRouter. See the LLM primitive.
  • Orchestration LLM calls (CEO agent / employees). These flow through the Anthropic/OpenAI/Google proxies and are billed per-token using the rates below, with cache read tokens billed at a discount and cache creation at a premium.
ModelInput (per 1M tokens)Output (per 1M tokens)
Claude Opus 4.512.5 credits62.5 credits
Claude Opus 437.5 credits187.5 credits
Claude Sonnet 4 / 4.57.5 credits37.5 credits
Claude Haiku 4.52.5 credits12.5 credits
Claude Haiku 3.52 credits10 credits
GPT-4o6.25 credits25 credits
GPT-4o Mini0.375 credits1.5 credits
Gemini 2.0 Flash0.1875 credits0.75 credits
Gemini 2.5 Pro3.125 credits25 credits
LLM costs are deducted automatically after each API call completes. For streaming responses, usage is extracted from the final SSE event and deducted post-stream. Built-in web search tool use is also billed when used.

Dynamic-Price Operations (Image/Video Generation)

Image and video generation costs are model-dependent and calculated dynamically. Use the pricing endpoints to preview costs before submitting:
GET /v1/images/pricing?model=fal-ai/flux/schnell&num_images=2
GET /v1/video/pricing?model=fal-ai/kling-video/v3/pro/text-to-video&duration=5
Response:
{
  "model": "fal-ai/flux/schnell",
  "estimated_credits": 0.12,
  "unit_price_usd": 0.02,
  "credit_value_usd": 0.50
}

Sync vs Async Charging

Synchronous operations (email, search, URL read, quick research):
  • Credits deducted immediately when the operation succeeds
  • If it fails, no credits are charged
Asynchronous operations (images, video, thorough research):
  1. On submission: pre-check that balance ≥ estimated cost (returns 402 if not)
  2. Job runs in background
  3. On success: credits deducted and transaction recorded
  4. On failure: no charge
Concurrent async jobs can temporarily exceed your balance since pre-checks pass independently. The balance may go slightly negative — subsequent submissions will be blocked once balance drops below threshold.

Checking Your Balance

GET /v1/status
Returns your current balance, tier, and resource counts.

Usage History

GET /v1/usage?days=30&limit=50
Returns transaction history with action type, amount, and reference IDs.

Credit Responses

Every operation that costs credits includes the charge in its response:
{
  "credits_used": 1,
  "credits_remaining": 99
}
For async jobs, the estimated cost is shown on submission:
{
  "job_id": "uuid",
  "estimated_credits": 2,
  "hint": "Credits charged on completion only."
}

Credit Enforcement

All billable operations check your credit balance before executing. When your balance drops to zero or below:
  • API primitives (email send, search, URL read) return 402 insufficient_credits
  • CEO runs are blocked with a credit pre-check (5 credits)
  • LLM proxy calls from the container are rejected, stopping agent work
  • The balance has a small negative buffer (-10 credits) to avoid cutting off mid-stream responses
Credits are enforced at every layer — the API, the LLM proxy, and individual primitive endpoints.

Running Low on Credits?

When your balance hits zero, operations fail with an insufficient_credits error that includes available credit packs. You can buy more anytime:
# See available packs
naive billing packs

# Buy credits
naive billing topup --pack medium   # 50 credits for $23
Or upgrade your plan for more monthly credits:
naive billing upgrade --plan pro    # 200 credits/mo
See Billing & Credits for full details on plans and pricing.