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

# Fetching Intraday Session Forecasts from Nexenergie

> Learn how to retrieve intraday price forecasts for OMIE sessions 1, 2, and 3 using the Nexenergie API, including session numbering and timing guidance.

After the day-ahead market closes, OMIE runs a series of intraday adjustment sessions that allow market participants to revise their positions as real-time conditions evolve. Nexenergie generates price forecasts for intraday sessions 1, 2, and 3, each covering a progressively shorter window of remaining delivery hours. This guide explains how to call the intraday endpoint, interpret the session-scoped response, and decide which session to query for your use case.

## Session Numbering

Nexenergie follows the OMIE session numbering convention. Each session opens and closes at a fixed time and covers only the delivery hours that remain after its gate closure.

* **Session 1** — opens early morning and covers delivery hours from mid-morning onward. It is the first intraday opportunity to adjust positions after the day-ahead market settlement.
* **Session 2** — opens late morning and covers delivery hours from early afternoon onward. Fewer hours remain, and the model has access to fresher real-time fundamentals.
* **Session 3** — opens early afternoon and covers delivery hours from early evening through midnight. This is typically the session with the smallest coverage window but also the one that benefits from the most up-to-date ENTSO-E and weather data.

## Calling the Intraday Endpoint

To fetch intraday forecasts, call `GET /forecasts/intraday/{session}`, replacing `{session}` with `1`, `2`, or `3`. Pass the delivery date as the required `date` query parameter in `YYYY-MM-DD` format.

<CodeGroup>
  ```bash cURL theme={null}
  curl --request GET \
    --url "https://app.nexenergie.ai/api/v1/forecasts/intraday/2?date=2024-11-15" \
    --header "Authorization: Bearer <your_token>"
  ```

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

  BASE_URL = "https://app.nexenergie.ai/api/v1"
  TOKEN = "<your_token>"
  SESSION = 2

  response = requests.get(
      f"{BASE_URL}/forecasts/intraday/{SESSION}",
      params={"date": "2024-11-15"},
      headers={"Authorization": f"Bearer {TOKEN}"},
  )
  response.raise_for_status()
  forecast = response.json()

  print(f"Session {forecast['session']} — {len(forecast['forecasts'])} hours covered")
  for entry in forecast["forecasts"]:
      print(f"  Hour {entry['hour']:02d}:00 → {entry['forecast_price']} EUR/MWh")
  ```
</CodeGroup>

## Understanding the Response

A successful `200 OK` response mirrors the day-ahead structure but includes a `session` field and only contains entries for the hours covered by that session. The example below shows a session 2 forecast for an afternoon-to-midnight window.

```json Example Response (Session 2) theme={null}
{
  "market": "intraday",
  "session": 2,
  "date": "2024-11-15",
  "model_version": "v2.4.1",
  "data_as_of": "2024-11-15T10:15:00Z",
  "forecasts": [
    { "hour": 12, "forecast_price": 81.30, "lower_bound": 73.5, "upper_bound": 89.1, "unit": "EUR/MWh" },
    { "hour": 13, "forecast_price": 85.74, "lower_bound": 77.2, "upper_bound": 94.3, "unit": "EUR/MWh" },
    { "hour": 14, "forecast_price": 90.12, "lower_bound": 81.8, "upper_bound": 98.5, "unit": "EUR/MWh" },
    { "hour": 15, "forecast_price": 88.45, "lower_bound": 80.1, "upper_bound": 96.8, "unit": "EUR/MWh" },
    { "hour": 16, "forecast_price": 86.20, "lower_bound": 78.4, "upper_bound": 94.0, "unit": "EUR/MWh" },
    { "hour": 17, "forecast_price": 83.67, "lower_bound": 75.9, "upper_bound": 91.4, "unit": "EUR/MWh" },
    { "hour": 18, "forecast_price": 79.55, "lower_bound": 71.3, "upper_bound": 87.8, "unit": "EUR/MWh" },
    { "hour": 19, "forecast_price": 75.88, "lower_bound": 68.0, "upper_bound": 83.7, "unit": "EUR/MWh" },
    { "hour": 20, "forecast_price": 72.40, "lower_bound": 64.6, "upper_bound": 80.2, "unit": "EUR/MWh" },
    { "hour": 21, "forecast_price": 68.95, "lower_bound": 61.2, "upper_bound": 76.7, "unit": "EUR/MWh" },
    { "hour": 22, "forecast_price": 64.30, "lower_bound": 57.0, "upper_bound": 71.6, "unit": "EUR/MWh" },
    { "hour": 23, "forecast_price": 60.10, "lower_bound": 53.4, "upper_bound": 66.8, "unit": "EUR/MWh" }
  ]
}
```

The `session` field confirms which intraday session the forecast belongs to. The `data_as_of` timestamp reflects the latest real-time inputs available at model run time, which will be more recent than the equivalent day-ahead timestamp for the same delivery date.

## Choosing the Right Session

Use the table below to select the session that matches your trading workflow.

| Session | Typical Hour Coverage | When to Use                                                                                                     |
| ------- | --------------------- | --------------------------------------------------------------------------------------------------------------- |
| **1**   | Hours 8–23 (approx.)  | Early-morning position adjustments after day-ahead settlement; first intraday look at the full remaining day.   |
| **2**   | Hours 12–23 (approx.) | Late-morning refinement when solar and wind actualization data is available; recalibrating afternoon positions. |
| **3**   | Hours 16–23 (approx.) | Near-real-time fine-tuning for evening hours; highest data freshness but narrowest coverage window.             |

<Note>
  Session 3 forecasts are only generated once the model has ingested sufficient updated ENTSO-E and weather telemetry, which typically occurs in the early afternoon. If you query session 3 before it has been generated for the requested date, the API returns a `404 Not Found` response. Build a retry loop with back-off into any automation that depends on session 3 data.
</Note>

<Tip>
  If you need a full 24-hour price view to plan your daily strategy, use the [day-ahead endpoint](/guides/fetching-forecasts) instead. Reserve intraday session calls for workflows that specifically require near-term position adjustments or the incremental accuracy gains that later sessions provide.
</Tip>
