openapi: 3.1.0 info: title: Tesla Fleet Energy Backup Products API description: 'The energy_sites surface of the Tesla Fleet API. Lets OAuth-authorized partners and owners read Powerwall, Solar, and Megapack site state — site info, live status, calendar history, programs — and write backup reserve, operation mode (self_consumption, backup, autonomous), storm mode, time-of-use settings, and off-grid vehicle charging reserve. Authentication uses Tesla Fleet API OAuth 2.0 with the energy_device_data (read) and energy_cmds (write) scopes. Third-party applications must register a partner account on the Tesla Developer Portal and pair a virtual key with the owner''s account. ' version: 1.0.0 contact: name: Tesla Developer Support url: https://developer.tesla.com/docs/fleet-api/support/contact license: name: Tesla Developer Terms url: https://developer.tesla.com/teslaplatform/developerterms servers: - url: https://fleet-api.prd.na.vn.cloud.tesla.com/api/1 description: North America Production - url: https://fleet-api.prd.eu.vn.cloud.tesla.com/api/1 description: Europe / Middle East / Africa Production security: - BearerAuth: - energy_device_data - energy_cmds tags: - name: Products description: Discover energy_sites and other products owned by the authenticated account paths: /products: get: summary: Tesla List Products description: Returns a list of products (vehicles and energy_sites) that the authenticated user has access to. Energy sites are identified by an `energy_site_id` and may include Powerwall, Solar, and Megapack assets. operationId: listProducts tags: - Products responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ProductsResponse' '401': $ref: '#/components/responses/Unauthorized' '429': $ref: '#/components/responses/RateLimited' components: schemas: Product: type: object properties: energy_site_id: type: integer format: int64 site_name: type: string resource_type: type: string enum: - battery - solar id: type: string asset_site_id: type: string gateway_id: type: string energy_left: type: number total_pack_energy: type: number percentage_charged: type: number battery_type: type: string Error: type: object properties: error: type: string error_description: type: string ProductsResponse: type: object properties: response: type: array items: $ref: '#/components/schemas/Product' count: type: integer responses: Unauthorized: description: Missing or invalid bearer token. content: application/json: schema: $ref: '#/components/schemas/Error' RateLimited: description: Rate limit exceeded. content: application/json: schema: $ref: '#/components/schemas/Error' securitySchemes: BearerAuth: type: oauth2 description: Tesla Fleet API OAuth 2.0 with PKCE. Scopes energy_device_data (read) and energy_cmds (write) required for the energy_sites endpoints. flows: authorizationCode: authorizationUrl: https://auth.tesla.com/oauth2/v3/authorize tokenUrl: https://auth.tesla.com/oauth2/v3/token scopes: energy_device_data: Read energy site data energy_cmds: Send commands to energy sites offline_access: Refresh tokens