Skip to content

Devotio — Saints & Prayers

The Devotio engine serves the Church’s living treasury of saints and prayer. It exposes two resources: the hagiographic database (/saints) and the prayer library (/prayers).

All Devotio endpoints require an X-API-Key header. See Authentication.


GET /v1/devotio/saints

Query parameters:

  • q (optional) — free-text search on name and biography
  • rank (optional) — liturgical rank (e.g., Doctor of the Church, Martyr)
  • patron (optional) — patronage string (e.g., students, Italy)
  • month (optional) — feast month filter (e.g., 03 for March)
  • limit — max results (default: 20)

Response: List[SaintRead]

[
{
"id": 42,
"name": "Thomas Aquinas",
"slug": "thomas-aquinas",
"title": "Doctor of the Church",
"ranks": ["Doctor of the Church", "Confessor"],
"feast_day": "01-28",
"born_year": 1225,
"died_year": 1274,
"patronage": ["students", "universities", "philosophers"],
"iconography": ["star on chest", "ox"],
"attributes": ["book", "lily"],
"quotes": ["..."],
"bio_markdown": "...",
"relationships": [...],
"citations": [...]
}
]

GET /v1/devotio/saints/slug/{slug}

Returns the full SaintRead record for a single saint.

Example: GET /v1/devotio/saints/slug/thomas-aquinas


GET /v1/devotio/saints/{saint_id}

Returns a SaintRead by integer ID.


GET /v1/devotio/saints/slug/{slug}/feast

Lightweight endpoint returning only the name and feast date. Useful for calendar integrations.

Response:

{
"name": "Thomas Aquinas",
"feast_day": "01-28"
}

feast_day format is MM-DD.


GET /v1/devotio/saints/ranks

Returns all unique liturgical ranks present in the database.

Response: List[str]


GET /v1/devotio/saints/patronages

Returns all unique patronage strings. Useful for building filter UIs.

Response: List[str]


FieldTypeNotes
idintInternal ID
namestrCanonical English name
slugstrURL-safe identifier
titlestr?Honorific title
ranksList[str]Liturgical ranks
feast_daystr?MM-DD format
born_yearint?Approximate birth year
born_textstr?Free-text birth description
died_yearint?Approximate death year
died_textstr?Free-text death description
canonization_yearint?Year of canonization
patronageList[str]Patronages
iconographyList[str]Iconographic symbols
attributesList[str]Traditional attributes
quotesList[str]Notable quotes
bio_markdownstr?Full biography (Markdown)
relationshipsList[SaintRelationshipRead]Related saints/orders
citationsList[CitationRead]Source citations — see below

Every saint may carry citations recording where its life was drawn from. A citation points either at a chapter of our own corpus — in which case source resolves to a readable chapter — or at a work we cite but do not hold, in which case source is null and bibliography carries the volume details.

FieldTypeNotes
source_typestrcapitulum (internal chapter), bibliographicum (print work, not held), externum (external URL)
usage_typestrVITA_PRIMARIA (the principal life), GENERAL (corroborating), PROOF_TEXT
urlstr?External URL, when the source is a web document
textstr?Quoted excerpt, where one was recorded
bibliographyobject?Volume, author, article title, rights — free-form JSON
sourceCitationSourceRef?Present only when the source is a chapter we hold
FieldTypeNotes
capitulum_idintInternal chapter ID
opus_slugstr?Work slug — use with the Veritas opera routes
opus_titlestr?Human-readable work title
chapter_slugstr?Chapter slug
chapter_titlestr?Human-readable chapter title

Read the cited source directly: GET /v1/veritas/opera/{opus_slug}/read/{chapter_slug}

{
"source_type": "capitulum",
"usage_type": "VITA_PRIMARIA",
"url": null,
"text": null,
"bibliography": {
"opus": "The Catholic Encyclopedia (1913)",
"articulus": "The Venerable Bede",
"rights": "public domain"
},
"source": {
"capitulum_id": 3325,
"opus_slug": "catholic_encyclopedia_1913",
"opus_title": "The Catholic Encyclopedia (1913)",
"chapter_slug": "the_venerable_bede_ce",
"chapter_title": "The Venerable Bede"
}
}

GET /v1/devotio/prayers

Query parameters:

  • typus (optional) — prayer type (e.g., rosary, litany, novena, psalm)
  • q (optional) — free-text search on title and text
  • limit — max results (default: 10)

Response: List[PrayerRead]

[
{
"id": 7,
"slug": "hail-mary",
"title": "Hail Mary",
"type": "marian",
"text_latin": "Ave Maria, gratia plena...",
"text_en": "Hail Mary, full of grace...",
"tags": ["marian", "rosary", "classic"]
}
]

GET /v1/devotio/prayers/{slug}

Returns a single PrayerRead record.


GET /v1/devotio/prayers/random

Returns a single PrayerRead chosen at random. Useful for daily devotional feeds.


FieldTypeNotes
idintInternal ID
slugstrURL-safe identifier
titlestrPrayer title
typestrPrayer category
text_latinstr?Latin text (if available)
text_enstr?English translation
tagsList[str]Descriptive tags