API usage & costs
This doc lists features that can invoke API keys and where their costs show up. It focuses on crocbot features that can generate provider usage or paid API calls.Where costs show up (chat + CLI)
Per-session cost snapshot/statusshows the current session model, context usage, and last response tokens.- If the model uses API-key auth,
/statusalso shows estimated cost for the last reply.
/usage fullappends a usage footer to every reply, including estimated cost (API-key only)./usage tokensshows tokens only; OAuth flows hide dollar cost.
crocbot status --usageandcrocbot channels listshow provider usage windows (quota snapshots, not per-message costs).
How keys are discovered
crocbot can pick up credentials from:- Auth profiles (per-agent, stored in
auth-profiles.json). - Environment variables (e.g.
OPENAI_API_KEY,BRAVE_API_KEY,FIRECRAWL_API_KEY). - Config (
models.providers.*.apiKey,tools.web.search.*,tools.web.fetch.firecrawl.*,memorySearch.*,talk.apiKey). - Skills (
skills.entries.<name>.apiKey) which may export keys to the skill process env.
Features that can spend keys
1) Core model responses (chat + tools)
Every reply or tool call uses the current model provider (OpenAI, Anthropic, etc). This is the primary source of usage and cost. See Models for pricing config and Token use & costs for display.2) Media understanding (audio/image/video)
Inbound media can be summarized/transcribed before the reply runs. This uses model/provider APIs.- Audio: OpenAI / Groq / Deepgram (now auto-enabled when keys exist).
- Image: OpenAI / Anthropic / Google.
- Video: Google.
3) Memory embeddings + semantic search
Semantic memory search uses embedding APIs when configured for remote providers:memorySearch.provider = "openai"→ OpenAI embeddingsmemorySearch.provider = "gemini"→ Gemini embeddings- Optional fallback to OpenAI if local embeddings fail
memorySearch.provider = "local" (no API usage).
See Memory.
4) Web search tool (Brave / Perplexity via OpenRouter)
web_search uses API keys and may incur usage charges:
- Brave Search API:
BRAVE_API_KEYortools.web.search.apiKey - Perplexity (via OpenRouter):
PERPLEXITY_API_KEYorOPENROUTER_API_KEY
- 2,000 requests/month
- 1 request/second
- Credit card required for verification (no charge unless you upgrade)
5) Web fetch tool (Firecrawl)
web_fetch can call Firecrawl when an API key is present:
FIRECRAWL_API_KEYortools.web.fetch.firecrawl.apiKey
6) Provider usage snapshots (status/health)
Some status commands call provider usage endpoints to display quota windows or auth health. These are typically low-volume calls but still hit provider APIs:crocbot status --usagecrocbot models status --json
7) Compaction safeguard summarization
The compaction safeguard can summarize session history using the current model, which invokes provider APIs when it runs. See Session management + compaction.8) Model scan / probe
crocbot models scan can probe OpenRouter models and uses OPENROUTER_API_KEY when
probing is enabled.
See Models CLI.
9) Talk (speech)
Talk mode can invoke ElevenLabs when configured:ELEVENLABS_API_KEYortalk.apiKey
10) Skills (third-party APIs)
Skills can storeapiKey in skills.entries.<name>.apiKey. If a skill uses that key for external
APIs, it can incur costs according to the skill’s provider.
See Skills.