generate/utils/open_router_usage.py (43 lines of code) (raw):

import os import requests from dotenv import load_dotenv # Load environment variables from .env file load_dotenv() def get_openrouter_usage_and_credits(): # Get API key from environment variables api_key = os.getenv('OPENROUTER_API_KEY') if not api_key: raise ValueError("OPENROUTER_API_KEY not found in environment variables") # API endpoints usage_url = "https://openrouter.ai/api/v1/auth/key" credits_url = "https://openrouter.ai/api/v1/credits" # Headers required for OpenRouter API headers = { "Authorization": f"Bearer {api_key}", } try: # Fetch usage data usage_response = requests.get(usage_url, headers=headers) usage_response.raise_for_status() # Raise an exception for bad status codes usage_data = usage_response.json() # Fetch credits data credits_response = requests.get(credits_url, headers=headers) print(credits_response.json()) credits_response.raise_for_status() # Raise an exception for bad status codes credits_data = credits_response.json() return usage_data, credits_data except requests.exceptions.RequestException as e: print(f"Error fetching data: {e}") return None, None if __name__ == "__main__": usage_data, credits_data = get_openrouter_usage_and_credits() if usage_data: print("OpenRouter Usage Information:") data = usage_data.get('data', {}) print(f"Label: {data.get('label', 'N/A')}") print(f"Limit: {data.get('limit', 'N/A')}") print(f"Usage: {data.get('usage', 'N/A')}") print(f"Limit Remaining: {data.get('limit_remaining', 'N/A')}") print(f"Is Free Tier: {data.get('is_free_tier', 'N/A')}") rate_limit = data.get('rate_limit', {}) print(f"Rate Limit Requests: {rate_limit.get('requests', 'N/A')}") print(f"Rate Limit Interval: {rate_limit.get('interval', 'N/A')}") if credits_data: print("OpenRouter Credits Information:") data = credits_data.get('data', {}) print(f"Total Credits: {data.get('total_credits', 'N/A')}") print(f"Total Usage: {data.get('total_usage', 'N/A')}") # Print any other relevant information from the response