BYTETOOLS

LectServe API

Free lectionary API with no key: today's and Sunday's scripture readings from the Revised Common and ACNA lectionaries, with liturgical year and season. Tested example included.

No API key requiredCORS enabledHTTPSFree tier

Endpoint tested and returned HTTP 200 on 2026-08-21

What is the LectServe API?

LectServe returns Protestant lectionary readings as JSON with no API key. A request for today gives both the current day's readings and the coming Sunday's, with the liturgical year letter, service names and the lectionary in use.

Lectionaries are three-year cycles of prescribed scripture readings, and computing which passages belong to a given date requires tracking the liturgical calendar — a genuinely fiddly calculation involving Easter, movable feasts and a year letter that rotates A, B, C. LectServe does that and returns the answer, which is why it turns up behind church websites and daily-reading apps.

The response shape is the thing to understand: `red_letter` covers the requested day and `sunday` covers the coming Sunday, and both are returned together because a weekday frequently has no readings of its own. That case is explicit rather than empty — `type` reads `noLect` and `readings` is an empty array, which is a proper answer rather than a gap. The `year` field is the liturgical year letter, not a calendar year, and `lectionary` names the tradition, `acna` in the captured response. Both `prevSunday` and `nextSunday` are given, so navigating the cycle needs no date arithmetic on your side.

Quick facts

Base URL
https://www.lectserve.com
Authentication
No API key and no account.
Rate limit
No published limit. Readings for a date never change — cache indefinitely.
Pricing
Free.
CORS
Enabled — callable directly from browser JavaScript
Official docs
Read the docs

How to use the LectServe API

Every request below was executed against the live API on 2026-08-21, and the response shown is the real body it returned — not an illustration.

1. Fetch today's lectionary readings

GET https://www.lectserve.com/today

curl
curl 'https://www.lectserve.com/today'
JavaScript (fetch)
const res = await fetch("https://www.lectserve.com/today");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);
Python (requests)
import requests

res = requests.get("https://www.lectserve.com/today", timeout=20)
res.raise_for_status()
print(res.json())
Response — HTTP 200
{
  "sunday": {
    "nextSunday": "2026-08-30",
    "day": "Sunday",
    "year": "A",
    "date_pretty": "23. August 2026",
    "date": "2026-08-23",
    "prevSunday": "2026-08-16",
    "services": [
      {
        "alt": "",
        "name": "Sunday Closest to August 24",
        "readings": [
          "Isaiah 51:1-6",
          "Psalm 138",
          "Romans 11:25-36",
          "Matthew 16:13-20"
        ]
      }
    ],
    "lectionary": "acna",
    "type": "Sunday"
  },
  "daily": {
    "tomorrow": "2026-08-22",
    "week": "Sunday Closest to August 17",
    "day": "Friday",
    "date": "2026-08-21",
    "date_pretty": "21. August 2026",
    "yesterday": "2026-08-20",
    "lectionary": "acna-sec",
    "readings": {
      "morning": {
        "first": "2 Samuel 9",
        "second": "Philippians 2:12-end"
      },
      "evening": {
        "second": "John 17",
        "first": "Amos 2"
      }
    }
  },
  "red_letter": {
    "year": "A",
    "nextSunday": "2026-08-23",
    "day": "Friday",
    "date": "2026-08-21",
    "date_pretty": "21. August 2026",
    "type": "noLect",
    "services": [
      {
        "readings": [],
        "name": "Friday, August 21, 2026",
        "alt": ""
      }
    ],
    "prevSunday": "2026-08-16",
    "lectionary": "acna"
  }
}

Parameters

ParameterTypeRequiredDescription
(date path)pathRequired`/today`, or a specific date as `/YYYY/MM/DD`. today
lectionaryqueryOptionalWhich tradition to use, such as `acna` or the Revised Common Lectionary. acna

Response fields

red_letterobject
The requested day. Named for red-letter days in the liturgical calendar.
sundayobject
The coming Sunday, returned alongside because most weekdays have no readings of their own.
[block].typestring
`Sunday`, a feast name, or `noLect` when the day has no prescribed readings.
[block].date / date_prettystring
ISO date and a human-readable form such as `21. August 2026`.
[block].daystring
Day of the week.
[block].yearstring
Liturgical year letter — A, B or C. Not a calendar year.
[block].servicesarray
Services for that day, each with a `name`, an `alt` alternative and a `readings` array of scripture references.
[block].services[].readingsarray
Scripture references as strings, such as `Isaiah 51:1-6`. Empty on a `noLect` day.
[block].prevSunday / nextSundaystring
Adjacent Sundays as ISO dates, so you can navigate the cycle without computing it.
[block].lectionarystring
Which lectionary tradition produced these readings, for example `acna`.

What you can build with the LectServe API

  • Display today's readings on a church website
  • Build a daily scripture reading app or email
  • Generate an order of service from the prescribed passages
  • Navigate the liturgical calendar without implementing the date rules

Common errors and how to fix them

Empty readings array

The day is `noLect` — it has no prescribed readings.

Fix: Fall back to the `sunday` block, which is returned for exactly this reason.

Year looks wrong

`year` is the liturgical year letter A, B or C.

Fix: It is not a calendar year. The cycle rotates and does not align with January.

http request redirects

The service redirects plain http to https.

Fix: Request https directly to avoid the extra round trip.

Different readings than expected

Traditions prescribe different passages for the same date.

Fix: Set `lectionary` explicitly rather than accepting the default, and state which tradition you are showing.

LectServe API — frequently asked questions

Is LectServe free?

Yes, free with no key or account. It serves Protestant lectionary data as JSON.

Why does it return both today and Sunday?

Because most weekdays have no prescribed readings of their own — `type` reads `noLect` and the readings array is empty. The Sunday block is returned so you always have something to display.

What does the year field mean?

The liturgical year letter, A, B or C. Lectionaries run on a three-year cycle that does not align with the calendar year, so this is a cycle position rather than a date.

Which lectionaries are supported?

The Revised Common Lectionary and the ACNA lectionary among others. Set the `lectionary` parameter explicitly, since different traditions prescribe different readings for the same date.

Tools that pair with this API

LectServe is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 2026-08-21; always check the official documentation before relying on this API in production, as terms and limits can change.