Based on the actual Tesla Fleet API output (T3.json) and the tesla_fleet.py service implementation, here are concrete ideas for presenting vehicle data in customer PDF reports.
| Endpoint | Status | Data | Notes |
|---|---|---|---|
/api/1/vehicles |
OK | List of all vehicles on account (2 found) | |
/api/1/vehicles/{id}/vehicle_data |
OK | Rich real-time snapshot (battery, climate, tires, config, security) | Primary data source |
/api/1/dx/charging/history |
OK | 25 Supercharger sessions with full cost breakdown | Multi-currency |
/api/1/vehicles/{id}/recent_alerts |
OK | 12 vehicle alerts with timestamps and user text | |
/api/1/dx/vehicles/options?vin= |
OK | 6 factory option codes with display names | |
/api/1/vehicles/{vin}/release_notes |
OK | 14 software release notes with images | |
/api/1/dx/warranty/details?vin= |
Fixable | Needs ?vin=<VIN> query param (500 without it) |
|
/api/1/vehicles/{vin}/specs |
Partner-only | Requires partner token (client_credentials), $0.10/call | |
/api/1/vehicles/{id}/service_data |
Empty | No records for this vehicle | May only appear when service appointments exist |
Sources: vehicles + vehicle_config + options
Content:
- VIN, display name, model year (decoded from VIN pos 10)
- Model: Tesla Model 3 (mapped from car_type via _car_type_to_model())
- Trim: "Premium Long Range All-Wheel Drive" (from $MT352 option)
- Paint: "Deep Blue Metallic" (from $PPSB option with colorCode)
- Interior: Black ($IPB3)
- Wheels: 18" Photon ($W38A)
- Driver assist: Autopilot ($APBS / TeslaAP4)
- Charge port: CCS
- Supercharger: Pay-as-you-go ($SC04)
- EU vehicle, ECE compliant, left-hand drive
- Odometer, software version, access type (OWNER)
Design: Vehicle passport card layout. VIN as header, key specs in a 2-column grid, equipped features as icons/badges.
Source: charge_state
Content: - Battery level gauge: 74% (usable 73% - the 1% gap hints at degradation) - Rated range: 391 km / Estimated range: 390 km - Charge limit: 83% (vs default 80%, vs max 100%) - Last charge added: 17.74 kWh / 126 km - Charging state: Disconnected - Scheduled departure: 07:30, preconditioning on weekdays - Off-peak charging: disabled - Battery heater: off
Design: Large circular battery gauge with % and km. Below it, a summary table with charge settings and a "charging habits" insight box (e.g. "Your charge limit is set to 83%, which is good for daily use and battery longevity").
Pro tier addition: Compare battery_level (74%) vs usable_battery_level (73%) with an explanation of what the gap means for degradation.
Source: charging_history (25 sessions)
Per-session data: location, country, start/stop time, duration, kWh, rate/kWh, total cost (gross + net), congestion fees, currency, invoice IDs.
Aggregated from real data: - 25 sessions across 20 unique locations in 6 countries (FI, SE, NO, PL, SK, LV) - 874.1 kWh total energy - ~EUR 1,206 total cost (mixed EUR/SEK/NOK/PLN) - Rate trend: 0.35 EUR/kWh (Dec 2025) -> 0.39 EUR/kWh (Feb 2026) - Zero congestion (idle) fees charged
Design ideas: - Charging map: Pin all 20 Supercharger locations on a map (Vantaa, Rovaniemi, Kuopio, Narvik, Riga, Košice, Lublin...) - Monthly cost bar chart: Spending per month with currency breakdown - Rate trend line: EUR/kWh over time showing price increases - Session table: Date, location, kWh, duration (min), cost, country flag - Country pie chart: % of charging by country - Quick stats box: avg kWh/session (35 kWh), avg cost (EUR 48), avg duration (22 min) - Idle fee tracker: "No idle fees incurred" (green badge) or red flag if yes - Charging speed: kWh/min per session to show DC fast charging efficiency
Source: vehicle_state.tpms_*
| Position | Pressure | Recommended | Status |
|---|---|---|---|
| Front Left | 2.75 bar | 2.9 bar | OK |
| Front Right | 2.65 bar | 2.9 bar | Low |
| Rear Left | 2.725 bar | 2.9 bar | Low |
| Rear Right | 2.675 bar | 2.9 bar | Low |
Design: Top-down vehicle silhouette with 4 tire bubbles. Each bubble shows current/recommended pressure and a color code (green/yellow/red). Actionable: "3 of 4 tires are below recommended pressure. Consider inflating to 2.9 bar."
Source: climate_state + vehicle_config
Snapshot: - Outside: -6.5 C / Inside: 4.5 C (car is parked, climate off) - Temperature setting: 21.5 C (driver and passenger) - Cabin overheat protection: On (High threshold)
Equipped features: - Heated front seats (0-3 levels) - Heated rear seats - Cooled front seats (seat_fan) - Heated steering wheel - Side mirror heaters - Wiper blade heater - Auto seat climate - HVAC auto mode
Design: Temperature comparison graphic (outside vs inside vs setting). Below, a features checklist grid with equipped (checkmark) vs not equipped (dash). Good for buyers evaluating a used vehicle's features.
Source: vehicle_state
Design: Vehicle top-down with door/window/trunk status indicators. Security features as on/off badges.
Source: recent_alerts (12 alerts)
Alerts with details: | Time | Alert | Audience | Text | |------|-------|----------|------| | 2026-02-10 06:08 | UI_a212_AEBSFaulted | customer, service | Automatic Emergency Braking is unavailable | | 2026-02-10 06:08 | UI_a184_ISAFaulted | customer, service | Intelligent Speed Assist unavailable | | 2026-02-10 06:08 | CP_a053_proxLatchedNoPilot | - | Charge port issue | | ... | ... | ... | ... |
Design ideas: - Alert timeline: Chronological list with color-coded severity (safety = red, charging = yellow, info = blue) - System categorization: Group by subsystem (ADAS/safety, charging, drivetrain, comfort) - Buyer's insight: For used-car buyers, highlight recurring alerts as potential issues. "This vehicle has had 3 safety-system alerts in the past week." - Customer vs Service view: Show which alerts the owner sees in their app vs what only Tesla service technicians see
Source: release_notes (14 notes, version 2026.2.3)
Current software: 2026.2.3 Staged update: None
Notable features available: - Tesla Photobooth (camera fun) - Dog Mode Live Activity (iOS notification) - Dashcam Viewer improvements - Paint Shop (avatar customization) - Navigation Improvements (reorder favorites, pin-based Home/Work) - Phone Left Behind chime (UWB detection) - Save Charge Limit by Location - SpaceX Docking Simulator (Arcade) - Radio Traffic Announcements (EU) - Spotify queue from search, infinite playlist scrolling - Rave Cave rainbow colors with Light Sync - Cabin Overheat Protection Exclude Home option
Design: "Your Car's Features" page with categorized list (Safety, Charging, Entertainment, Navigation, Comfort). Each feature with its icon and one-line description. Shows buyers exactly what the car can do.
Source: vehicles (2 vehicles on account)
| Vehicle | VIN | Display Name | Model | State |
|---|---|---|---|---|
| 1 | LRW3E7EK1RC988948 | JT3 | Model 3 | online |
| 2 | XP7YGCELXPB059702 | YTY | Model Y | online |
Design: For Bulk/Fleet customers, a fleet overview page comparing all vehicles: battery %, odometer, last charge date, active alerts count, software version.
tesla_fleet.py:TeslaFleetService.get_vehicle_report() gathers all data in parallel via asyncio.gather()_vin_to_year())_car_type_to_model())The get_vehicle_report() method returns a structured dict with keys: vehicle, vehicleData, chargingHistory, recentAlerts, serviceData, warrantyDetails. The PDF template (services/pdf.py) will consume this to render the report.
?vin=<VIN> as query param. Will show warranty type, expiry date, mileage limit.battery_level vs usable_battery_level gap (currently 1%), or by comparing battery_range vs EPA rated range for the model.contentId is available; could download and embed actual Tesla invoices via /api/1/dx/charging/invoice/{contentId}.