API · OpenAPI
Kirken ACTS Vejle API und Dokumentation
Öffentliche Dokumentation für Entwickler und KI-Agenten, die den Gemeindekalender und die Website lesen möchten.
Zugang und Authentifizierung
Die dokumentierten Lesezugriffe sind öffentlich. Anmeldung, API-Schlüssel und Cookies sind nicht erforderlich. Verwende HTTPS und GET. HEAD liefert nur Header, OPTIONS die erlaubten Methoden.
API und OpenAPI
GET /api und /api/v1 liefern JSON-Verzeichnisse öffentlicher Ressourcen. /api/v1 enthält auch die maschinenlesbare Versions- und Ratenrichtlinie. OpenAPI 3.0.4 enthält eindeutige operationId-Werte, Beschreibungen, typisierte Parameter und JSON-Antwortschemata für Function-Calling-Werkzeuge.
curl -H "Accept: application/json" https://actsvejle.dk/apiVersionen und Auslaufregeln
Die stabile JSON-API verwendet Hauptversionen in der URL: /api/v1. API-Version: 1 bestätigt die Antwortversion. Inkompatible Änderungen erhalten eine neue URL wie /api/v2; Ergänzungen können in v1 bleiben, daher müssen Clients unbekannte Antwortfelder ignorieren. Keine Version und kein Kalenderabonnement ist zur Abschaltung vorgesehen. Vor einer Abschaltung veröffentlichen wir hier mindestens 90 Tage vorher einen Hinweis und senden Deprecation als RFC-9745-Datum (@<Unix-Sekunden>), Sunset als RFC-8594-HTTP-Datum sowie einen Link mit rel=deprecation auf betroffenen Antworten. Bis zum angekündigten Datum bleibt das Verhalten erhalten.
Kalender als JSON
GET /api/v1/events liefert öffentliche, konkrete Termine mit ID, übersetztem Titel und Beschreibung, Datum, Uhrzeit, Ort und Kategorien. Wiederholungen, Absagen und Datumsänderungen folgen dem Websitekalender. Uhrzeiten gelten für Europe/Copenhagen. lang ist da, en, de oder es (Standard da); fehlende Übersetzungen verwenden Englisch, danach Dänisch. from und to sind inklusive Startdaten in YYYY-MM-DD, Jahre 1970 bis 9998; Standard ist heute in Kopenhagen bis 90 Tage später. Maximal 366 Tage. limit ist 1–100 (Standard 50), offset eine nicht negative sichere Ganzzahl (Standard 0); pagination.nextOffset bis null folgen. Kalenderdaten können sich zwischen Seiten ändern. category und type verwenden die folgenden Abonnementfilter. Andere Parameter, doppelte Einzelparameter und ungültige Sprachen ergeben 400. /api/calendar liefert mit Accept: application/json ebenfalls JSON; ansonsten bleibt iCalendar erhalten, auch bei */* und gleicher Präferenz.
curl -i -H "Accept: application/json" "https://actsvejle.dk/api/v1/events?lang=en&limit=10"Kalender
GET /api/calendar liefert den bestehenden iCalendar-Feed als UTF-8 text/calendar. Verwende einen RFC-5545-Parser für Wiederholungen, Ausnahmen und die Zeitzone Europe/Copenhagen. Der Feed enthält aktuelle öffentliche Termine; ein leerer Kalender unterscheidet sich von einer Störung.
lang ist da, en, de oder es; Standard und Fallback für unbekannte Sprachen ist da. Wiederhole category=<id> oder type=<Wert>, um Auswahlen zu kombinieren. Kategorie-IDs stehen in den Abonnementlinks des öffentlichen Kalenders. Maximal 64 Kategorie- und Typwerte zusammen. type erlaubt service, kids, groups, worship oder special und gilt nur für Termine ohne Kategorie. Ohne beide Filter werden alle Termine geliefert. Unbekannte gültige Kategorie-IDs ergeben eine leere Auswahl. Andere Query-Parameter werden ignoriert.
curl -H "Accept: text/calendar" "https://actsvejle.dk/api/calendar?lang=en"Website als Markdown
Lies öffentliche Seiten mit Accept: text/markdown oder hänge .md an die Adresse an. Die Startseite ist /index.md. Dänisch hat kein Sprachpräfix; Englisch, Deutsch und Spanisch verwenden /en, /de und /es. Die Markdown-Kalenderseite ist eine Einführung; aktuelle Daten stehen im Feed. Unbekannte Markdown-Seiten liefern weiterhin Markdown mit HTTP 404.
curl -H "Accept: text/markdown" https://actsvejle.dk/en/om-osFehler und Lösungen
Kalenderfehler, unbekannte API-Pfade und abgewiesene Schreibmethoden der dokumentierten APIs liefern RFC-9457-JSON mit Content-Type: application/problem+json. Die Felder sind type, title, status, detail, instance, code und hint. code ist ein stabiler Fehlercode, hint beschreibt den nächsten Schritt. Verwende HTTP-Status und code in deiner Integration.
400 INVALID_CALENDAR_SELECTION: Leere oder ungültige Filter korrigieren oder auf maximal 64 Werte reduzieren.
400 INVALID_EVENT_QUERY: Sprache, Datumsbereich, Seiteneinteilung oder Filter des JSON-Kalenders anhand von /openapi.json korrigieren.
404 API_NOT_FOUND: Über /api oder /openapi.json einen bestehenden Endpunkt finden.
405 METHOD_NOT_ALLOWED: GET, HEAD oder OPTIONS verwenden. Der Allow-Header nennt erlaubte Methoden.
429 RATE_LIMITED: Die in Retry-After genannten Sekunden warten. RateLimit nennt Restkontingent (r) und Sekunden bis zur Rücksetzung (t).
503 CALENDAR_UNAVAILABLE: Vor einem erneuten Versuch 300 Sekunden gemäß Retry-After warten. Fehlerantworten nicht zwischenspeichern.
curl -i "https://actsvejle.dk/api/calendar?type=invalid"Cache und Nutzung
Die JSON-Routen /api, /api/v1 und /api/v1/events sowie JSON-Antworten von /api/calendar erlauben 120 Anfragen pro 60 Sekunden je Client-IP, Route und Serverinstanz. GET, HEAD, OPTIONS und abgewiesene Methoden zählen auf JSON-Routen mit. RateLimit-Policy: "instance-read";q=120;w=60 und RateLimit: "instance-read";r=<Rest>;t=<Sekunden> folgen IETF draft-ietf-httpapi-ratelimit-headers-11, noch keiner RFC. Bei 429 hat Retry-After Vorrang. JSON-Antworten und Kontingentdaten dürfen nicht zwischengespeichert werden. Zähler werden bei Neustarts zurückgesetzt und nicht zwischen Instanzen geteilt; dies ist kein globales Kontingent. Bei vielen Clients können neue Clients ein konservatives gemeinsames Kontingent auf der Instanz nutzen. Die Hostingplattform kann weitere Grenzen setzen. Daten zwischen Fragen wiederverwenden. iCalendar-Abonnements behalten ihren 300-Sekunden-Cache und liegen außerhalb der JSON-Burstgrenze. Authentifizierung und interne Verwaltungs-APIs behalten ihre Protokolle.
Aktionen und Kontakt
Die API bietet Lesezugriff auf öffentliche Informationen. Anmeldungen, Nachrichten und Spenden erfordern die Entscheidung des Besuchers und eine tatsächliche Bestätigung des Dienstes. Es gibt keine öffentliche Agenten-API für Zahlungen, Buchungen, sensible persönliche Daten oder Verwaltung.