Use Case

Usage Accounting

Track usage, analyze costs, and optimize AI spending with comprehensive accounting features

Comprehensive Usage Tracking

ParrotRouter provides detailed usage tracking and accounting features that give you complete visibility into your AI API consumption, costs, and patterns. Track usage by user, team, project, model, and more.

Real-time Analytics

Monitor usage and costs as they happen

Cost Attribution

Allocate costs to teams and projects

Detailed Reports

Export usage data for accounting

Real-time Usage Monitoring

Access real-time usage data through our API or streaming endpoints:

Real-time Usage Trackingpython
import requests
import json
from datetime import datetime, timedelta

# Get current usage statistics
current_usage = requests.get(
    "https://api.parrotrouter.com/v1/usage/current",
    headers={
        "Authorization": "Bearer your-api-key",
        "Content-Type": "application/json"
    },
    params={
        "granularity": "minute",  # minute, hour, day
        "include_breakdown": True
    }
).json()

print("Current period usage:")
print("  Requests:", current_usage['requests'])
print("  Tokens:", current_usage['tokens']['total'])
print("  Cost: $", current_usage['cost'])
print("  Active users:", current_usage['active_users'])

# Get detailed usage breakdown
breakdown = current_usage['breakdown']
print("\nBy Model:")
for model in breakdown['by_model']:
    print("  " + model['name'] + ":")
    print("    Requests:", model['requests'])
    print("    Tokens:", model['tokens'])
    print("    Cost: $", model['cost'])
    print("    Avg latency:", model['avg_latency_ms'], "ms")

# Stream real-time usage events
import websocket
import threading

def on_usage_event(ws, message):
    event = json.loads(message)
    
    if event['type'] == 'request_completed':
        print("\n[" + event['timestamp'] + "] Request completed:")
        print("  User:", event['user_id'])
        print("  Model:", event['model'])
        print("  Tokens:", event['tokens'], "($" + str(event['cost']) + ")")
        print("  Latency:", event['latency_ms'], "ms")
        
    elif event['type'] == 'cost_threshold':
        print("\n⚠️ Cost threshold reached:")
        print("  Level:", event['threshold_level'], "%")
        print("  Current: $", event['current_cost'])
        print("  Limit: $", event['limit'])

# Connect to usage stream
ws = websocket.WebSocketApp(
    "wss://api.parrotrouter.com/v1/usage/stream",
    header=["Authorization: Bearer your-api-key"],
    on_message=on_usage_event
)

# Run in background thread
wst = threading.Thread(target=ws.run_forever)
wst.daemon = True
wst.start()

Related Documentation