{"openapi":"3.1.0","info":{"title":"Tessie (BYOK) API","version":"0.1.0","description":"Tessie (BYOK) lets an AI assistant read your own Tessie data through the Tessie API with a key you supply (Tessie access token). Read-only: 11 tools (list_vehicles, list_drives, list_charges, list_idles, get_battery, list_battery_health, get_battery_health_history, get_consumption_since_charge, get_tire_pressure, list_firmware_alerts, list_charging_invoices). The BYOK key travels with each...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-tessie.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-tessie/docs"},"termsOfService":"https://connectorbay.com/byok-tessie/terms"},"servers":[{"url":"https://byok-tessie.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-tessie/docs"},"security":[{"upstreamKey":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."},"upstreamKey":{"type":"apiKey","in":"header","name":"X-Upstream-Key","description":"Your own key for the service this connector wraps (bring your own key). Used for that one call only; never stored, logged or cached."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/list_vehicles":{"post":{"operationId":"list_vehicles","summary":"List the vehicles on the Tessie account with VIN, whether active, display name and last known state (online, asleep or o","description":"List the vehicles on the Tessie account with VIN, whether active, display name and last known state (online, asleep or offline). Position and detailed state fields are not returned. Use for \"Which Teslas are on my Tessie account\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"only_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to list only active vehicles.","title":"Only Active"}},"title":"list_vehiclesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_drives":{"post":{"operationId":"list_drives","summary":"List a vehicle's drives (newest first) with start and end time, battery before and after, average and top speed, distanc","description":"List a vehicle's drives (newest first) with start and end time, battery before and after, average and top speed, distance, energy used and tag. Place names and coordinates are not returned. Filter by time range, minimum distance or tag. Use for \"How far did my Tesla drive last week and how much energy did it use\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"vin":{"description":"Vehicle identification number (17 characters) of a vehicle on the Tessie account.","maxLength":17,"title":"Vin","type":"string"},"from_time":{"anyOf":[{"maximum":4102444800,"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Start of the period as a Unix timestamp in seconds.","title":"From Time"},"to_time":{"anyOf":[{"maximum":4102444800,"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"End of the period as a Unix timestamp in seconds.","title":"To Time"},"distance_format":{"anyOf":[{"enum":["mi","km"],"type":"string"},{"type":"null"}],"default":null,"description":"Distances in mi (default) or km.","title":"Distance Format"},"temperature_format":{"anyOf":[{"enum":["c","f"],"type":"string"},{"type":"null"}],"default":null,"description":"Temperatures in c (default) or f.","title":"Temperature Format"},"minimum_distance":{"anyOf":[{"maximum":100000,"minimum":0,"type":"number"},{"type":"null"}],"default":null,"description":"Only drives of at least this many miles.","title":"Minimum Distance"},"tag":{"anyOf":[{"maxLength":60,"type":"string"},{"type":"null"}],"default":null,"description":"Only drives with this tag, for example Work.","title":"Tag"},"timezone":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"IANA time zone name for formatting times, for example Europe/Berlin (default UTC).","title":"Timezone"},"limit":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"Maximum number of results.","title":"Limit"}},"required":["vin"],"title":"list_drivesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_charges":{"post":{"operationId":"list_charges","summary":"List a vehicle's charging sessions with start and end time, whether a Supercharger, energy added and used, miles added, ","description":"List a vehicle's charging sessions with start and end time, whether a Supercharger, energy added and used, miles added, battery before and after, cost and odometer. Place names and coordinates are not returned. Use for \"How much did my Tesla charging cost last month\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"vin":{"description":"Vehicle identification number (17 characters) of a vehicle on the Tessie account.","maxLength":17,"title":"Vin","type":"string"},"from_time":{"anyOf":[{"maximum":4102444800,"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Start of the period as a Unix timestamp in seconds.","title":"From Time"},"to_time":{"anyOf":[{"maximum":4102444800,"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"End of the period as a Unix timestamp in seconds.","title":"To Time"},"distance_format":{"anyOf":[{"enum":["mi","km"],"type":"string"},{"type":"null"}],"default":null,"description":"Distances in mi (default) or km.","title":"Distance Format"},"superchargers_only":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to list only Supercharger sessions.","title":"Superchargers Only"},"minimum_energy_added":{"anyOf":[{"maximum":1000,"minimum":0,"type":"number"},{"type":"null"}],"default":null,"description":"Only sessions that added at least this many kWh.","title":"Minimum Energy Added"},"timezone":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"IANA time zone name for formatting times, for example Europe/Berlin (default UTC).","title":"Timezone"},"limit":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"Maximum number of results.","title":"Limit"}},"required":["vin"],"title":"list_chargesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_idles":{"post":{"operationId":"list_idles","summary":"List periods when the vehicle was neither driving nor charging (parked) with start and end time, battery used, climate a","description":"List periods when the vehicle was neither driving nor charging (parked) with start and end time, battery used, climate and sentry share of the time and energy used. Place names and coordinates are not returned. Use for \"How much battery did my parked Tesla lose to Sentry mode\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"vin":{"description":"Vehicle identification number (17 characters) of a vehicle on the Tessie account.","maxLength":17,"title":"Vin","type":"string"},"from_time":{"anyOf":[{"maximum":4102444800,"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Start of the period as a Unix timestamp in seconds.","title":"From Time"},"to_time":{"anyOf":[{"maximum":4102444800,"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"End of the period as a Unix timestamp in seconds.","title":"To Time"},"distance_format":{"anyOf":[{"enum":["mi","km"],"type":"string"},{"type":"null"}],"default":null,"description":"Distances in mi (default) or km.","title":"Distance Format"},"timezone":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"IANA time zone name for formatting times, for example Europe/Berlin (default UTC).","title":"Timezone"},"limit":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"Maximum number of results.","title":"Limit"}},"required":["vin"],"title":"list_idlesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_battery":{"post":{"operationId":"get_battery","summary":"Get the vehicle's battery state: level, rated and ideal range, phantom drain percent, energy remaining, lifetime energy ","description":"Get the vehicle's battery state: level, rated and ideal range, phantom drain percent, energy remaining, lifetime energy used, pack voltage and current, and module temperatures. Use for \"What is my Tesla's battery level and phantom drain\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"vin":{"description":"Vehicle identification number (17 characters) of a vehicle on the Tessie account.","maxLength":17,"title":"Vin","type":"string"}},"required":["vin"],"title":"get_batteryArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_battery_health":{"post":{"operationId":"list_battery_health","summary":"Show battery health of every vehicle on the account: odometer, maximum range, current and original capacity, degradation","description":"Show battery health of every vehicle on the account: odometer, maximum range, current and original capacity, degradation and health percent. Plate numbers are not returned. Use for \"How healthy are the batteries of all my Teslas\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"from_time":{"anyOf":[{"maximum":4102444800,"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Start of the period as a Unix timestamp in seconds.","title":"From Time"},"to_time":{"anyOf":[{"maximum":4102444800,"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"End of the period as a Unix timestamp in seconds.","title":"To Time"},"distance_format":{"anyOf":[{"enum":["mi","km"],"type":"string"},{"type":"null"}],"default":null,"description":"Distances in mi (default) or km.","title":"Distance Format"},"only_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to include only active vehicles.","title":"Only Active"}},"title":"list_battery_healthArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_battery_health_history":{"post":{"operationId":"get_battery_health_history","summary":"Get battery health measurements of one vehicle over time. Use for \"How has my Tesla's battery capacity changed over time","description":"Get battery health measurements of one vehicle over time. Use for \"How has my Tesla's battery capacity changed over time\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"vin":{"description":"Vehicle identification number (17 characters) of a vehicle on the Tessie account.","maxLength":17,"title":"Vin","type":"string"},"from_time":{"anyOf":[{"maximum":4102444800,"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Start of the period as a Unix timestamp in seconds.","title":"From Time"},"to_time":{"anyOf":[{"maximum":4102444800,"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"End of the period as a Unix timestamp in seconds.","title":"To Time"},"distance_format":{"anyOf":[{"enum":["mi","km"],"type":"string"},{"type":"null"}],"default":null,"description":"Distances in mi (default) or km.","title":"Distance Format"}},"required":["vin"],"title":"get_battery_health_historyArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_consumption_since_charge":{"post":{"operationId":"get_consumption_since_charge","summary":"Get energy use since the vehicle was last charged: distance driven, battery percent used (total and by driving), rated a","description":"Get energy use since the vehicle was last charged: distance driven, battery percent used (total and by driving), rated and ideal range used, and energy used. Use for \"How much energy has my Tesla used since its last charge\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"vin":{"description":"Vehicle identification number (17 characters) of a vehicle on the Tessie account.","maxLength":17,"title":"Vin","type":"string"}},"required":["vin"],"title":"get_consumption_since_chargeArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_tire_pressure":{"post":{"operationId":"get_tire_pressure","summary":"Get the four tire pressures in bar with a low/normal status for each (needs firmware 2022.4.5 or later). Use for \"What i","description":"Get the four tire pressures in bar with a low/normal status for each (needs firmware 2022.4.5 or later). Use for \"What is my Tesla's tire pressure\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"vin":{"description":"Vehicle identification number (17 characters) of a vehicle on the Tessie account.","maxLength":17,"title":"Vin","type":"string"}},"required":["vin"],"title":"get_tire_pressureArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_firmware_alerts":{"post":{"operationId":"list_firmware_alerts","summary":"List firmware alerts generated by the vehicle with time, name, description and how many vehicles recently showed the sam","description":"List firmware alerts generated by the vehicle with time, name, description and how many vehicles recently showed the same alert. Use for \"Has my Tesla raised any firmware alerts\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"vin":{"description":"Vehicle identification number (17 characters) of a vehicle on the Tessie account.","maxLength":17,"title":"Vin","type":"string"},"from_time":{"anyOf":[{"maximum":4102444800,"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Start of the period as a Unix timestamp in seconds.","title":"From Time"},"to_time":{"anyOf":[{"maximum":4102444800,"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"End of the period as a Unix timestamp in seconds.","title":"To Time"}},"required":["vin"],"title":"list_firmware_alertsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_charging_invoices":{"post":{"operationId":"list_charging_invoices","summary":"List charging invoices of all vehicles (fleet accounts only) with time, vehicle, energy used, idle minutes, fees, total ","description":"List charging invoices of all vehicles (fleet accounts only) with time, vehicle, energy used, idle minutes, fees, total cost, cost per kWh and currency. Use for \"What did Tesla charging cost my fleet this month\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"from_time":{"anyOf":[{"maximum":4102444800,"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Start of the period as a Unix timestamp in seconds.","title":"From Time"},"to_time":{"anyOf":[{"maximum":4102444800,"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"End of the period as a Unix timestamp in seconds.","title":"To Time"},"vin":{"anyOf":[{"maxLength":17,"type":"string"},{"type":"null"}],"default":null,"description":"Only this vehicle (VIN).","title":"Vin"},"timezone":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"IANA time zone name for formatting times, for example Europe/Berlin (default UTC).","title":"Timezone"}},"title":"list_charging_invoicesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}