> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ariscomfort.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Quickstart

> Get started with the Aris API in 5 minutes

## Find Your Brain

The Aris Brain runs on your local network. Find it using:

<Tabs>
  <Tab title="mDNS">
    If your network supports mDNS (most do):

    ```
    http://aris.local
    ```
  </Tab>

  <Tab title="IP Address">
    Check your router's admin panel for a device named "aris-brain". The IP address varies by network—the example below is just a placeholder:

    ```
    http://192.168.1.100
    ```
  </Tab>
</Tabs>

## Check Health

First, verify the Brain is running:

<CodeGroup>
  ```bash curl theme={null}
  curl http://aris.local/health
  ```

  ```python Python theme={null}
  import requests

  response = requests.get("http://aris.local/health")
  print(response.json())
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch("http://aris.local/health");
  const health = await response.json();
  console.log(health);
  ```
</CodeGroup>

```json Response theme={null}
{
  "status": "ok",
  "version": "1.0.0",
  "uptime_seconds": 86400,
  "checks": {
    "mqtt": { "status": "ok", "connected": true },
    "cloud": { "status": "ok", "connected": true }
  }
}
```

## Get an API Token

Most endpoints require authentication. Create an API token in the web UI:

1. Open `http://aris.local` in your browser
2. Go to **Settings** → **API Tokens**
3. Click **Create Token** and give it a name (e.g., "My Script")
4. Copy the token—it's only shown once

See [Authentication](/authentication) for more details.

## Read Zone Temperatures

Now use your token to read zone data:

<CodeGroup>
  ```bash curl theme={null}
  curl http://aris.local/api/zones \
    -H "Authorization: Bearer YOUR_TOKEN"
  ```

  ```python Python theme={null}
  headers = {"Authorization": f"Bearer {token}"}
  response = requests.get("http://aris.local/api/zones", headers=headers)
  zones = response.json()["zones"]

  for zone in zones:
      print(f"{zone['friendlyName']}: {zone['tempC']}°C")
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch("http://aris.local/api/zones", {
    headers: { Authorization: `Bearer ${token}` }
  });
  const { zones } = await response.json();

  zones.forEach(zone => {
    console.log(`${zone.friendlyName}: ${zone.tempC}°C`);
  });
  ```
</CodeGroup>

```json Response theme={null}
{
  "zones": [
    {
      "zoneId": "primary_bedroom",
      "friendlyName": "Primary Bedroom",
      "tempC": 22.4,
      "rhPercent": 45,
      "mode": "auto",
      "tempHeatSetC": 21.0,
      "tempCoolSetC": 24.0,
      "activeCall": "none"
    },
    {
      "zoneId": "living_room",
      "friendlyName": "Living Room",
      "tempC": 21.8,
      "rhPercent": 42,
      "mode": "auto",
      "tempHeatSetC": 21.0,
      "tempCoolSetC": 24.0,
      "activeCall": "heat"
    }
  ],
  "metadata": {
    "count": 2,
    "mqttConnected": true
  }
}
```

## Set a Temperature

Adjust the heating setpoint for a zone:

<CodeGroup>
  ```bash curl theme={null}
  curl -X POST http://aris.local/api/zones/living_room/command \
    -H "Authorization: Bearer YOUR_TOKEN" \
    -H "Content-Type: application/json" \
    -d '{"tempHeatSetC": 22.0}'
  ```

  ```python Python theme={null}
  response = requests.post(
      "http://aris.local/api/zones/living_room/command",
      headers=headers,
      json={"tempHeatSetC": 22.0}
  )
  print(response.json())
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch(
    "http://aris.local/api/zones/living_room/command",
    {
      method: "POST",
      headers: {
        Authorization: `Bearer ${token}`,
        "Content-Type": "application/json"
      },
      body: JSON.stringify({ tempHeatSetC: 22.0 })
    }
  );
  console.log(await response.json());
  ```
</CodeGroup>

```json Response theme={null}
{
  "success": true,
  "zoneId": "living_room",
  "command": {
    "temp_heat_set_c": 22.0
  }
}
```

<Info>
  **Setpoint constraints:**

  * Valid range: 10-30°C (50-86°F)
  * Minimum 2.2°C (4°F) gap between heat and cool setpoints
</Info>

## Change System Mode

Switch the entire system between heating and cooling:

<CodeGroup>
  ```bash curl theme={null}
  curl -X POST http://aris.local/api/system/mode \
    -H "Authorization: Bearer YOUR_TOKEN" \
    -H "Content-Type: application/json" \
    -d '{"mode": "heat"}'
  ```

  ```python Python theme={null}
  response = requests.post(
      "http://aris.local/api/system/mode",
      headers=headers,
      json={"mode": "heat"}
  )
  ```
</CodeGroup>

Available modes:

* `heat` - Heating only
* `cool` - Cooling only
* `auto` - Automatic switchover
* `off` - System off

## Next Steps

<CardGroup cols={2}>
  <Card title="Authentication" icon="key" href="/authentication">
    Learn about API tokens
  </Card>

  <Card title="Controlling Zones" icon="temperature-half" href="/guides/controlling-zones">
    Deep dive into zone control
  </Card>

  <Card title="Monitoring" icon="chart-line" href="/guides/monitoring">
    Set up monitoring and alerts
  </Card>

  <Card title="API Reference" icon="code" href="/api-reference/overview">
    Explore all endpoints
  </Card>
</CardGroup>
