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()