Integrations

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.

AI providers

One line after each call reads only the model name and token counts from the response.

IntegrationStatusNotes
OpenAISupportedChat Completions and Responses, including streaming. Cached input is priced separately.
AnthropicSupportedMessages, including streaming. Cache reads and writes are priced separately.
Google GeminiSupportedgenerateContent, including streaming and long-prompt tiers.
OpenAI-compatible APIsSupportedGroq, 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 modelsSupportedPer-unit pricing (images, seconds, minutes, characters) for the models in our table; pass the exact cost for others.
EmbeddingsSupportedUsage is read; the model shows as unpriced until you set a price.

Revenue sources

Revenue is matched to AI cost by user ID, net of fees and tax.

IntegrationStatusNotes
RevenueCatSupportedWebhook plus a one-time import of past subscribers. See the docs.
StripeBetaPaid invoices, trials, cancellations and refunds from a webhook. USD only; tested against sample payloads. See the docs.
Any other billing systemSupportedOne call per payment, refund or cancellation through the revenue API.
Adapty and SuperwallPlannedA webhook converter for each, on the roadmap.
App Store and Google Play directlyPlannedToday use RevenueCat, Stripe or the revenue API.

Languages and runtimes

Both SDKs have no dependencies and never block or break your response.

IntegrationStatusNotes
TypeScript and JavaScript SDKSupportedNode 20+, Bun, Deno (Supabase Edge Functions), Cloudflare Workers, Vercel functions and Firebase Functions.
Python SDKSupportedAny Python 3.9+ app, including FastAPI, Django and Flask. Call flush() before returning in AWS Lambda or Cloud Functions.
Other languagesSupportedAny language, through the HTTP API.
Kill switchSupportedSet FISCALLM_DISABLED=1 and the SDK does nothing at all.

Alerts, reports and exports

What comes out the other side.

IntegrationStatusNotes
Email alertsSupportedA user or the whole app going over a budget you set.
Webhook alertsSupportedSigned with X-FiscaLLM-Signature, so your backend can act on them.
Weekly reportSupportedA Monday email with last week's margin and the users who lost you money.
CSV exportSupportedUsers, plans, trials and cost by model.
Slack alertsSupportedPaste a Slack incoming-webhook URL as an alert's webhook.
Runaway-loop alertSupportedA user using more tokens in 5 minutes than you allow.
Spending capsSupportedMark a per-user budget as Block and call meter.check(userId) before a request. Fails open; based on cost already recorded.

Hosting and tooling

Use the free hosted service or run your own copy.

IntegrationStatusNotes
Hosted service (fiscallm.com)SupportedFree under fair use: up to 100,000 events per app per month, best effort.
Self-hosting on Vercel and SupabaseSupportedWith a deploy button and a step-by-step guide in SELF-HOSTING.md.
Docker ComposePlannedWaiting for a machine with Docker to test it properly.
AI coding assistantsSupportedA 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.