priv/docs/magic_sites.md

# Magic Sites

## Create a new Site

**POST** `/accounts/{account_id}/magic/sites`

Creates a new Site

### Responses

#### 200 Create Site response

> Data is at `body["result"]`

```json
{
  "connector_id": "*string*",
  "description": "*string*",
  "ha_mode": "*boolean*",
  "id": "*string*",
  "location": {
    "lat": "*string*",
    "lon": "*string*"
  },
  "name": "*string*",
  "secondary_connector_id": "*string*"
}
```

#### 4XX Create Site response failure

```json
{
  "errors": [
    {
      "code": "*integer*",
      "message": "*string*"
    }
  ],
  "messages": [
    {
      "code": "*integer*",
      "message": "*string*"
    }
  ],
  "result": {},
  "success": "*boolean*"
}
```



## List Sites

**GET** `/accounts/{account_id}/magic/sites`

Lists Sites associated with an account. Use connectorid query param to return sites where connectorid matches either site.ConnectorID or site.SecondaryConnectorID.

### Responses

#### 200 List Sites response

> Data is at `body["result"]`

```json
[
  {
    "connector_id": "*string*",
    "description": "*string*",
    "ha_mode": "*boolean*",
    "id": "*string*",
    "location": {
      "lat": "*string*",
      "lon": "*string*"
    },
    "name": "*string*",
    "secondary_connector_id": "*string*"
  }
]
```

#### 4XX List Sites response failure

```json
{
  "errors": [
    {
      "code": "*integer*",
      "message": "*string*"
    }
  ],
  "messages": [
    {
      "code": "*integer*",
      "message": "*string*"
    }
  ],
  "result": {},
  "success": "*boolean*"
}
```



## Update Site

**PUT** `/accounts/{account_id}/magic/sites/{site_id}`

Update a specific Site.

### Responses

#### 200 Update Site response

> Data is at `body["result"]`

```json
{
  "connector_id": "*string*",
  "description": "*string*",
  "ha_mode": "*boolean*",
  "id": "*string*",
  "location": {
    "lat": "*string*",
    "lon": "*string*"
  },
  "name": "*string*",
  "secondary_connector_id": "*string*"
}
```

#### 4XX Update Site response failure

```json
{
  "errors": [
    {
      "code": "*integer*",
      "message": "*string*"
    }
  ],
  "messages": [
    {
      "code": "*integer*",
      "message": "*string*"
    }
  ],
  "result": {},
  "success": "*boolean*"
}
```



## Patch Site

**PATCH** `/accounts/{account_id}/magic/sites/{site_id}`

Patch a specific Site.

### Responses

#### 200 Patch Site response

> Data is at `body["result"]`

```json
{
  "connector_id": "*string*",
  "description": "*string*",
  "ha_mode": "*boolean*",
  "id": "*string*",
  "location": {
    "lat": "*string*",
    "lon": "*string*"
  },
  "name": "*string*",
  "secondary_connector_id": "*string*"
}
```

#### 4XX Patch Site response failure

```json
{
  "errors": [
    {
      "code": "*integer*",
      "message": "*string*"
    }
  ],
  "messages": [
    {
      "code": "*integer*",
      "message": "*string*"
    }
  ],
  "result": {},
  "success": "*boolean*"
}
```



## Site Details

**GET** `/accounts/{account_id}/magic/sites/{site_id}`

Get a specific Site.

### Responses

#### 200 Site Details response

> Data is at `body["result"]`

```json
{
  "connector_id": "*string*",
  "description": "*string*",
  "ha_mode": "*boolean*",
  "id": "*string*",
  "location": {
    "lat": "*string*",
    "lon": "*string*"
  },
  "name": "*string*",
  "secondary_connector_id": "*string*"
}
```

#### 4XX Site Details response failure

```json
{
  "errors": [
    {
      "code": "*integer*",
      "message": "*string*"
    }
  ],
  "messages": [
    {
      "code": "*integer*",
      "message": "*string*"
    }
  ],
  "result": {},
  "success": "*boolean*"
}
```



## Delete Site

**DELETE** `/accounts/{account_id}/magic/sites/{site_id}`

Remove a specific Site.

### Responses

#### 200 Delete Site response

> Data is at `body["result"]`

```json
{
  "connector_id": "*string*",
  "description": "*string*",
  "ha_mode": "*boolean*",
  "id": "*string*",
  "location": {
    "lat": "*string*",
    "lon": "*string*"
  },
  "name": "*string*",
  "secondary_connector_id": "*string*"
}
```

#### 4XX Delete Site response failure

```json
{
  "errors": [
    {
      "code": "*integer*",
      "message": "*string*"
    }
  ],
  "messages": [
    {
      "code": "*integer*",
      "message": "*string*"
    }
  ],
  "result": {},
  "success": "*boolean*"
}
```