# ballbuddy.at auth.md

Auth-Übersicht für AI-Agents. Kurzfassung: **Lesen ist frei, es gibt keinen Token.**

## Ohne Token

Die Public-API von Ballbuddy ist öffentlich, nur lesend und ohne Schlüssel:

- `GET https://ballbuddy.at/api/public/v1/balls` – Maturabälle suchen und filtern
- `GET https://ballbuddy.at/api/public/v1/balls/{slug}` – ein Ball im Detail
- `GET https://ballbuddy.at/api/public/v1/schools`, `…/venues`, `…/sitemap`
- `GET https://ballbuddy.at/api/ics/{slug}` – Kalendereintrag (iCalendar)
- `GET https://ballbuddy.at/api/health` – Status

Kein Login, keine Registrierung, kein Bearer-Token, kein API-Key. Es gibt auch keinen Token-Tier mit höheren
Limits – die Grenzen sind für alle gleich.

Der MCP-Server (`https://ballbuddy.at/api/mcp`, Streamable HTTP, Werkzeuge `search_balls`, `get_ball`, `get_ball_calendar`, `list_schools_and_venues`)
braucht ebenfalls keinen Token – dieselben Daten, nur lesend.

## Was ein Agent stattdessen wissen muss

- **CORS ist offen** (`Access-Control-Allow-Origin: *`) – Aufrufe direkt aus dem Browser funktionieren.
- **Antworten sind eine Stunde cachebar** (`Cache-Control: public, s-maxage=3600, stale-while-revalidate=86400`).
  Bitte nicht öfter abfragen, als sich die Daten ändern.
- **ETag wird unterstützt**: `If-None-Match` mitschicken, unveränderte Antworten kommen als `304` ohne Body.
- **Sprechender User-Agent erwünscht**: Name des Agents plus eine Kontaktmöglichkeit (URL oder E-Mail), damit wir
  uns bei Problemen melden können.
- **Geschrieben wird über die API nicht.** Es gibt keine POST/PUT/DELETE-Endpunkte, keine Ticketkäufe, keine
  Anfragen – Änderungen an einem Ball macht das Komitee in der App.

## Kein OAuth – mit Absicht

Ballbuddy veröffentlicht bewusst **kein** `oauth-authorization-server`, `openid-configuration`,
`oauth-protected-resource` und kein `jwks.json`: Es gibt keine geschützte Ressource, über die diese Dokumente
etwas Wahres sagen könnten. Fehlen sie in einem Scan, ist das kein Versehen.

## Weiterlesen

- Doku für Agents: https://ballbuddy.at/docs/agents
- MCP-Server (Streamable HTTP, ohne Token): https://ballbuddy.at/api/mcp – Server-Card: https://ballbuddy.at/.well-known/mcp/server-card.json
- OpenAPI 3.1: https://ballbuddy.at/openapi.json
- Capability-Manifest (ARD): https://ballbuddy.at/.well-known/ai-catalog.json
- API-Catalog (RFC 9727): https://ballbuddy.at/.well-known/api-catalog

## Kontakt

Fragen oder Probleme: dein@ballbuddy.at · Ripix e.U., Grazbachgasse 56, 8010 Graz
