API reference, embeddable widgets, and integration guides for the Christ Himself daily devotional.
The Christ Himself devotional provides a public JSON API with the full 366-day corpus in three languages, plus drop-in JavaScript widgets for embedding the devotional reader and audio player on any site. CORS is enabled on all endpoints.
/api/v1/today
— 302 redirect to the current day's JSON
/api/v1/random
— 302 redirect to a random devotional entry
/api/v1/index.json
— Full 366-day index with theme references
/api/v1/devotionals/{MM-DD}.json
— Full day data (both periods, all languages)
/api/v1/devotionals/{MM-DD}/{am|pm}.json
— Single period for a given day
/podcast/{en|pt|fr}.xml
— RSS feed (rolling 365-day window)
curl https://www.christhimself.com/api/v1/devotionals/05-28.json
Drop-in widget that renders the full devotional entry for the current day with morning/evening tabs, theme verse, summary, supporting scriptures, and four reflection questions.
<script src="https://www.christhimself.com/widgets/devotional.js"></script>
<div data-ch-devotional></div>
| Attribute | Type | Description |
|---|---|---|
| data-ch-lang | string | Language override: en, pt, or fr. Defaults to <html lang>. |
| data-ch-date | string | Pin to a specific date (MM-DD). Not yet implemented — shows today only. |
The widget reads the <html lang> attribute on the page. Set <html lang="pt"> and the devotional renders in Portuguese automatically. Use data-ch-lang to override per element.
The widget listens for a ch-lang-change custom event on document. Dispatch it to re-render all widget instances:
document.dispatchEvent(new CustomEvent('ch-lang-change'));
Drop-in widget that renders native <audio> controls for the current day's morning and evening recordings. Same language detection and event model as the devotional reader.
<script src="https://www.christhimself.com/widgets/audio-player.js"></script>
<div data-ch-audio></div>
| Attribute | Type | Description |
|---|---|---|
| data-ch-lang | string | Language override: en, pt, or fr. |
Same as the devotional widget — reads <html lang> by default, overridable via data-ch-lang. Also responds to ch-lang-change events.
<!DOCTYPE html>
<html lang="en">
<head>
<title>My Site</title>
</head>
<body>
<h1>Today's Devotional</h1>
<div data-ch-audio data-ch-lang="en"></div>
<div data-ch-devotional data-ch-lang="en"></div>
<script src="https://www.christhimself.com/widgets/audio-player.js"></script>
<script src="https://www.christhimself.com/widgets/devotional.js"></script>
</body>
</html>
| Code | Language | Translation | Podcast Feed |
|---|---|---|---|
| en | English | BSB (Berean Standard Bible) | /podcast/en.xml |
| pt | European Portuguese | BLJ (Bíblia Livre de Jenkins) | /podcast/pt.xml |
| fr | Parisian French | LSG (Louis Segond 1910) | /podcast/fr.xml |
Each daily response contains both periods and all languages in a single JSON structure. For the full schema, fetch any date endpoint:
curl https://www.christhimself.com/api/v1/devotionals/05-28.json | jq .
Key fields: date, day, periods[].period (am/pm), periods[].languages.{lang}.theme, periods[].languages.{lang}.summary, periods[].languages.{lang}.verses[], periods[].languages.{lang}.questions, periods[].audio.{lang} (R2 audio URL).
AI disclosure: AI tools were used to support editing, translation, and audio production. Scripture content was never AI-generated — every verse is deterministically copied from authoritative published translations (BSB, BLJ, LSG).