{
 "components": {
  "schemas": {
   "Wrapped": {
    "description": "Frappe-Standardh\u00fclle der JSON-Antworten.",
    "properties": {
     "message": {
      "description": "Eigentliche Nutzlast \u2014 Objekt oder Liste, je nach Endpunkt."
     }
    },
    "type": "object"
   }
  }
 },
 "info": {
  "contact": {
   "name": "Missale Online",
   "url": "https://missale.online/impressum"
  },
  "description": "\u00d6ffentliche, gastzug\u00e4ngliche REST-Endpunkte des liturgischen Kalenders, der Messtexte (Proprium + Ordinarium), des Psalters und der Vulgata Clementina.\n\n**Antwortformat:** Alle JSON-Endpunkte verpacken ihre Nutzlast nach Frappe-Konvention in `{ \"message\": \u2026 }` und liefern `Cache-Control`-Header. `get_calendar` unterst\u00fctzt zus\u00e4tzlich ETag / `If-None-Match` (304).\n\n**Quellen:** G\u00e4ste sehen ausschlie\u00dflich ver\u00f6ffentlichte Quellen (`published = 1`); nicht freigegebene \u00dcbersetzungen sind auch \u00fcber handgebaute Parameter nicht abrufbar.",
  "title": "Missale Online \u2014 Liturgie-API",
  "version": "1.0.0"
 },
 "openapi": "3.0.3",
 "paths": {
  "/api/method/liturgia.api.get_annotation_sources": {
   "get": {
    "description": "Quellen, die mindestens eine Mess-Annotation besitzen.",
    "parameters": [],
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Wrapped"
        }
       }
      },
      "description": "Erfolg"
     }
    },
    "summary": "Annotations-Quellen",
    "tags": [
     "Messtexte"
    ]
   }
  },
  "/api/method/liturgia.api.get_annotations": {
   "get": {
    "description": "Annotationen zu einem Fest, gefiltert nach Quelle und Sprache \u2014 inkl. allgemeiner (festloser) Annotationen. Ohne `source` wird eine leere Liste geliefert.",
    "parameters": [
     {
      "description": "Annotations-Quelle (Pflicht).",
      "in": "query",
      "name": "source",
      "required": true,
      "schema": {
       "example": "st_maria",
       "type": "string"
      }
     },
     {
      "description": "Fest-Key; liefert auch festlose Annotationen.",
      "in": "query",
      "name": "feast",
      "required": false,
      "schema": {
       "example": "MW_ADVZEIT_ADVSO1",
       "type": "string"
      }
     },
     {
      "description": "Sprachfilter.",
      "in": "query",
      "name": "language",
      "required": false,
      "schema": {
       "enum": [
        "la",
        "de",
        "en"
       ],
       "type": "string"
      }
     }
    ],
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Wrapped"
        }
       }
      },
      "description": "Erfolg"
     }
    },
    "summary": "Annotationen",
    "tags": [
     "Messtexte"
    ]
   }
  },
  "/api/method/liturgia.api.get_bible_books": {
   "get": {
    "description": "Alle B\u00fccher der Vulgata Clementina mit Reihenfolge, Testament, Buchgruppe sowie Kapitel- und Verszahl.",
    "parameters": [],
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Wrapped"
        }
       }
      },
      "description": "Erfolg"
     }
    },
    "summary": "Bibel-B\u00fccher",
    "tags": [
     "Bibel"
    ]
   }
  },
  "/api/method/liturgia.api.get_bible_chapter": {
   "get": {
    "description": "Alle Verse eines Kapitels in zwei Sprach-/Quellen-Spalten. Default links Clementina-Latein.",
    "parameters": [
     {
      "description": "Buch-Slug (z. B. jo = Johannes).",
      "in": "query",
      "name": "book",
      "required": true,
      "schema": {
       "example": "jo",
       "type": "string"
      }
     },
     {
      "description": "Kapitelnummer.",
      "in": "query",
      "name": "chapter",
      "required": true,
      "schema": {
       "example": 1,
       "type": "integer"
      }
     },
     {
      "description": "Sprache der linken Spalte (Default: la).",
      "in": "query",
      "name": "left_lang",
      "required": false,
      "schema": {
       "enum": [
        "la",
        "de",
        "en"
       ],
       "type": "string"
      }
     },
     {
      "description": "Quellen-Key der linken Spalte. G\u00e4ste sehen nur ver\u00f6ffentlichte Quellen.",
      "in": "query",
      "name": "left_source",
      "required": false,
      "schema": {
       "example": "vulgata_clementina",
       "type": "string"
      }
     },
     {
      "description": "Sprache der rechten Spalte (Default: de).",
      "in": "query",
      "name": "right_lang",
      "required": false,
      "schema": {
       "enum": [
        "la",
        "de",
        "en"
       ],
       "type": "string"
      }
     },
     {
      "description": "Quellen-Key der rechten Spalte.",
      "in": "query",
      "name": "right_source",
      "required": false,
      "schema": {
       "type": "string"
      }
     }
    ],
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Wrapped"
        }
       }
      },
      "description": "Erfolg"
     }
    },
    "summary": "Bibel-Kapitel",
    "tags": [
     "Bibel"
    ]
   }
  },
  "/api/method/liturgia.api.get_bible_sources": {
   "get": {
    "description": "Sprach-/Quellen-Kombinationen, die in der Bibel vorkommen (nur ver\u00f6ffentlichte Quellen).",
    "parameters": [],
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Wrapped"
        }
       }
      },
      "description": "Erfolg"
     }
    },
    "summary": "Bibel-Quellen",
    "tags": [
     "Bibel"
    ]
   }
  },
  "/api/method/liturgia.api.get_calendar": {
   "get": {
    "description": "Alle Kalendereintr\u00e4ge, optional nach Jahr gefiltert. Liefert je Eintrag Farbe, Rang, Titel (de/la), Festtyp und Kommemorationen. Unterst\u00fctzt ETag / `If-None-Match` (304).",
    "parameters": [
     {
      "description": "Jahr filtern. Ohne Angabe: alle Jahre.",
      "in": "query",
      "name": "year",
      "required": false,
      "schema": {
       "example": 2026,
       "type": "integer"
      }
     }
    ],
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Wrapped"
        }
       }
      },
      "description": "Erfolg"
     }
    },
    "summary": "Kalendereintr\u00e4ge",
    "tags": [
     "Kalender"
    ]
   }
  },
  "/api/method/liturgia.api.get_calendar_ics": {
   "get": {
    "description": "iCalendar-Feed zum Abonnieren (webcal) oder Download. Antwort ist `text/calendar`, **nicht** JSON. Ohne `year`: laufendes + Folgejahr (Abo-Modus).",
    "parameters": [
     {
      "description": "Rang-Stufe: 1=Sonntage+I.Kl \u00b7 2=+II.Kl \u00b7 3=+III.Kl \u00b7 4=alle Tage.",
      "in": "query",
      "name": "feed",
      "required": false,
      "schema": {
       "default": "1",
       "enum": [
        "1",
        "2",
        "3",
        "4"
       ],
       "type": "string"
      }
     },
     {
      "description": "Einzeljahr (Download-Modus).",
      "in": "query",
      "name": "year",
      "required": false,
      "schema": {
       "example": 2026,
       "type": "integer"
      }
     },
     {
      "description": "download=1 \u21d2 Content-Disposition: attachment.",
      "in": "query",
      "name": "download",
      "required": false,
      "schema": {
       "enum": [
        "1"
       ],
       "type": "string"
      }
     }
    ],
    "responses": {
     "200": {
      "content": {
       "text/calendar": {
        "schema": {
         "type": "string"
        }
       }
      },
      "description": "iCalendar-Datei"
     }
    },
    "summary": "iCal-Feed (.ics)",
    "tags": [
     "Kalender"
    ]
   }
  },
  "/api/method/liturgia.api.get_mass_detail": {
   "get": {
    "description": "Volltext einer Messe: Proprium (mit Commune-Vererbung) + Ordinarium. Mit `date` werden zus\u00e4tzlich die Kommemorationsgebete (Oratio, Secreta, Postcommunio) der kommemorierten Feste geliefert.",
    "parameters": [
     {
      "description": "Fest-Key (Liturgical Feast).",
      "in": "query",
      "name": "feast",
      "required": true,
      "schema": {
       "example": "MW_ADVZEIT_ADVSO1",
       "type": "string"
      }
     },
     {
      "description": "Datum (YYYY-MM-DD) f\u00fcr Kommemorationen.",
      "in": "query",
      "name": "date",
      "required": false,
      "schema": {
       "example": "2026-03-25",
       "format": "date",
       "type": "string"
      }
     },
     {
      "description": "Sprache der linken Spalte (Default: la).",
      "in": "query",
      "name": "left_lang",
      "required": false,
      "schema": {
       "enum": [
        "la",
        "de",
        "en"
       ],
       "type": "string"
      }
     },
     {
      "description": "Quellen-Key der linken Spalte. G\u00e4ste sehen nur ver\u00f6ffentlichte Quellen.",
      "in": "query",
      "name": "left_source",
      "required": false,
      "schema": {
       "example": "vulgata_clementina",
       "type": "string"
      }
     },
     {
      "description": "Sprache der rechten Spalte (Default: de).",
      "in": "query",
      "name": "right_lang",
      "required": false,
      "schema": {
       "enum": [
        "la",
        "de",
        "en"
       ],
       "type": "string"
      }
     },
     {
      "description": "Quellen-Key der rechten Spalte.",
      "in": "query",
      "name": "right_source",
      "required": false,
      "schema": {
       "type": "string"
      }
     }
    ],
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Wrapped"
        }
       }
      },
      "description": "Erfolg"
     }
    },
    "summary": "Messtexte eines Festes",
    "tags": [
     "Messtexte"
    ]
   }
  },
  "/api/method/liturgia.api.get_psalm_detail": {
   "get": {
    "description": "Alle Verse eines Psalms in zwei Sprach-/Quellen-Spalten. Default links Clementina-Latein, rechts deutsche \u00dcbersetzung derselben Tradition (Fallback Nova Vulgata).",
    "parameters": [
     {
      "description": "Psalm-Nummer (Septuaginta-Z\u00e4hlung).",
      "in": "query",
      "name": "psalm",
      "required": true,
      "schema": {
       "example": "118",
       "type": "string"
      }
     },
     {
      "description": "Sprache der linken Spalte (Default: la).",
      "in": "query",
      "name": "left_lang",
      "required": false,
      "schema": {
       "enum": [
        "la",
        "de",
        "en"
       ],
       "type": "string"
      }
     },
     {
      "description": "Quellen-Key der linken Spalte. G\u00e4ste sehen nur ver\u00f6ffentlichte Quellen.",
      "in": "query",
      "name": "left_source",
      "required": false,
      "schema": {
       "example": "vulgata_clementina",
       "type": "string"
      }
     },
     {
      "description": "Sprache der rechten Spalte (Default: de).",
      "in": "query",
      "name": "right_lang",
      "required": false,
      "schema": {
       "enum": [
        "la",
        "de",
        "en"
       ],
       "type": "string"
      }
     },
     {
      "description": "Quellen-Key der rechten Spalte.",
      "in": "query",
      "name": "right_source",
      "required": false,
      "schema": {
       "type": "string"
      }
     }
    ],
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Wrapped"
        }
       }
      },
      "description": "Erfolg"
     }
    },
    "summary": "Psalm-Detail",
    "tags": [
     "Psalter"
    ]
   }
  },
  "/api/method/liturgia.api.get_psalm_list": {
   "get": {
    "description": "Skelette aller 150 Psalmen: Nummer, hebr\u00e4ische Z\u00e4hlung, Incipit, deutscher Titel und Verszahl.",
    "parameters": [],
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Wrapped"
        }
       }
      },
      "description": "Erfolg"
     }
    },
    "summary": "Psalmen-\u00dcbersicht",
    "tags": [
     "Psalter"
    ]
   }
  },
  "/api/method/liturgia.api.get_psalm_sources": {
   "get": {
    "description": "Sprach-/Quellen-Kombinationen, die im Psalter tats\u00e4chlich vorkommen (nur ver\u00f6ffentlichte Quellen).",
    "parameters": [],
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Wrapped"
        }
       }
      },
      "description": "Erfolg"
     }
    },
    "summary": "Psalter-Quellen",
    "tags": [
     "Psalter"
    ]
   }
  },
  "/api/method/liturgia.api.get_sources": {
   "get": {
    "description": "Alle ver\u00f6ffentlichten Quellen plus die je Quelle verf\u00fcgbaren Sprachen (f\u00fcr die Spalten-Dropdowns des Messlesers).",
    "parameters": [],
    "responses": {
     "200": {
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/Wrapped"
        }
       }
      },
      "description": "Erfolg"
     }
    },
    "summary": "Sprach-/Quellen-Kombinationen",
    "tags": [
     "Messtexte"
    ]
   }
  }
 },
 "servers": [
  {
   "description": "Produktion",
   "url": "https://missale.online"
  },
  {
   "description": "Identische Site (gemeinsame Datenbank)",
   "url": "https://missale.digital"
  }
 ],
 "tags": [
  {
   "description": "Liturgischer Kalender & iCal-Feeds",
   "name": "Kalender"
  },
  {
   "description": "Proprium, Ordinarium, Quellen & Annotationen",
   "name": "Messtexte"
  },
  {
   "description": "Die 150 Psalmen",
   "name": "Psalter"
  },
  {
   "description": "Vulgata Clementina",
   "name": "Bibel"
  }
 ]
}