Abrindo o portal

Uma API do Caminho Anglicano

Consultar status
Documentação / API v2

API v2: peça só o que for usar

A v2 é a superfície da Estevão pensada para quem integra de fora: somente leitura, autenticada por chave, com respostas que começam pequenas e crescem conforme você pede.

01 / Por quê

Barata por padrão

A v1 foi desenhada para o aplicativo Ordo e devolve tudo o que uma tela do app precisa. Quem só quer as referências das leituras de amanhã recebia o dia inteiro, com coleta, salmo e leituras da manhã e da tarde. A v2 inverte isso.

include e fields

include escolhe o que é calculado (leituras, texto, coleta, explicação). fields recorta os atributos que voltam. São alavancas independentes.

Contexto explícito

book, bible, psalter, lectionary, reading_type e lang são parâmetros planos. book é obrigatório: nada de livro padrão silencioso.

Intervalos em uma chamada

/days aceita from e to, ou year. Um mês ou um ano inteiro saem de um único pedido.

Um formato só

Toda resposta vem em data, meta e, nas coleções, links. Todo erro vem em problem+json com um code estável.

A v1 continua publicada e sem prazo para sair. Use a v2 em integrações novas e migre uma rota de cada vez, se e quando fizer sentido.

02 / URL base

Uma chave, um cabeçalho

A v2 aceita apenas chave de API, enviada no cabeçalho X-API-Key. É a mesma chave da v1: o plano, os limites e o painel de uso valem para as duas versões.

URL base
https://api.caminhoanglicano.com.br/api/v2
Primeira chamada
curl -G "https://api.caminhoanglicano.com.br/api/v2/days/today" \
  -H "X-API-Key: $ESTEVAO_API_KEY" \
  --data-urlencode "book=loc_2015" \
  --data-urlencode "include=readings,collect"

Sem a chave, a resposta é 401 MISSING_API_KEY. Mantenha a chave no servidor: nunca a coloque em código que roda no navegador ou no app.

03 / Contexto

book é obrigatório

Na v1, quem esquece o livro recebe 200 com os dados de um livro que não escolheu. Na v2, todo recurso que depende do livro exige book. Os catálogos de livros e de Bíblias e /passages não exigem.

ParâmetroDescrição
bookobrigatórioCódigo do livro de oração, como loc_2015 ou loc_1662_en. Obrigatório em todo recurso cujo conteúdo depende do livro; não há livro padrão na v2. Consulte GET /api/v2/prayer-books.
bibleVersão bíblica dos textos, como nvi ou kjv. Padrão: a versão preferida do livro. Consulte GET /api/v2/bible-versions.
psalterSaltério, quando difere da versão bíblica.
lectionaryVariante do lecionário do livro, como revised_1922 no BCP 1662. As variantes aceitas estão em capabilities.lectionary.variants do livro.
reading_typeTipo de leitura do lecionário, como semicontinuous, quando o livro oferece mais de um.
langIdioma da resposta, como pt-BR ou en. Padrão: o idioma do livro. Nos catálogos, filtra por idioma.
Sem book400
{
  "type": "https://estevao.caminhoanglicano.com.br/docs/v2/errors#missing-prayer-book",
  "title": "Missing prayer book",
  "status": 400,
  "code": "MISSING_PRAYER_BOOK",
  "detail": "O parâmetro 'book' é obrigatório na v2. Consulte GET /api/v2/prayer-books.",
  "documentation_url": "https://estevao.caminhoanglicano.com.br/docs/v2",
  "request_id": "6f0c2c1e-…"
}

04 / include

include: o que é calculado

Sem include, /days devolve só o dia litúrgico: tempo, cor, semana e a celebração que prevaleceu. Cada include acrescenta um sub-recurso e tem um custo relativo, informado em X-Request-Cost.

includeO que acrescentaCusto
readingsReferências das leituras do dia, como lista de slots.+1
readings.textTexto completo de cada leitura, na versão de bible.+3
readings.morningLeituras da Oração da Manhã, em morning_readings.+1
readings.eveningLeituras da Oração da Tarde, em evening_readings.+1
readings.alternativesReferências alternativas, quando o lecionário oferece.+0
collectColeta(s) do dia: título, tipo e referência.+1
collect.textCorpo da coleta e prefácio.+0
celebrationsTodas as celebrações concorrentes do dia, não só a que prevaleceu.+0
explanationPor que esta cor, este tempo e estas leituras, com a proveniência de cada leitura.+4
  • — Um filho implica o pai: include=readings.text já calcula readings.
  • — Um include fora da lista do endpoint responde 400 INVALID_INCLUDE, com a lista aceita em allowed.
  • — Em /days/:date/readings e /collects/:date o recurso já é o do caminho; include só acrescenta text ou alternatives.

05 / fields

fields: o que é serializado

fields[tipo] recebe a lista de atributos a devolver para aquele tipo de recurso. Não altera o que é calculado; só o que volta no JSON.

GET
/api/v2/days?book=loc_2015&from=2026-03-01&to=2026-03-31
  &fields[day]=date,season,color,celebration

Tipos aceitos: dayreadingcollectcelebrationcelebration_typeannual_overviewseasonkey_datelectionary_cycleprayer_bookbible_version

06 / Formato

data, meta e links

Um envelope único, para escrever um parser só. As chaves são snake_case em inglês em todos os recursos; os valores, como nomes de tempos e cores, vêm no idioma do livro ou de lang.

GET /days/2026-03-25?book=loc_2015200 OK
{
  "data": {
    "date": "2026-03-25",
    "liturgical_year": 2026,
    "week_of_season": 5,
    "is_sunday": false,
    "is_holy_day": true,
    "day_of_week": "Quarta-feira",
    "season": { "slug": "lent", "name": "Quaresma" },
    "color": "branco",
    "description": ["Anunciação de Nosso Senhor Jesus Cristo à Bem-Aventurada Virgem Maria"],
    "fast": null,
    "celebration": {
      "id": 412,
      "name": "Anunciação de Nosso Senhor Jesus Cristo à Bem-Aventurada Virgem Maria",
      "type": "principal_feast",
      "color": "branco",
      "movable": false,
      "transferred": false
    }
  },
  "meta": {
    "prayer_book": "loc_2015",
    "language": "pt-BR",
    "bible": "nvi",
    "generated_at": "2026-03-25T09:00:00Z"
  }
}
  • — meta repete o contexto que resolveu a resposta: livro, idioma, versão bíblica e variante do lecionário, quando houver.
  • — As leituras são uma lista com slot (first_reading, psalm, second_reading, gospel…), e não quatro chaves fixas: livros diferentes têm números diferentes de leituras.
  • — Um dia sem leituras responde 200 com readings vazio. 404 fica para recurso que não existe.
  • — Coleções paginadas trazem links.self e links.next; meta traz count e total.

07 / Limites

Cache, custo e limites

X-API-Key

Cota por chamada

Cada requisição autenticada conta uma chamada na cota da chave, como na v1. O plano multiplica o limite diário e o de rajada por minuto.

X-Request-Cost

Custo relativo

Toda resposta informa o trabalho relativo no servidor: 1 por dia, mais o peso de cada include. É uma estimativa e não é debitada da cota.

ETag · If-None-Match

Respostas condicionais

Reenvie a ETag em If-None-Match e receba 304 sem corpo quando nada mudou. Cache-Control: uma hora para datas e catálogos, cinco minutos para hoje.

from · to · year

Intervalos

Até 366 dias por chamada em /days. Com readings.text ou explanation, até 31 dias. Acima disso, 400 RANGE_TOO_LARGE com max_days.

08 / Da v1 para a v2

Onde cada rota foi parar

Os dados vêm dos mesmos serviços litúrgicos da v1; o que muda é o formato. A v2 ainda não publica o Ofício Diário: para ele, continue na v1.

v1v2
GET /api/v1/calendar/todayGET /api/v2/days/today
GET /api/v1/calendar/:y/:m/:dGET /api/v2/days/2026-03-25
GET /api/v1/calendar/:y/:mGET /api/v2/days?from=2026-03-01&to=2026-03-31
GET /api/v1/calendar/:yGET /api/v2/days?year=2026
GET /api/v1/calendar/:y/overviewGET /api/v2/years/2026
GET /api/v1/calendar/:y/seasonsGET /api/v2/years/2026/seasons
GET /api/v1/calendar/:y/key_datesGET /api/v2/years/2026/key-dates
GET /api/v1/calendar/:y/celebrationsGET /api/v2/celebrations?year=2026
GET /api/v1/lectionary/:y/:m/:dGET /api/v2/days/2026-03-25/readings
GET /api/v1/lectionary/:y/:m/:d/all_servicesGET /api/v2/days/2026-03-25/readings?service=all
GET /api/v1/lectionary/cycle/:yGET /api/v2/years/2026/lectionary-cycle
GET /api/v1/liturgical_explanation/:y/:m/:dGET /api/v2/liturgical-explanations/2026-03-25
GET /api/v1/celebrations · /search · /date/:m/:dGET /api/v2/celebrations?q=&month=&day=
GET /api/v1/celebrations/typesGET /api/v2/celebrations/types
GET /api/v1/prayer_books/:code/preferencesGET /api/v2/prayer-books/loc_2015/preferences
GET /api/v1/bible_versionsGET /api/v2/bible-versions
—GET /api/v2/collects/2026-03-25
—GET /api/v2/passages?ref=João+3:16&bible=nvi
  • — O blob preferences vira parâmetros planos: book, bible, lectionary, psalter, reading_type e lang. O blob ainda é aceito para facilitar a migração.
  • — As datas ficam no formato ISO (2026-03-25), tanto no caminho quanto nas respostas.
  • — As rotas usam hífen (key-dates, prayer-books) em vez de sublinhado.