Skip to main content

Unified usage and cost tracking for AI providers such as FAL.AI and OpenRouter.

Project description

AI Provider Tracker

PyPI version Python versions License: MIT

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

ai_provider_tracker-0.7.1.tar.gz (21.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ai_provider_tracker-0.7.1-py3-none-any.whl (31.6 kB view details)

Uploaded Python 3

File details

Details for the file ai_provider_tracker-0.7.1.tar.gz.

File metadata

  • Download URL: ai_provider_tracker-0.7.1.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

Hashes for ai_provider_tracker-0.7.1.tar.gz
Algorithm Hash digest
SHA256 aa7a7b88f4b6f9f900ad11d44319ace911e42ecb7531a6ede2acb47096280cb3
MD5 1c6670928241169786c41c552e30a5c9
BLAKE2b-256 801b0b16e1573fe4f5dc36df6b8544223a7d00a280f5bf9a5eaa7ed2279bf0e6

See more details on using hashes here.

File details

Details for the file ai_provider_tracker-0.7.1-py3-none-any.whl.

File metadata

  • Download URL: ai_provider_tracker-0.7.1-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

Hashes for ai_provider_tracker-0.7.1-py3-none-any.whl
Algorithm Hash digest
SHA256 2631742387d8802f631a89c1cd1e4f70e6d4235a3654e250eae6bded3a620d3c
MD5 3d7b63513b9e8587b68eee638990ae35
BLAKE2b-256 ffcf65550d68d75b60e01751de7d34e749fd9fe97884697a9ddbb89cbd9b90bb

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page