# Vendors Endpoint

The `/vendors` endpoint provides your application with the list of all supported device manufacturers and integration methods available in the HEMS platform.

## Why fetch vendors?

Instead of hardcoding supported vendors in your application, we strongly recommend fetching this list dynamically from the `/vendors` endpoint. This ensures that:

- Your application instantly supports new integrations as soon as we add them to the platform.
- You can present your users with an up-to-date and dynamic selection interface.


## Endpoint Details

**GET `/vendors`**

**Headers Required**:

- `Authorization`: Bearer `<your-m2m-access-token>`


### Response Schema

The response is a JSON object containing a `data` array of `VendorDefinition` objects.

```json
{
  "data": [
    {
      "id": "shelly",
      "name": "Shelly",
      "description": "Shelly smart energy meters and switches",
      "category": "meter",
      "flow": "ws"
    },
    {
      "id": "generic-push",
      "name": "Generic Push",
      "description": "Any device or local automation tool (Node-RED, Home Assistant, custom scripts) that can make HTTP requests",
      "category": "meter",
      "flow": "push"
    }
  ]
}
```

### Fields Breakdown

- `id`: The programmatic identifier for the vendor. You must pass this exact string when calling the Link API.
- `name`: The human-readable name of the vendor (e.g., "Shelly"). Use this to display options to your users.
- `description`: A brief description of the integration or device type.
- `category`: The category of the device (e.g., `meter`, `inverter`, `evse`).
- `flow`: The underlying technical flow for the integration.
  - `ws`: WebSocket-based flow (e.g., Shelly).
  - `push`: Webhook/HTTP Push-based flow (e.g., Generic Push).