Pular para o conteúdo principal

Endpoints de Conteúdo

O módulo de Conteúdo gerencia páginas de site, seções, elementos, blocos, posts de blog, redirecionamentos, sermões, playlists, serviços de streaming, eventos, calendários selecionados, arquivos, galerias, traduções da Bíblia e buscas de versículos, músicas, arranjos, estilos globais, fotos de banco de imagens e configurações. É o maior módulo da API e alimenta o CMS, os recursos de mídia/streaming, o planejamento de louvor e os recursos da Bíblia em todos os aplicativos ChurchApps.

Caminho base: /content

Páginas

Caminho base: /content/pages

MétodoCaminhoAuthPermissãoDescrição
GET/:churchId/tree?url=&id=PublicCarregar a árvore completa da página (seções, elementos, blocos) por URL ou ID. Remove IDs internos quando obtida por URL. Buscas baseadas em URL aplicam pages.visibility — uma página restrita retorna { restricted: true, visibility } a menos que o JWT (opcional) satisfaça a restrição
GET/public/:churchIdPublicListar páginas públicas (url, title, metaDescription); apenas visibility = everyone
GET/:idJWTObter uma página por ID
GET/JWTListar todas as páginas da igreja
POST/duplicate/:idJWTContent.EditDuplicar uma página com todas as seções e elementos
POST/temp/aiJWTContent.EditSalvar uma página gerada por IA (página, seções e elementos em uma única chamada)
POST/JWTContent.EditCriar ou atualizar páginas (em lote)
DELETE/:idJWTContent.EditExcluir uma página

Exemplo: Carregar a Árvore de uma Página

GET /content/pages/abc-church-id/tree?url=/about
{
"name": "About",
"url": "/about",
"sections": [
{
"background": "#FFFFFF",
"textColor": "dark",
"elements": [
{ "elementType": "textWithPhoto", "answers": { "text": "Welcome" } }
]
}
]
}

Seções

Caminho base: /content/sections

MétodoCaminhoAuthPermissãoDescrição
GET/:idJWTObter uma seção por ID
POST/duplicate/:id?convertToBlock=JWTContent.EditDuplicar uma seção ou convertê-la em um bloco reutilizável
POST/JWTContent.EditCriar ou atualizar seções (em lote). Atualiza automaticamente a ordem de classificação
DELETE/:idJWTContent.EditExcluir uma seção (atualiza automaticamente a ordem de classificação)

Elementos

Caminho base: /content/elements

MétodoCaminhoAuthPermissãoDescrição
GET/:idJWTObter um elemento por ID
POST/duplicate/:idJWTContent.EditDuplicar um elemento com todos os filhos
POST/JWTContent.EditCriar ou atualizar elementos (em lote). Gerencia automaticamente colunas de linha e slides de carrossel
DELETE/:idJWTContent.EditExcluir um elemento

Blocos

Caminho base: /content/blocks

Estende o CRUD padrão (GET /:id, GET /, POST /, DELETE /:id da classe base, com permissão Content.Edit para escritas).

MétodoCaminhoAuthPermissãoDescrição
GET/:idJWTObter um bloco por ID
GET/JWTListar todos os blocos
GET/:churchId/tree/:idPublicCarregar a árvore completa de um bloco com seções e elementos
GET/blockType/:blockTypeJWTCarregar blocos por tipo (por exemplo, footerBlock, elementBlock)
GET/public/footer/:churchIdPublicCarregar a árvore do bloco de rodapé de uma igreja
POST/JWTContent.EditCriar ou atualizar blocos
DELETE/:idJWTContent.EditExcluir um bloco

Caminho base: /content/links

Estende o CRUD padrão (GET /:id, GET /, POST /, DELETE /:id da classe base, com permissão Content.Edit para escritas).

MétodoCaminhoAuthPermissãoDescrição
GET/:idJWTObter um link por ID
GET/JWTListar todos os links. Filtro opcional ?category=. Classifica automaticamente após salvar
GET/church/:churchId/filtered?category=JWTCarregar links filtrados por visibilidade (todos, visitantes, membros, equipe, grupos)
GET/church/:churchId?category=PublicCarregar links de uma igreja por categoria (público)
POST/JWTContent.EditCriar ou atualizar links (em lote). Classifica automaticamente por categoria
DELETE/:idJWTContent.EditExcluir um link

Estilos Globais

Caminho base: /content/globalStyles

Estende o CRUD padrão (POST /, DELETE /:id da classe base, com permissão Content.Edit para escritas).

MétodoCaminhoAuthPermissãoDescrição
GET/church/:churchIdPublicCarregar os estilos globais de uma igreja (retorna padrões se nenhum estiver definido)
GET/JWTCarregar os estilos globais da igreja autenticada
POST/JWTContent.EditCriar ou atualizar estilos globais
DELETE/:idJWTContent.EditExcluir estilos globais

Histórico de Páginas

Caminho base: /content/pageHistory

MétodoCaminhoAuthPermissãoDescrição
GET/page/:pageIdJWTContent.EditListar entradas de histórico de uma página
GET/block/:blockIdJWTContent.EditListar entradas de histórico de um bloco
GET/:idJWTContent.EditObter uma entrada de histórico por ID
POST/JWTContent.EditSalvar um snapshot de página/bloco. Limpa periodicamente entradas com mais de 30 dias
POST/restore/:idJWTContent.EditRestaurar uma página/bloco a partir de um snapshot do histórico (exclui o conteúdo atual e recria a partir do snapshot)
POST/restoreSnapshotJWTContent.EditRestaurar a partir de um objeto de snapshot inline. Corpo: { pageId, blockId, snapshot }

Posts (Blog)

Caminho base: /content/posts

Os posts de blog são registros independentes: title, slug (único por igreja), excerpt, content (corpo em markdown), authorId, photoUrl, publishDate, category e tags. Um post é publicado assim que publishDate é definido e está no passado. Os endpoints de leitura enriquecem cada post com authorName, resolvido a partir de authorId. Veja Arquitetura do Construtor de Sites.

MétodoCaminhoAuthPermissãoDescrição
GET/public/:churchId?category=&tag=&page=&pageSize=PublicListar posts publicados, paginados (máx. 50 por página)
GET/public/:churchId/categoriesPublicCategorias distintas entre os posts publicados
GET/public/:churchId/slug/:slugPublicObter um post publicado por slug
GET/rss/:churchId?siteUrl=PublicFeed RSS 2.0 dos posts publicados (links construídos como {siteUrl}/blog/{slug})
GET/:idJWTObter um post por ID
GET/JWTListar todos os posts da igreja
POST/JWTContent.EditCriar ou atualizar posts (em lote)
DELETE/:idJWTContent.EditExcluir um post

Redirecionamentos

Caminho base: /content/redirects

Redirecionamentos de URL por igreja (fromPathtoPath), limitados a 200 por igreja. Os caminhos são normalizados (minúsculas, barra inicial, sem barra final) e fromPath é único por igreja. O B1App resolve esses redirecionamentos em possíveis 404s e emite um HTTP 308.

MétodoCaminhoAuthPermissãoDescrição
GET/public/:churchId?path=PublicResolver um caminho (ou listar todos os redirecionamentos quando path for omitido)
GET/:idJWTObter um redirecionamento por ID
GET/JWTListar todos os redirecionamentos da igreja
POST/JWTContent.EditCriar ou atualizar redirecionamentos. Rejeita fromPath = toPath e aplica o limite de 200 linhas
DELETE/:idJWTContent.EditExcluir um redirecionamento

Sermões

Caminho base: /content/sermons

MétodoCaminhoAuthPermissãoDescrição
GET/public/freeshowSampleJWTObter uma estrutura de playlist de exemplo do FreeShow
GET/public/tvWrapper/:churchIdJWTObter o wrapper do app de TV com fontes de sermões, lições e FreeShow
GET/public/tvFeed/:churchId/:sermonIdPublicObter um único sermão como playlist de feed de TV
GET/public/tvFeed/:churchIdPublicObter todas as playlists/sermões públicos como feed de TV
GET/public/:churchIdPublicListar todos os sermões públicos de uma igreja
GET/timeline?sermonIds=JWTCarregar dados de linha do tempo para sermões
GET/lookup?videoType=&videoData=PublicBuscar metadados de sermão no YouTube ou no Vimeo
GET/socialSuggestions?youtubeVideoId=JWTGerar sugestões de posts para redes sociais com IA a partir das legendas do sermão
GET/outline?url=&title=&author=JWTGerar esboço de lição com IA a partir de uma URL
GET/youtubeImport/:channelIdJWTImportar vídeos de um canal do YouTube
GET/vimeoImport/:channelIdJWTImportar vídeos de um canal do Vimeo
GET/:idJWTObter um sermão por ID
GET/JWTListar todos os sermões
POST/JWTStreamingServices.EditCriar ou atualizar sermões (em lote, com suporte a upload de miniatura em base64)
DELETE/:idJWTStreamingServices.EditExcluir um sermão

Exemplo: Buscar um Sermão do YouTube

GET /content/sermons/lookup?videoType=youtube&videoData=dQw4w9WgXcQ
{
"title": "Sunday Service - Faith in Action",
"description": "Pastor John speaks about faith...",
"thumbnail": "https://img.youtube.com/vi/dQw4w9WgXcQ/default.jpg",
"duration": 2400,
"publishDate": "2025-01-15T10:00:00Z"
}

Playlists

Caminho base: /content/playlists

Estende o CRUD padrão (GET /:id, GET /, DELETE /:id da classe base, com permissão StreamingServices.Edit para escritas).

MétodoCaminhoAuthPermissãoDescrição
GET/:idJWTObter uma playlist por ID
GET/JWTListar todas as playlists
GET/public/:churchIdPublicListar todas as playlists públicas de uma igreja
POST/JWTStreamingServices.EditCriar ou atualizar playlists (em lote, com suporte a upload de miniatura em base64)
DELETE/:idJWTStreamingServices.EditExcluir uma playlist

Serviços de Streaming

Caminho base: /content/streamingServices

MétodoCaminhoAuthPermissãoDescrição
GET/:id/hostChatJWTChat.HostObter o ID de sala de chat do apresentador criptografado para um serviço
GET/JWTListar todos os serviços de streaming. Limpa automaticamente serviços não recorrentes expirados e avança os recorrentes
POST/JWTStreamingServices.EditCriar ou atualizar serviços de streaming (em lote)
DELETE/:idJWTStreamingServices.EditExcluir um serviço de streaming (também limpa IPs bloqueados)

Eventos

Caminho base: /content/events

MétodoCaminhoAuthPermissãoDescrição
GET/timeline/group/:groupId?eventIds=JWTCarregar eventos da linha do tempo de um grupo
GET/timeline?eventIds=JWTCarregar eventos da linha do tempo dos grupos do usuário atual
GET/subscribe?churchId=&groupId=&curatedCalendarId=PublicInscrever-se em eventos como feed de calendário ICS
GET/group/:groupIdJWTObter eventos de um grupo (inclui datas de exceção)
GET/public/group/:churchId/:groupIdPublicObter eventos públicos de um grupo
GET/:idJWTObter um evento por ID
POST/JWTCriar ou atualizar eventos (em lote)
DELETE/:idJWTContent.EditExcluir um evento

Exceções de Eventos

Caminho base: /content/eventExceptions

MétodoCaminhoAuthPermissãoDescrição
GET/:idJWTObter uma exceção de evento por ID
POST/JWTContent.EditCriar ou atualizar exceções de evento (em lote)
DELETE/:idJWTContent.EditExcluir uma exceção de evento

Calendários Selecionados

Caminho base: /content/curatedCalendars

MétodoCaminhoAuthPermissãoDescrição
GET/:idJWTObter um calendário selecionado por ID
GET/JWTListar todos os calendários selecionados
POST/JWTContent.EditCriar ou atualizar calendários selecionados (em lote)
DELETE/:idJWTContent.EditExcluir um calendário selecionado

Eventos Selecionados

Caminho base: /content/curatedEvents

MétodoCaminhoAuthPermissãoDescrição
GET/calendar/:curatedCalendarId?withoutEventsJWTObter eventos selecionados de um calendário (inclui detalhes do evento e datas de exceção, a menos que ?withoutEvents esteja definido)
GET/public/calendar/:churchId/:curatedCalendarIdPublicObter eventos selecionados públicos de um calendário
GET/:idJWTObter um evento selecionado por ID
GET/JWTListar todos os eventos selecionados
POST/JWTContent.EditCriar ou atualizar eventos selecionados. Suporta um array eventIds para adicionar eventos de grupo específicos
DELETE/:idJWTContent.EditExcluir um evento selecionado
DELETE/calendar/:curatedCalendarId/event/:eventIdJWTContent.EditRemover um evento específico de um calendário selecionado
DELETE/calendar/:curatedCalendarId/group/:groupIdJWTContent.EditRemover todos os eventos de um grupo de um calendário selecionado

Arquivos

Caminho base: /content/files

MétodoCaminhoAuthPermissãoDescrição
GET/:contentType/:contentIdJWTObter arquivos por tipo de conteúdo e ID de conteúdo
GET/JWTListar todos os arquivos do site da igreja
GET/:idJWTObter um arquivo por ID
POST/JWTContent.Edit*Enviar arquivos (base64). *Também permitido se o usuário for membro do grupo correspondente a contentId
POST/postUrlJWTContent.Edit*Obter uma URL de upload pré-assinada do S3. *Também permitido para membros do grupo. Máximo de 100MB por item de conteúdo
DELETE/:idJWTContent.Edit*Excluir um arquivo e removê-lo do armazenamento. *Também permitido para membros do grupo

Galeria

Caminho base: /content/gallery

MétodoCaminhoAuthPermissãoDescrição
GET/stock/:folderPublicListar fotos de banco de imagens em uma pasta
GET/:folderJWTContent.EditListar imagens da galeria em uma pasta
POST/requestUploadJWTContent.EditObter uma URL de upload pré-assinada do S3 para uma imagem da galeria
DELETE/:folder/:imageJWTContent.EditExcluir uma imagem da galeria

Bíblias

Caminho base: /content/bibles

Todos os endpoints da Bíblia são públicos (nenhuma autenticação necessária). Os dados são obtidos de fontes externas e armazenados em cache localmente.

MétodoCaminhoAuthPermissãoDescrição
GET/PublicListar todas as traduções da Bíblia (busca na fonte se o cache estiver vazio)
GET/stats?startDate=&endDate=PublicObter estatísticas de busca da Bíblia para um intervalo de datas
GET/availableTranslations/:sourcePublicListar traduções disponíveis de uma fonte (por exemplo, api.bible)
GET/updateTranslationsPublicSincronizar todas as traduções de todas as fontes
GET/updateTranslations/:sourcePublicSincronizar traduções de uma fonte específica
GET/updateCopyrightsPublicAtualizar informações de direitos autorais para traduções que não os têm
GET/:translationKey/updateCopyrightPublicAtualizar os direitos autorais de uma tradução específica
GET/:translationKey/search?query=&limit=PublicBuscar versículos em uma tradução
GET/:translationKey/booksPublicObter os livros de uma tradução (armazena em cache localmente)
GET/:translationKey/:bookKey/chaptersPublicObter os capítulos de um livro (armazena em cache localmente)
GET/:translationKey/chapters/:chapterKey/versesPublicObter os versículos de um capítulo (armazena em cache localmente)
GET/:translationKey/verses/:startVerseKey-:endVerseKeyPublicObter o texto dos versículos de um intervalo. Registra as buscas. Algumas traduções ignoram o cache por questões de licenciamento

Exemplo: Obter o Texto de um Versículo

GET /content/bibles/de4e12af7f28f599-02/verses/GEN.1.1-GEN.1.3
[
{ "verseKey": "GEN.1.1", "content": "In the beginning God created the heavens and the earth.", "bookKey": "GEN", "chapterNumber": 1, "verseNumber": 1 },
{ "verseKey": "GEN.1.2", "content": "Now the earth was formless and empty...", "bookKey": "GEN", "chapterNumber": 1, "verseNumber": 2 },
{ "verseKey": "GEN.1.3", "content": "And God said, \"Let there be light,\" and there was light.", "bookKey": "GEN", "chapterNumber": 1, "verseNumber": 3 }
]

Músicas

Caminho base: /content/songs

MétodoCaminhoAuthPermissãoDescrição
GET/search?q=JWTBuscar músicas por consulta
GET/:idJWTObter uma música por ID
GET/JWTContent.EditListar todas as músicas
POST/JWTContent.EditCriar ou atualizar músicas (em lote)
POST/importJWTImportar músicas do FreeShow (em lote)
DELETE/:idJWTContent.EditExcluir uma música

Detalhes de Música

Caminho base: /content/songDetails

Os detalhes de música são globais (não vinculados a uma igreja específica). Representam metadados canônicos de músicas compartilhados entre igrejas.

MétodoCaminhoAuthPermissãoDescrição
GET/:idJWTObter um detalhe de música por ID (global)
GET/JWTListar os detalhes de música da igreja
POST/createJWTCriar um detalhe de música a partir de um ID do PraiseCharts (retorna o existente se já tiver sido criado). Busca automaticamente metadados no PraiseCharts e no MusicBrainz
POST/JWTCriar ou atualizar detalhes de música (em lote)

Caminho base: /content/songDetailLinks

MétodoCaminhoAuthPermissãoDescrição
GET/:idJWTObter um link de detalhe de música por ID
GET/songDetail/:songDetailIdJWTObter todos os links de um detalhe de música
POST/JWTCriar ou atualizar links de detalhes de música (em lote). Busca automaticamente dados do MusicBrainz se estiver vinculado
DELETE/:idJWTExcluir um link de detalhe de música

Arranjos

Caminho base: /content/arrangements

MétodoCaminhoAuthPermissãoDescrição
GET/:idJWTObter um arranjo por ID
GET/song/:songIdJWTContent.EditObter os arranjos de uma música
GET/songDetail/:songDetailIdJWTContent.EditObter os arranjos de um detalhe de música
GET/JWTContent.EditListar todos os arranjos
POST/JWTContent.EditCriar ou atualizar arranjos (em lote)
POST/freeShow/missingJWTEncontrar IDs do FreeShow que não existem na igreja. Corpo: { freeShowIds: string[] }
DELETE/:idJWTContent.EditExcluir um arranjo (também exclui as tonalidades; exclui a música se não restar nenhum arranjo)

Tonalidades de Arranjo

Caminho base: /content/arrangementKeys

MétodoCaminhoAuthPermissãoDescrição
GET/presenter/:churchId/:idPublicObter uma tonalidade de arranjo com os dados completos da música para a visualização de apresentador
GET/:idJWTObter uma tonalidade de arranjo por ID
GET/arrangement/:arrangementIdJWTContent.EditObter as tonalidades de um arranjo
GET/JWTContent.EditListar todas as tonalidades de arranjo
POST/JWTContent.EditCriar ou atualizar tonalidades de arranjo (em lote)
DELETE/:idJWTContent.EditExcluir uma tonalidade de arranjo

Configurações

Caminho base: /content/settings

MétodoCaminhoAuthPermissãoDescrição
GET/myJWTObter as configurações do usuário atual
GET/JWTSettings.EditObter todas as configurações da igreja
GET/public/:churchIdPublicObter as configurações públicas de uma igreja (retornadas como pares chave-valor)
POST/myJWTSalvar configurações no nível do usuário (com suporte a upload de imagem em base64)
POST/JWTSettings.EditSalvar configurações no nível da igreja (com suporte a upload de imagem em base64)
DELETE/my/:idJWTExcluir uma configuração do usuário

Prévia

Caminho base: /content/preview

MétodoCaminhoAuthPermissãoDescrição
GET/data/:keyPublicCarregar dados de prévia de streaming de uma igreja pela chave de subdomínio (abas, links, serviços, sermões)

Galeria (Fotos de Banco de Imagens)

Caminho base: /content/stock

MétodoCaminhoAuthPermissãoDescrição
POST/searchPublicBuscar fotos de banco de imagens no Pexels. Corpo: { term: "church" }

PraiseCharts

Caminho base: /content/praiseCharts

Integração com o PraiseCharts para descoberta de músicas de louvor e download de partituras.

MétodoCaminhoAuthPermissãoDescrição
GET/raw/:idJWTObter dados brutos do PraiseCharts de uma música
GET/hasAccountJWTVerificar se o usuário tem uma conta do PraiseCharts vinculada
GET/search?q=JWTBuscar no catálogo do PraiseCharts
GET/products/:id?keys=JWTObter produtos de uma música (da biblioteca, se autenticado; caso contrário, do catálogo)
GET/arrangement/raw/:id?keys=JWTObter dados brutos de arranjo da biblioteca
GET/download?skus=&keys=&file_name=JWTBaixar um arquivo do PraiseCharts (PDF ou ZIP). Retorna { redirectUrl }
GET/authUrl?returnUrl=PublicObter a URL de autorização OAuth do PraiseCharts
GET/access?verifier=&token=&secret=JWTTrocar o verificador OAuth por um token de acesso e salvá-lo nas configurações do usuário
GET/libraryJWTNavegar na biblioteca do PraiseCharts do usuário

Suporte

Caminho base: /content/support

MétodoCaminhoAuthPermissãoDescrição
POST/createAudioPublicConverter SSML em áudio MP3 usando o AWS Polly. Corpo: { ssml: "<speak>...</speak>" }

Páginas Relacionadas