---
title: "OTA Upgrade Status"
method: POST
path: "/api/v4/ota/ev_charger/firmware/upgrade_status"
tags: ["EVSE Configuration"]
---

# OTA Upgrade Status

`POST /api/v4/ota/ev_charger/firmware/upgrade_status`

## Request

- Base URL: `https://api-qa2.enphaseenergy.com`
- URL: `https://api-qa2.enphaseenergy.com/api/v4/ota/ev_charger/firmware/upgrade_status`
- Auth: none declared
- TypeScript: <https://skmtc.dev/enphase/apis/commissioning-api/docs/api/v4/ota/ev_charger/firmware/upgrade_status/post.ts> (a function with typed inputs; its response is checked against the schema)

Allows partner to track the status of OTA upgrades by polling. Returns the current upgrade status for each charger serial number. Limit list of serialNumbers to 50.

## Query parameters

- `key` string, required

## Request body

- object
  - `serialNumbers` string[], required: List of charger serial numbers (max 50)

## Response `200`

OK

- object[]
  - `serialNumber` string: Charger serial number
  - `version` string: Firmware version related to the upgrade status
  - `upgradeStatus` 'QUEUED' | 'DOWNLOAD_IN_PROGRESS' | 'DOWNLOAD_SUCCESSFUL' | 'INSTALLATION_IN_PROGRESS' | 'INSTALLATION_SUCCESSFUL' | 'INSTALLATION_FAILED' | 'DOWNLOAD_FAILED' | 'COMMAND_EXPIRED' | 'UPGRADE_COMMAND_SUBMITTED' | 'FW_UPGRADE_NEVER_DONE': Current status of the OTA upgrade
  - `lastUpdatedAt` string: Timestamp of the last status update (ISO 8601 format)

## Other responses

- `400`: Bad Request
- `401`: Unauthorized
- `429`: Too Many Requests
- `500`: Internal Server Error

---

[API](https://skmtc.dev/enphase/apis/commissioning-api.md) - [All operations](https://skmtc.dev/enphase/apis/commissioning-api/llms.txt) - [OpenAPI document](https://skmtc.dev/enphase/apis/commissioning-api/revisions/73a4001046e2?raw)
