Quick Start

Installation

pip install fuelog

Requires Python 3.9+ and has no third-party dependencies.

REST Client

from fuelog import FuelogClient, CreateFuelLogRequest, FuelType

client = FuelogClient(token="your_bearer_token")

# List recent fill-ups
logs = client.list_logs(limit=20)
for log in logs:
    print(f"{log.timestamp}  {log.brand}{log.cost}  {log.distance_km} km")

# Create a fill-up
new_id = client.create_log(
    CreateFuelLogRequest(
        brand="Shell",
        cost=50.00,
        distance_km=400.0,
        fuel_amount_liters=35.0,
    )
)

# Analytics
stats = client.get_analytics(start_date="2025-01-01", end_date="2025-12-31")
print(f"Avg efficiency: {stats.efficiency} km/L")
print(f"Total spent:    {stats.home_currency} {stats.total_spent}")

MCP Client

from fuelog import FuelogMCPClient, TrendMetric, CostOptimizationPeriod

mcp = FuelogMCPClient(token="your_bearer_token")

# Call a tool
result = mcp.list_logs(limit=10, brand="Shell")
print(result.text)

# Read a resource
summary = mcp.get_analytics_summary_resource()

# Get a prompt
prompt = mcp.monthly_report(month="2025-03")
for msg in prompt.messages:
    print(f"[{msg.role}]", msg.content.get("text", ""))

Error Handling

All exceptions derive from FuelogError:

from fuelog import FuelogClient, FuelogNotFoundError, FuelogForbiddenError

client = FuelogClient(token="sk-...")

try:
    client.delete_log("non-existent-id")
except FuelogNotFoundError:
    print("Log not found")
except FuelogForbiddenError as e:
    print(f"Permission denied: {e}")

See Exceptions for the full exception hierarchy.

Configuration

client = FuelogClient(
    token="your_token",
    base_url="https://api.fuelog.app",  # default
    timeout=30,                          # seconds, default
)