# Quickstart

Go from sign-up to your first forecast in minutes. The V2 workflow is always the same:
**create a site → query it via `site_id`.**

## Prerequisites

- A pvnode account ([sign up for free](https://pvnode.com/auth/register))
- An API key ([create one in the dashboard](https://pvnode.com/settings/api-keys))

All V2 requests authenticate via a bearer token:

```bash
Authorization: Bearer YOUR_API_KEY
```

## 1. Create a site

You can create a new site through our [pvnode web app](https://pvnode.com/sites/new). Enterprise or
B2B users can additionally use the [Sites API](/en/v2/enterprise/sites-api), if available in their plan.

After creating the site, you'll see the `site_id`, which you need in the next step. You can
continue configuring the site or start with the default configuration. By default, a south-facing
string is preset.

You can view sites you've already added on an [interactive site map](https://pvnode.com/sites).

## 2. Query a forecast

Query the site via its `site_id`. By default you get `pv_power` per time step
(15-minute intervals).

```python title="forecast.py"
import requests

resp = requests.get(
    "https://api.pvnode.com/v2/forecast/site_rv8wm5…",
    headers={"Authorization": "Bearer YOUR_API_KEY"},
)
data = resp.json()
print(data["values"][0])
```

```json title="Response (200 OK)"
{
  "site_id": "site_rv8wm5…",
  "timezone": "Europe/Paris",
  "computed_at": "2026-06-09T08:00:00",
  "included": [
    "default"
  ],
  "daily": [
    {
      "date": "2026-06-09",
      "pv_energy_kwh": 42.7
    }
  ],
  "values": [
    {
      "timestamp": "2026-06-09T00:00:00",
      "pv_power": 0.0
    },
    {
      "timestamp": "2026-06-09T00:15:00",
      "pv_power": 0.0
    }
  ]
}
```

## 3. Request more fields

Use `include` to control which field groups come back — e.g. weather and irradiance:

```bash
GET /v2/forecast/{site_id}?include=weather&include=irradiance
```

You'll find the full list of groups under [Forecasts](/en/v2/api/forecast).

:::tip
No persistent site needed? Enterprise users can use the [inline endpoints](/en/v2/enterprise/inline),
if available in their plan, and send the configuration directly in the request.
:::

## Next steps

- **[Sites & Strings](/en/v2/api/sites)** — all configuration options.
- **[Forecasts](/en/v2/api/forecast)** — `include` groups, variability, caching.
- **[API Reference](/api)** — complete parameter and field list.
