Vai al contenuto principale

Endpoint Content

Il modulo Content gestisce le pagine del sito web, le sezioni, gli elementi, i blocchi, gli articoli del blog, i reindirizzamenti, i sermoni, le playlist, i servizi di streaming, gli eventi, i calendari curati, i file, le gallerie, le traduzioni bibliche e le ricerche di versetti, i canti, gli arrangiamenti, gli stili globali, le foto stock e le impostazioni. È il modulo più grande dell'API e alimenta il CMS, i media/streaming, la pianificazione del culto e le funzionalità bibliche in tutte le applicazioni di ChurchApps.

Percorso base: /content

Pages

Percorso base: /content/pages

MetodoPercorsoAuthPermessoDescrizione
GET/:churchId/tree?url=&id=PublicCarica l'albero completo della pagina (sezioni, elementi, blocchi) per URL o ID. Rimuove gli ID interni quando recuperato per URL. I recuperi basati su URL applicano pages.visibility — una pagina con accesso limitato restituisce { restricted: true, visibility } a meno che il JWT (opzionale) non soddisfi la condizione
GET/public/:churchIdPublicElenca le pagine pubbliche (url, title, metaDescription); solo visibility = everyone
GET/:idJWTOttiene una pagina per ID
GET/JWTElenca tutte le pagine della chiesa
POST/duplicate/:idJWTContent.EditDuplica una pagina con tutte le sezioni e gli elementi
POST/temp/aiJWTContent.EditSalva una pagina generata dall'IA (pagina, sezioni ed elementi in un'unica chiamata)
POST/JWTContent.EditCrea o aggiorna pagine (batch)
DELETE/:idJWTContent.EditElimina una pagina

Esempio: caricare l'albero di una pagina

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

Sections

Percorso base: /content/sections

MetodoPercorsoAuthPermessoDescrizione
GET/:idJWTOttiene una sezione per ID
POST/duplicate/:id?convertToBlock=JWTContent.EditDuplica una sezione o la converte in un blocco riutilizzabile
POST/JWTContent.EditCrea o aggiorna sezioni (batch). Aggiorna automaticamente l'ordine di ordinamento
DELETE/:idJWTContent.EditElimina una sezione (aggiorna automaticamente l'ordine di ordinamento)

Elements

Percorso base: /content/elements

MetodoPercorsoAuthPermessoDescrizione
GET/:idJWTOttiene un elemento per ID
POST/duplicate/:idJWTContent.EditDuplica un elemento con tutti i figli
POST/JWTContent.EditCrea o aggiorna elementi (batch). Gestisce automaticamente le colonne di riga e le slide del carosello
DELETE/:idJWTContent.EditElimina un elemento

Blocks

Percorso base: /content/blocks

Estende il CRUD standard (GET /:id, GET /, POST /, DELETE /:id dalla classe base con permesso Content.Edit per le scritture).

MetodoPercorsoAuthPermessoDescrizione
GET/:idJWTOttiene un blocco per ID
GET/JWTElenca tutti i blocchi
GET/:churchId/tree/:idPublicCarica l'albero completo del blocco con sezioni ed elementi
GET/blockType/:blockTypeJWTCarica i blocchi per tipo (ad es. footerBlock, elementBlock)
GET/public/footer/:churchIdPublicCarica l'albero del blocco footer per una chiesa
POST/JWTContent.EditCrea o aggiorna blocchi
DELETE/:idJWTContent.EditElimina un blocco

Percorso base: /content/links

Estende il CRUD standard (GET /:id, GET /, POST /, DELETE /:id dalla classe base con permesso Content.Edit per le scritture).

MetodoPercorsoAuthPermessoDescrizione
GET/:idJWTOttiene un link per ID
GET/JWTElenca tutti i link. Filtro opzionale ?category=. Ordina automaticamente dopo il salvataggio
GET/church/:churchId/filtered?category=JWTCarica i link filtrati per visibilità (everyone, visitors, members, staff, groups)
GET/church/:churchId?category=PublicCarica i link di una chiesa per categoria (pubblico)
POST/JWTContent.EditCrea o aggiorna link (batch). Ordina automaticamente per categoria
DELETE/:idJWTContent.EditElimina un link

Global Styles

Percorso base: /content/globalStyles

Estende il CRUD standard (POST /, DELETE /:id dalla classe base con permesso Content.Edit per le scritture).

MetodoPercorsoAuthPermessoDescrizione
GET/church/:churchIdPublicCarica gli stili globali di una chiesa (restituisce i valori predefiniti se non impostati)
GET/JWTCarica gli stili globali per la chiesa autenticata
POST/JWTContent.EditCrea o aggiorna gli stili globali
DELETE/:idJWTContent.EditElimina gli stili globali

Page History

Percorso base: /content/pageHistory

MetodoPercorsoAuthPermessoDescrizione
GET/page/:pageIdJWTContent.EditElenca le voci di cronologia per una pagina
GET/block/:blockIdJWTContent.EditElenca le voci di cronologia per un blocco
GET/:idJWTContent.EditOttiene una voce di cronologia per ID
POST/JWTContent.EditSalva uno snapshot di pagina/blocco. Ripulisce periodicamente le voci più vecchie di 30 giorni
POST/restore/:idJWTContent.EditRipristina una pagina/blocco da uno snapshot di cronologia (elimina il contenuto attuale e lo ricrea dallo snapshot)
POST/restoreSnapshotJWTContent.EditRipristina da un oggetto snapshot inline. Corpo: { pageId, blockId, snapshot }

Posts (Blog)

Percorso base: /content/posts

Gli articoli del blog sono righe autonome: title, slug (univoco per chiesa), excerpt, content (corpo in markdown), authorId, photoUrl, publishDate, category e tags. Un articolo è pubblicato una volta che publishDate è impostato ed è nel passato. Gli endpoint di lettura arricchiscono ogni articolo con authorName risolto da authorId. Vedi Architettura del Website Builder.

MetodoPercorsoAuthPermessoDescrizione
GET/public/:churchId?category=&tag=&page=&pageSize=PublicElenca gli articoli pubblicati, paginati (massimo 50 per pagina)
GET/public/:churchId/categoriesPublicCategorie distinte tra gli articoli pubblicati
GET/public/:churchId/slug/:slugPublicOttiene un articolo pubblicato per slug
GET/rss/:churchId?siteUrl=PublicFeed RSS 2.0 degli articoli pubblicati (link costruiti come {siteUrl}/blog/{slug})
GET/:idJWTOttiene un articolo per ID
GET/JWTElenca tutti gli articoli della chiesa
POST/JWTContent.EditCrea o aggiorna articoli (batch)
DELETE/:idJWTContent.EditElimina un articolo

Redirects

Percorso base: /content/redirects

Reindirizzamenti URL per chiesa (fromPathtoPath), limitati a 200 per chiesa. I percorsi sono normalizzati (minuscolo, slash iniziale, nessuno slash finale) e fromPath è univoco per chiesa. B1App risolve questi reindirizzamenti sui potenziali 404 ed emette un HTTP 308.

MetodoPercorsoAuthPermessoDescrizione
GET/public/:churchId?path=PublicRisolve un percorso (o elenca tutti i reindirizzamenti quando path è omesso)
GET/:idJWTOttiene un reindirizzamento per ID
GET/JWTElenca tutti i reindirizzamenti della chiesa
POST/JWTContent.EditCrea o aggiorna reindirizzamenti. Rifiuta fromPath = toPath e applica il limite di 200 righe
DELETE/:idJWTContent.EditElimina un reindirizzamento

Sermons

Percorso base: /content/sermons

MetodoPercorsoAuthPermessoDescrizione
GET/public/freeshowSampleJWTOttiene una struttura di esempio di playlist FreeShow
GET/public/tvWrapper/:churchIdJWTOttiene il wrapper dell'app TV con sorgenti sermoni, lezioni e FreeShow
GET/public/tvFeed/:churchId/:sermonIdPublicOttiene un singolo sermone come playlist per feed TV
GET/public/tvFeed/:churchIdPublicOttiene tutte le playlist/sermoni pubblici come feed TV
GET/public/:churchIdPublicElenca tutti i sermoni pubblici di una chiesa
GET/timeline?sermonIds=JWTCarica i dati della timeline per i sermoni
GET/lookup?videoType=&videoData=PublicCerca i metadati del sermone da YouTube o Vimeo
GET/socialSuggestions?youtubeVideoId=JWTGenera suggerimenti IA per post sui social media dai sottotitoli del sermone
GET/outline?url=&title=&author=JWTGenera uno schema di lezione IA da un URL
GET/youtubeImport/:channelIdJWTImporta video da un canale YouTube
GET/vimeoImport/:channelIdJWTImporta video da un canale Vimeo
GET/:idJWTOttiene un sermone per ID
GET/JWTElenca tutti i sermoni
POST/JWTStreamingServices.EditCrea o aggiorna sermoni (batch, supporta il caricamento di miniature in base64)
DELETE/:idJWTStreamingServices.EditElimina un sermone

Esempio: cercare un sermone su 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

Percorso base: /content/playlists

Estende il CRUD standard (GET /:id, GET /, DELETE /:id dalla classe base con permesso StreamingServices.Edit per le scritture).

MetodoPercorsoAuthPermessoDescrizione
GET/:idJWTOttiene una playlist per ID
GET/JWTElenca tutte le playlist
GET/public/:churchIdPublicElenca tutte le playlist pubbliche di una chiesa
POST/JWTStreamingServices.EditCrea o aggiorna playlist (batch, supporta il caricamento di miniature in base64)
DELETE/:idJWTStreamingServices.EditElimina una playlist

Streaming Services

Percorso base: /content/streamingServices

MetodoPercorsoAuthPermessoDescrizione
GET/:id/hostChatJWTChat.HostOttiene l'ID della stanza di chat host criptata per un servizio
GET/JWTElenca tutti i servizi di streaming. Ripulisce automaticamente i servizi non ricorrenti scaduti e fa avanzare quelli ricorrenti
POST/JWTStreamingServices.EditCrea o aggiorna servizi di streaming (batch)
DELETE/:idJWTStreamingServices.EditElimina un servizio di streaming (rimuove anche gli IP bloccati)

Events

Percorso base: /content/events

MetodoPercorsoAuthPermessoDescrizione
GET/timeline/group/:groupId?eventIds=JWTCarica gli eventi della timeline per un gruppo
GET/timeline?eventIds=JWTCarica gli eventi della timeline per i gruppi dell'utente corrente
GET/subscribe?churchId=&groupId=&curatedCalendarId=PublicIscriviti agli eventi come feed calendario ICS
GET/group/:groupIdJWTOttiene gli eventi per un gruppo (include le date di eccezione)
GET/public/group/:churchId/:groupIdPublicOttiene gli eventi pubblici per un gruppo
GET/:idJWTOttiene un evento per ID
POST/JWTCrea o aggiorna eventi (batch)
DELETE/:idJWTContent.EditElimina un evento

Event Exceptions

Percorso base: /content/eventExceptions

MetodoPercorsoAuthPermessoDescrizione
GET/:idJWTOttiene un'eccezione evento per ID
POST/JWTContent.EditCrea o aggiorna eccezioni evento (batch)
DELETE/:idJWTContent.EditElimina un'eccezione evento

Curated Calendars

Percorso base: /content/curatedCalendars

MetodoPercorsoAuthPermessoDescrizione
GET/:idJWTOttiene un calendario curato per ID
GET/JWTElenca tutti i calendari curati
POST/JWTContent.EditCrea o aggiorna calendari curati (batch)
DELETE/:idJWTContent.EditElimina un calendario curato

Curated Events

Percorso base: /content/curatedEvents

MetodoPercorsoAuthPermessoDescrizione
GET/calendar/:curatedCalendarId?withoutEventsJWTOttiene gli eventi curati per un calendario (include i dettagli degli eventi e le date di eccezione a meno che non sia impostato ?withoutEvents)
GET/public/calendar/:churchId/:curatedCalendarIdPublicOttiene gli eventi curati pubblici per un calendario
GET/:idJWTOttiene un evento curato per ID
GET/JWTElenca tutti gli eventi curati
POST/JWTContent.EditCrea o aggiorna eventi curati. Supporta un array eventIds per aggiungere eventi di gruppo specifici
DELETE/:idJWTContent.EditElimina un evento curato
DELETE/calendar/:curatedCalendarId/event/:eventIdJWTContent.EditRimuove un evento specifico da un calendario curato
DELETE/calendar/:curatedCalendarId/group/:groupIdJWTContent.EditRimuove tutti gli eventi di un gruppo da un calendario curato

Files

Percorso base: /content/files

MetodoPercorsoAuthPermessoDescrizione
GET/:contentType/:contentIdJWTOttiene i file per tipo di contenuto e ID contenuto
GET/JWTElenca tutti i file del sito web della chiesa
GET/:idJWTOttiene un file per ID
POST/JWTContent.Edit*Carica file (base64). *Consentito anche se l'utente è membro del gruppo corrispondente a contentId
POST/postUrlJWTContent.Edit*Ottiene un URL di caricamento S3 pre-firmato. *Consentito anche per i membri del gruppo. Massimo 100 MB per elemento di contenuto
DELETE/:idJWTContent.Edit*Elimina un file e lo rimuove dallo storage. *Consentito anche per i membri del gruppo

Percorso base: /content/gallery

MetodoPercorsoAuthPermessoDescrizione
GET/stock/:folderPublicElenca le foto stock in una cartella
GET/:folderJWTContent.EditElenca le immagini della galleria in una cartella
POST/requestUploadJWTContent.EditOttiene un URL di caricamento S3 pre-firmato per un'immagine della galleria
DELETE/:folder/:imageJWTContent.EditElimina un'immagine della galleria

Bibles

Percorso base: /content/bibles

Tutti gli endpoint biblici sono pubblici (non richiedono autenticazione). I dati vengono recuperati da fonti esterne e memorizzati nella cache localmente.

MetodoPercorsoAuthPermessoDescrizione
GET/PublicElenca tutte le traduzioni bibliche (recupera dalla fonte se la cache è vuota)
GET/stats?startDate=&endDate=PublicOttiene le statistiche di ricerca biblica per un intervallo di date
GET/availableTranslations/:sourcePublicElenca le traduzioni disponibili da una fonte (ad es. api.bible)
GET/updateTranslationsPublicSincronizza tutte le traduzioni da tutte le fonti
GET/updateTranslations/:sourcePublicSincronizza le traduzioni da una fonte specifica
GET/updateCopyrightsPublicAggiorna le informazioni sul copyright per le traduzioni che ne sono prive
GET/:translationKey/updateCopyrightPublicAggiorna il copyright per una traduzione specifica
GET/:translationKey/search?query=&limit=PublicCerca versetti in una traduzione
GET/:translationKey/booksPublicOttiene i libri di una traduzione (memorizza nella cache localmente)
GET/:translationKey/:bookKey/chaptersPublicOttiene i capitoli di un libro (memorizza nella cache localmente)
GET/:translationKey/chapters/:chapterKey/versesPublicOttiene i versetti di un capitolo (memorizza nella cache localmente)
GET/:translationKey/verses/:startVerseKey-:endVerseKeyPublicOttiene il testo dei versetti per un intervallo. Registra le ricerche. Alcune traduzioni bypassano la cache per motivi di licenza

Esempio: ottenere il testo di un versetto

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 }
]

Songs

Percorso base: /content/songs

MetodoPercorsoAuthPermessoDescrizione
GET/search?q=JWTCerca canti per query
GET/:idJWTOttiene un canto per ID
GET/JWTContent.EditElenca tutti i canti
POST/JWTContent.EditCrea o aggiorna canti (batch)
POST/importJWTImporta canti da FreeShow (batch)
DELETE/:idJWTContent.EditElimina un canto

Song Details

Percorso base: /content/songDetails

I dettagli dei canti sono globali (non ambitati per chiesa). Rappresentano metadati canonici dei canti condivisi tra le chiese.

MetodoPercorsoAuthPermessoDescrizione
GET/:idJWTOttiene un dettaglio canto per ID (globale)
GET/JWTElenca i dettagli dei canti per la chiesa
POST/createJWTCrea un dettaglio canto da un ID PraiseCharts (restituisce quello esistente se già creato). Recupera automaticamente i metadati da PraiseCharts e MusicBrainz
POST/JWTCrea o aggiorna dettagli dei canti (batch)

Percorso base: /content/songDetailLinks

MetodoPercorsoAuthPermessoDescrizione
GET/:idJWTOttiene un link di dettaglio canto per ID
GET/songDetail/:songDetailIdJWTOttiene tutti i link per un dettaglio canto
POST/JWTCrea o aggiorna link di dettaglio canto (batch). Recupera automaticamente i dati MusicBrainz se collegato
DELETE/:idJWTElimina un link di dettaglio canto

Arrangements

Percorso base: /content/arrangements

MetodoPercorsoAuthPermessoDescrizione
GET/:idJWTOttiene un arrangiamento per ID
GET/song/:songIdJWTContent.EditOttiene gli arrangiamenti per un canto
GET/songDetail/:songDetailIdJWTContent.EditOttiene gli arrangiamenti per un dettaglio canto
GET/JWTContent.EditElenca tutti gli arrangiamenti
POST/JWTContent.EditCrea o aggiorna arrangiamenti (batch)
POST/freeShow/missingJWTTrova gli ID FreeShow che non esistono nella chiesa. Corpo: { freeShowIds: string[] }
DELETE/:idJWTContent.EditElimina un arrangiamento (elimina anche le tonalità; elimina il canto se non restano arrangiamenti)

Arrangement Keys

Percorso base: /content/arrangementKeys

MetodoPercorsoAuthPermessoDescrizione
GET/presenter/:churchId/:idPublicOttiene la tonalità dell'arrangiamento con i dati completi del canto per la vista presentatore
GET/:idJWTOttiene una tonalità di arrangiamento per ID
GET/arrangement/:arrangementIdJWTContent.EditOttiene le tonalità per un arrangiamento
GET/JWTContent.EditElenca tutte le tonalità di arrangiamento
POST/JWTContent.EditCrea o aggiorna tonalità di arrangiamento (batch)
DELETE/:idJWTContent.EditElimina una tonalità di arrangiamento

Settings

Percorso base: /content/settings

MetodoPercorsoAuthPermessoDescrizione
GET/myJWTOttiene le impostazioni dell'utente corrente
GET/JWTSettings.EditOttiene tutte le impostazioni della chiesa
GET/public/:churchIdPublicOttiene le impostazioni pubbliche di una chiesa (restituite come coppie chiave-valore)
POST/myJWTSalva le impostazioni a livello utente (supporta il caricamento di immagini in base64)
POST/JWTSettings.EditSalva le impostazioni a livello chiesa (supporta il caricamento di immagini in base64)
DELETE/my/:idJWTElimina un'impostazione utente

Preview

Percorso base: /content/preview

MetodoPercorsoAuthPermessoDescrizione
GET/data/:keyPublicCarica i dati di anteprima streaming per una chiesa in base alla chiave del sottodominio (schede, link, servizi, sermoni)

Percorso base: /content/stock

MetodoPercorsoAuthPermessoDescrizione
POST/searchPublicCerca foto stock su Pexels. Corpo: { term: "church" }

PraiseCharts

Percorso base: /content/praiseCharts

Integrazione con PraiseCharts per la scoperta di canti di lode e il download di spartiti.

MetodoPercorsoAuthPermessoDescrizione
GET/raw/:idJWTOttiene i dati grezzi PraiseCharts per un canto
GET/hasAccountJWTVerifica se l'utente ha un account PraiseCharts collegato
GET/search?q=JWTCerca nel catalogo PraiseCharts
GET/products/:id?keys=JWTOttiene i prodotti per un canto (dalla libreria se autenticato, altrimenti dal catalogo)
GET/arrangement/raw/:id?keys=JWTOttiene i dati grezzi dell'arrangiamento dalla libreria
GET/download?skus=&keys=&file_name=JWTScarica un file da PraiseCharts (PDF o ZIP). Restituisce { redirectUrl }
GET/authUrl?returnUrl=PublicOttiene l'URL di autorizzazione OAuth per PraiseCharts
GET/access?verifier=&token=&secret=JWTScambia il verificatore OAuth per un token di accesso e lo salva nelle impostazioni utente
GET/libraryJWTSfoglia la libreria PraiseCharts dell'utente

Support

Percorso base: /content/support

MetodoPercorsoAuthPermessoDescrizione
POST/createAudioPublicConverte SSML in audio MP3 usando AWS Polly. Corpo: { ssml: "<speak>...</speak>" }

Pagine correlate