Provider coverage
Which providers and call styles the SDK records, including the gaps. Coverage is uneven and this page is the matrix.
Coverage is uneven. This page lists what is and is not recorded.
Coverage matrix
| Provider | Sync | Async | Streaming | Errors |
|---|---|---|---|---|
| Anthropic | Yes | Yes | Yes | Yes |
| OpenAI chat | Yes | Yes | Yes | Yes |
| OpenAI embeddings | Yes | Yes | n/a | Yes |
Google google-genai | Yes | No | No | Yes |
Google google-generativeai | Yes | Yes | No | Yes |
| AWS Bedrock | Yes | No | No | Yes |
| Mistral | Yes | No | No | Yes |
| Cohere | Yes | No | No | Yes |
| Vertex AI | Yes | No | No | Yes |
| OpenAI-compatible | Yes | Yes | Yes | Yes |
Anthropic and OpenAI are fully covered. They also account for the majority of usage, which is why they were implemented first, and they are verified against the live APIs on every release rather than only against mocks.
Everything else covers the synchronous path. Async Gemini and streaming Mistral calls are
not recorded. Use record() to report them.
What a recorded call contains
Model, provider, real token counts from the provider response, computed cost, latency, your attribution, and the file and line that made the call.
A recorded error contains the exception's type name at zero cost, so failure rates are visible per agent and per model.
Providers priced in the catalog
The catalog covers more providers than the matrix above, because OpenAI-compatible vendors use the OpenAI client:
Anthropic, OpenAI, Google (Gemini), Vertex AI, AWS Bedrock, Mistral, Cohere, Groq, DeepSeek, xAI, Together, Fireworks, Perplexity.
A model outside the catalog is still recorded and priced with a fallback estimate. See Cost and pricing.
No provider configuration
There is no per-provider setup. init() imports whatever is installed and patches it.
Missing libraries are skipped. To check what was patched:
capsera.get_interception_report()
patched means recorded, not-installed means the library is absent, and unpatched
means init() has not run yet.
Two limitations that apply to all providers
Embeddings bypass routing and budgets. They are recorded and costed, but skip routing, pre-call budget enforcement, and prompt analysis. This matters most for indexing jobs.
Streaming depends on how the response is consumed. Token counts only exist once a stream ends, so an abandoned stream is not recorded, and Anthropic streams iterated without a context manager are a known gap. See Troubleshooting.