Public API

Build with live lake temperature data.

Use the Starnberger See API to enhance your app, website, dashboard, or local product with current water temperature measurements and supporting DWD weather data.

Designed for products

The API returns simple JSON over HTTPS, so it works well for mobile apps, websites, server-side integrations, displays, and automation tools.

No authentication

Endpoints are public and available without API keys. Please cache responsibly and keep request volume reasonable for user-facing integrations.

Where it fits

Practical data for products around the lake.

Weather and lake condition widgets

Tourism, hotel, and event websites

Bathing, sailing, rowing, and SUP apps

Local dashboards and smart-home displays

API endpoints

All responses use JSON and Celsius temperature values.

Water measurement timestamps are reported as Germany local time (Europe/Berlin), matching the NID Bayern source data.

Latest water temperature

Returns the newest measured water temperature for Starnberger See. datetime is Germany local time (Europe/Berlin), matching the NID Bayern source table.

GET
/api/v1/latest

Request

curl https://starnberger.app/api/v1/latest

Response

{
  "temperature": 18.7,
  "datetime": "2026-04-29T10:15:00"
}

Recent measurements

Returns the latest measurements in chronological order. Use limit to choose up to 128 entries. datetime is Germany local time (Europe/Berlin).

GET
/api/v1/entries?limit=24

Request

curl https://starnberger.app/api/v1/entries?limit=24

Response

[
  {
    "temperature": 18.4,
    "datetime": "2026-04-29T08:15:00"
  },
  {
    "temperature": 18.7,
    "datetime": "2026-04-29T10:15:00"
  }
]

DWD air temperature range

Returns the current forecast temperature range from DWD data used on the main page.

GET
/api/v1/dwd

Request

curl https://starnberger.app/api/v1/dwd

Response

{
  "temperatureMin": 9.2,
  "temperatureMax": 18.6
}

Integration notes

The API is intentionally small and stable. Use the OpenAPI file for machine-readable schema details, and handle occasional upstream data gaps gracefully.

Query parameters

limit on /api/v1/entries defaults to 24 and must be a positive integer up to 128.

Errors

Error responses use { "error": "Message" } with appropriate HTTP status codes such as 400, 404, or 500.

Caching and CORS

API responses include public CORS headers and short edge cache headers. Clients should still cache locally where practical.

Rate limits

Endpoints return standard RateLimit headers. Excessive traffic receives a 429 response.

JavaScript example

const response = await fetch('https://starnberger.app/api/v1/latest');
const latest = await response.json();