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, sermões, playlists, serviços de streaming, eventos, calendários curados, arquivos, galerias, traduções da Bíblia e consultas 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, mídia/streaming, planejamento de louvor e recursos bíblicos em todas as aplicações do ChurchApps.

Caminho base: /content

Páginas

Caminho base: /content/pages

MétodoCaminhoAuthPermissãoDescrição
GET/:churchId/tree?url=&id=PúblicoCarregar árvore completa da página (seções, elementos, blocos) por URL ou ID. Remove IDs internos quando buscado por URL
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 chamada)
POST/JWTContent.EditCriar ou atualizar páginas (lote)
DELETE/:idJWTContent.EditExcluir uma página

Exemplo: Carregar Árvore da 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 (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 (lote). Gerencia automaticamente colunas de linhas e slides de carrossel
DELETE/:idJWTContent.EditExcluir um elemento

Blocos

Caminho base: /content/blocks

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

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

Caminho base: /content/links

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

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

Estilos Globais

Caminho base: /content/globalStyles

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

MétodoCaminhoAuthPermissãoDescrição
GET/church/:churchIdPúblicoCarregar estilos globais de uma igreja (retorna padrões se nenhum definido)
GET/JWTCarregar 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 de um snapshot de histórico (exclui conteúdo atual e recria a partir do snapshot)
POST/restoreSnapshotJWTContent.EditRestaurar de um objeto de snapshot inline. Body: { pageId, blockId, snapshot }

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 wrapper do app de TV com fontes de sermões, lições e FreeShow
GET/public/tvFeed/:churchId/:sermonIdPúblicoObter um único sermão como playlist de feed de TV
GET/public/tvFeed/:churchIdPúblicoObter todas as playlists/sermões públicos como feed de TV
GET/public/:churchIdPúblicoListar 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=PúblicoConsultar metadados de sermão do YouTube ou Vimeo
GET/socialSuggestions?youtubeVideoId=JWTGerar sugestões de posts para redes sociais com IA a partir de legendas de sermões
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 (lote, suporta upload de thumbnail em base64)
DELETE/:idJWTStreamingServices.EditExcluir um sermão

Exemplo: Consultar 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 CRUD padrão (GET /:id, GET /, DELETE /:id da classe base com permissão StreamingServices.Edit para escrita).

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

Serviços de Streaming

Caminho base: /content/streamingServices

MétodoCaminhoAuthPermissãoDescrição
GET/:id/hostChatJWTChat.HostObter ID criptografado da sala de chat do host 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 (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 de linha do tempo para um grupo
GET/timeline?eventIds=JWTCarregar eventos de linha do tempo para os grupos do usuário atual
GET/subscribe?churchId=&groupId=&curatedCalendarId=PúblicoAssinar eventos como feed de calendário ICS
GET/group/:groupIdJWTObter eventos de um grupo (inclui datas de exceção)
GET/public/group/:churchId/:groupIdPúblicoObter eventos públicos de um grupo
GET/:idJWTObter um evento por ID
POST/JWTCriar ou atualizar eventos (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 eventos (lote)
DELETE/:idJWTContent.EditExcluir uma exceção de evento

Calendários Curados

Caminho base: /content/curatedCalendars

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

Eventos Curados

Caminho base: /content/curatedEvents

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

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*Upload de arquivos (base64). *Também permitido se o usuário for membro do grupo correspondente ao contentId
POST/postUrlJWTContent.Edit*Obter uma URL de upload pré-assinada do S3. *Também permitido para membros de grupo. Máximo de 100MB por item de conteúdo
DELETE/:idJWTContent.Edit*Excluir um arquivo e remover do armazenamento. *Também permitido para membros de grupo

Galeria

Caminho base: /content/gallery

MétodoCaminhoAuthPermissãoDescrição
GET/stock/:folderPúblicoListar 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 de Bíblia são públicos (sem autenticação necessária). Os dados são buscados de fontes externas e armazenados em cache localmente.

MétodoCaminhoAuthPermissãoDescrição
GET/PúblicoListar todas as traduções da Bíblia (busca da fonte se o cache estiver vazio)
GET/stats?startDate=&endDate=PúblicoObter estatísticas de consulta da Bíblia para um intervalo de datas
GET/availableTranslations/:sourcePúblicoListar traduções disponíveis de uma fonte (ex: api.bible)
GET/updateTranslationsPúblicoSincronizar todas as traduções de todas as fontes
GET/updateTranslations/:sourcePúblicoSincronizar traduções de uma fonte específica
GET/updateCopyrightsPúblicoAtualizar informações de copyright para traduções sem elas
GET/:translationKey/updateCopyrightPúblicoAtualizar copyright de uma tradução específica
GET/:translationKey/search?query=&limit=PúblicoBuscar versículos em uma tradução
GET/:translationKey/booksPúblicoObter livros de uma tradução (armazena em cache localmente)
GET/:translationKey/:bookKey/chaptersPúblicoObter capítulos de um livro (armazena em cache localmente)
GET/:translationKey/chapters/:chapterKey/versesPúblicoObter versículos de um capítulo (armazena em cache localmente)
GET/:translationKey/verses/:startVerseKey-:endVerseKeyPúblicoObter texto de versículos para um intervalo. Registra consultas. Algumas traduções ignoram o cache por licenciamento

Exemplo: Obter Texto de 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 (lote)
POST/importJWTImportar músicas do FreeShow (lote)
DELETE/:idJWTContent.EditExcluir uma música

Detalhes de Músicas

Caminho base: /content/songDetails

Os detalhes de músicas são globais (sem escopo de igreja). 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 detalhes de músicas da igreja
POST/createJWTCriar um detalhe de música a partir do ID do PraiseCharts (retorna existente se já criado). Busca automaticamente metadados do PraiseCharts e MusicBrainz
POST/JWTCriar ou atualizar detalhes de músicas (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úsicas (lote). Busca automaticamente dados do MusicBrainz se 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 arranjos de uma música
GET/songDetail/:songDetailIdJWTContent.EditObter arranjos de um detalhe de música
GET/JWTContent.EditListar todos os arranjos
POST/JWTContent.EditCriar ou atualizar arranjos (lote)
POST/freeShow/missingJWTEncontrar IDs do FreeShow que não existem na igreja. Body: { freeShowIds: string[] }
DELETE/:idJWTContent.EditExcluir um arranjo (também exclui tonalidades; exclui a música se não restarem arranjos)

Tonalidades de Arranjos

Caminho base: /content/arrangementKeys

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

Configurações

Caminho base: /content/settings

MétodoCaminhoAuthPermissãoDescrição
GET/myJWTObter configurações do usuário atual
GET/JWTSettings.EditObter todas as configurações da igreja
GET/public/:churchIdPúblicoObter configurações públicas de uma igreja (retornadas como pares chave-valor)
GET/imports?playlistId=&channelId=&type=JWTSettings.EditObter configurações de importação automática (IDs de canais YouTube/Vimeo)
POST/myJWTSalvar configurações do nível de usuário (suporta upload de imagem em base64)
POST/JWTSettings.EditSalvar configurações do nível da igreja (suporta upload de imagem em base64)
DELETE/my/:idJWTExcluir uma configuração de usuário

Pré-visualização

Caminho base: /content/preview

MétodoCaminhoAuthPermissãoDescrição
GET/data/:keyPúblicoCarregar dados de pré-visualização de streaming de uma igreja por 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/searchPúblicoBuscar fotos de banco de imagens do Pexels. Body: { 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 para uma música
GET/hasAccountJWTVerificar se o usuário tem uma conta 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=PúblicoObter URL de autorização OAuth para o PraiseCharts
GET/access?verifier=&token=&secret=JWTTrocar verificador OAuth por token de acesso e salvar nas configurações do usuário
GET/libraryJWTNavegar pela biblioteca do PraiseCharts do usuário

Suporte

Caminho base: /content/support

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

Páginas Relacionadas