In short: FiscaLLM needs two things, AI usage from your backend and revenue from your billing. This page lists what it connects to and how mature each connection is. For the fine print on what is counted, see what's covered.
One line after each call reads only the model name and token counts from the response.
| Integration | Status | Notes |
|---|---|---|
| OpenAI | Supported | Chat Completions and Responses, including streaming. Cached input is priced separately. |
| Anthropic | Supported | Messages, including streaming. Cache reads and writes are priced separately. |
| Google Gemini | Supported | generateContent, including streaming and long-prompt tiers. |
| OpenAI-compatible APIs | Supported | Groq, OpenRouter, DeepSeek, Together and similar, through the same helper with a provider name. Priced only for models in our table; otherwise set a price or pass the cost. |
| Speech, image and video models | Supported | Per-unit pricing (images, seconds, minutes, characters) for the models in our table; pass the exact cost for others. |
| Embeddings | Supported | Usage is read; the model shows as unpriced until you set a price. |
Revenue is matched to AI cost by user ID, net of fees and tax.
| Integration | Status | Notes |
|---|---|---|
| RevenueCat | Supported | Webhook plus a one-time import of past subscribers. See the docs. |
| Stripe | Beta | Paid invoices, trials, cancellations and refunds from a webhook. USD only; tested against sample payloads. See the docs. |
| Any other billing system | Supported | One call per payment, refund or cancellation through the revenue API. |
| Adapty and Superwall | Planned | A webhook converter for each, on the roadmap. |
| App Store and Google Play directly | Planned | Today use RevenueCat, Stripe or the revenue API. |
Both SDKs have no dependencies and never block or break your response.
| Integration | Status | Notes |
|---|---|---|
| TypeScript and JavaScript SDK | Supported | Node 20+, Bun, Deno (Supabase Edge Functions), Cloudflare Workers, Vercel functions and Firebase Functions. |
| Python SDK | Supported | Any Python 3.9+ app, including FastAPI, Django and Flask. Call flush() before returning in AWS Lambda or Cloud Functions. |
| Other languages | Supported | Any language, through the HTTP API. |
| Kill switch | Supported | Set FISCALLM_DISABLED=1 and the SDK does nothing at all. |
What comes out the other side.
| Integration | Status | Notes |
|---|---|---|
| Email alerts | Supported | A user or the whole app going over a budget you set. |
| Webhook alerts | Supported | Signed with X-FiscaLLM-Signature, so your backend can act on them. |
| Weekly report | Supported | A Monday email with last week's margin and the users who lost you money. |
| CSV export | Supported | Users, plans, trials and cost by model. |
| Slack alerts | Supported | Paste a Slack incoming-webhook URL as an alert's webhook. |
| Runaway-loop alert | Supported | A user using more tokens in 5 minutes than you allow. |
| Spending caps | Supported | Mark a per-user budget as Block and call meter.check(userId) before a request. Fails open; based on cost already recorded. |
Use the free hosted service or run your own copy.
| Integration | Status | Notes |
|---|---|---|
| Hosted service (fiscallm.com) | Supported | Free under fair use: up to 100,000 events per app per month, best effort. |
| Self-hosting on Vercel and Supabase | Supported | With a deploy button and a step-by-step guide in SELF-HOSTING.md. |
| Docker Compose | Planned | Waiting for a machine with Docker to test it properly. |
| AI coding assistants | Supported | A setup skill for Claude Code, plus a prompt for Cursor, Copilot and others. See the docs. |
Missing something you need? Open an issue, or see the roadmap.