Unified usage and cost tracking for AI providers such as FAL.AI and OpenRouter.
Project description
AI Provider Tracker
AI Provider Tracker is a Python library for tracking AI provider usage and estimating per-generation costs across heterogeneous providers.
It is designed for apps that already call providers such as FAL.AI and OpenRouter, but need a centralized way to:
- normalize usage metadata
- calculate request/generation costs
- store raw request/response payloads for auditability
- persist optional local analytics in SQLite
- use bundled pricing snapshots without calling pricing APIs at runtime
Installation
pip install ai-provider-tracker
Optional FastAPI dependencies for the legacy model registry API:
pip install "ai-provider-tracker[api]"
Cost Tracking
Use your provider SDK as usual, then pass the request and response to the tracker.
from ai_provider_tracker import CostTracker
tracker = CostTracker()
event = tracker.track_generation(
provider="fal",
model="fal-ai/flux/dev",
request={"prompt": "A cyberpunk city", "num_images": 2},
response={"images": [{"url": "a"}, {"url": "b"}]},
)
print(event.cost.total) # 0.050
print(event.cost.source) # public_snapshot
print(event.cost.confidence) # high
print(event.cost.breakdown)
Enable local SQLite persistence:
tracker = CostTracker(sqlite_path="ai_usage.sqlite")
This stores generation events with normalized usage, cost breakdown, raw request, raw response, and metadata.
OpenRouter
For OpenRouter, provider-reported usage cost is preferred when present:
event = tracker.track_generation(
provider="openrouter",
model="anthropic/claude-sonnet-4.5",
request={"messages": [{"role": "user", "content": "Hello"}]},
response={
"usage": {
"prompt_tokens": 1200,
"completion_tokens": 800,
"cost": "0.015",
}
},
)
print(event.cost.total) # provider-reported cost
print(event.cost.source) # provider_reported
If usage.cost is not present, the tracker falls back to token-based calculation using the bundled pricing catalog when possible.
Pricing Catalog
The package ships with a bundled JSON pricing catalog:
ai_provider_tracker/data/pricing_catalog.json
Runtime requests do not call pricing APIs. Pricing sync is handled by:
python scripts/sync_pricing_catalog.py
The GitHub Actions workflow .github/workflows/pricing_sync.yml runs daily and commits the catalog only when prices actually change.
Legacy Model Registry
This package still includes the original OpenRouter model registry APIs:
from ai_provider_tracker import LLMIndexSync
client = LLMIndexSync(mode="json")
models = client.get_cheapest(limit=5)
The old import path remains available temporarily:
from openrouter_insights import CostTracker
New code should use:
from ai_provider_tracker import CostTracker
Accuracy Contract
Cost values are intended for product analytics, internal attribution, and budget monitoring.
- FAL.AI costs are locally estimated from pricing snapshots and normalized request/response metadata.
- OpenRouter costs use provider-reported cost when available.
- Public bundled pricing is a reference snapshot, not a guarantee of account-specific billing.
For invoice-grade accounting, reconcile against provider billing/usage APIs.
License
MIT
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ai_provider_tracker-0.7.4.tar.gz.
File metadata
- Download URL: ai_provider_tracker-0.7.4.tar.gz
- Upload date:
- Size: 21.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.4.1 CPython/3.12.3 Linux/6.17.0-1013-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
63259c69cd28defea556e9f9ddd86b8e73af3517759f507a4560aba25469ee53
|
|
| MD5 |
d8dfdf64d724f12c267e3a550be523f7
|
|
| BLAKE2b-256 |
8f5f208021bb082551888cc66fcd5a671c52db1eb9b5bc73d6c7086db5384e39
|
File details
Details for the file ai_provider_tracker-0.7.4-py3-none-any.whl.
File metadata
- Download URL: ai_provider_tracker-0.7.4-py3-none-any.whl
- Upload date:
- Size: 31.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.4.1 CPython/3.12.3 Linux/6.17.0-1013-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
894daac97b483a58e5d9d7c0438d03a128cf8f6338816e5f9901c6fd665b9350
|
|
| MD5 |
01886c37c5dba5fdaa4258db215e813b
|
|
| BLAKE2b-256 |
694afad9045c6ca5d2b0244503dfc203089cc2f97805e7f69cdce315033ffd18
|