Lumipat sa pangunahing nilalaman

Content Endpoints

Pinamamahalaan ng Content module ang mga pahina ng website, section, element, block, blog post, redirect, sermon, playlist, streaming service, kaganapan, curated calendar, file, gallery, Bible translation at verse lookup, kanta, arrangement, global style, stock photo, at setting. Ito ang pinakamalaking module sa API at nagpapatakbo sa CMS, media/streaming, worship planning, at mga Bible feature sa lahat ng application ng ChurchApps.

Base path: /content

Pages

Base path: /content/pages

MethodPathAuthPermissionDescription
GET/:churchId/tree?url=&id=PublicI-load ang buong page tree (mga section, element, block) ayon sa URL o ID. Inaalis ang mga internal ID kapag kinuha ayon sa URL. Ang mga fetch na batay sa URL ay nagpapatupad ng pages.visibility — nagbabalik ang isang gated page ng { restricted: true, visibility } maliban kung natutugunan ng (opsyonal na) JWT ang gate
GET/public/:churchIdPublicIlista ang mga public na pahina (url, title, metaDescription); visibility = everyone lamang
GET/:idJWTKunin ang isang pahina ayon sa ID
GET/JWTIlista ang lahat ng pahina para sa simbahan
POST/duplicate/:idJWTContent.EditKopyahin ang isang pahina kasama ang lahat ng mga section at element
POST/temp/aiJWTContent.EditI-save ang isang AI-generated na pahina (pahina, mga section, at mga element sa isang tawag)
POST/JWTContent.EditLumikha o mag-update ng mga pahina (batch)
DELETE/:idJWTContent.EditTanggalin ang isang pahina

Halimbawa: I-load ang Page Tree

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

Base path: /content/sections

MethodPathAuthPermissionDescription
GET/:idJWTKunin ang isang section ayon sa ID
POST/duplicate/:id?convertToBlock=JWTContent.EditKopyahin ang isang section o i-convert ito sa isang reusable block
POST/JWTContent.EditLumikha o mag-update ng mga section (batch). Awtomatikong ina-update ang sort order
DELETE/:idJWTContent.EditTanggalin ang isang section (awtomatikong ina-update ang sort order)

Elements

Base path: /content/elements

MethodPathAuthPermissionDescription
GET/:idJWTKunin ang isang element ayon sa ID
POST/duplicate/:idJWTContent.EditKopyahin ang isang element kasama ang lahat ng mga anak nito
POST/JWTContent.EditLumikha o mag-update ng mga element (batch). Awtomatikong pinamamahalaan ang mga row column at carousel slide
DELETE/:idJWTContent.EditTanggalin ang isang element

Blocks

Base path: /content/blocks

Nag-e-extend ng standard na CRUD (GET /:id, GET /, POST /, DELETE /:id mula sa base class na may Content.Edit permission para sa pagsusulat).

MethodPathAuthPermissionDescription
GET/:idJWTKunin ang isang block ayon sa ID
GET/JWTIlista ang lahat ng block
GET/:churchId/tree/:idPublicI-load ang buong block tree kasama ang mga section at element
GET/blockType/:blockTypeJWTI-load ang mga block ayon sa uri (hal. footerBlock, elementBlock)
GET/public/footer/:churchIdPublicI-load ang footer block tree para sa isang simbahan
POST/JWTContent.EditLumikha o mag-update ng mga block
DELETE/:idJWTContent.EditTanggalin ang isang block

Base path: /content/links

Nag-e-extend ng standard na CRUD (GET /:id, GET /, POST /, DELETE /:id mula sa base class na may Content.Edit permission para sa pagsusulat).

MethodPathAuthPermissionDescription
GET/:idJWTKunin ang isang link ayon sa ID
GET/JWTIlista ang lahat ng link. Opsyonal na ?category= filter. Awtomatikong nag-a-sort pagkatapos i-save
GET/church/:churchId/filtered?category=JWTI-load ang mga link na na-filter ayon sa visibility (everyone, visitors, members, staff, groups)
GET/church/:churchId?category=PublicI-load ang mga link para sa isang simbahan ayon sa kategorya (public)
POST/JWTContent.EditLumikha o mag-update ng mga link (batch). Awtomatikong nag-a-sort ayon sa kategorya
DELETE/:idJWTContent.EditTanggalin ang isang link

Global Styles

Base path: /content/globalStyles

Nag-e-extend ng standard na CRUD (POST /, DELETE /:id mula sa base class na may Content.Edit permission para sa pagsusulat).

MethodPathAuthPermissionDescription
GET/church/:churchIdPublicI-load ang mga global style para sa isang simbahan (nagbabalik ng mga default kung wala pang naka-set)
GET/JWTI-load ang mga global style para sa naka-authenticate na simbahan
POST/JWTContent.EditLumikha o mag-update ng mga global style
DELETE/:idJWTContent.EditTanggalin ang mga global style

Page History

Base path: /content/pageHistory

MethodPathAuthPermissionDescription
GET/page/:pageIdJWTContent.EditIlista ang mga history entry para sa isang pahina
GET/block/:blockIdJWTContent.EditIlista ang mga history entry para sa isang block
GET/:idJWTContent.EditKunin ang isang history entry ayon sa ID
POST/JWTContent.EditI-save ang isang page/block snapshot. Pana-panahong nililinis ang mga entry na mas matanda sa 30 araw
POST/restore/:idJWTContent.EditIbalik ang isang page/block mula sa isang history snapshot (tinatanggal ang kasalukuyang content at nire-recreate mula sa snapshot)
POST/restoreSnapshotJWTContent.EditIbalik mula sa isang inline snapshot object. Body: { pageId, blockId, snapshot }

Posts (Blog)

Base path: /content/posts

Ang mga blog post ay standalone na row: title, slug (natatangi bawat simbahan), excerpt, content (markdown body), authorId, photoUrl, publishDate, category, at tags. Naipa-publish ang isang post kapag naka-set na ang publishDate at ito ay nasa nakaraan na. Pinayayaman ng mga read endpoint ang bawat post ng authorName na kinukuha mula sa authorId. Tingnan ang Website Builder Architecture.

MethodPathAuthPermissionDescription
GET/public/:churchId?category=&tag=&page=&pageSize=PublicIlista ang mga na-publish na post, naka-paginate (hanggang 50 bawat pahina)
GET/public/:churchId/categoriesPublicNatatanging mga kategorya sa lahat ng na-publish na post
GET/public/:churchId/slug/:slugPublicKunin ang isang na-publish na post ayon sa slug
GET/rss/:churchId?siteUrl=PublicRSS 2.0 feed ng mga na-publish na post (binuo ang mga link bilang {siteUrl}/blog/{slug})
GET/:idJWTKunin ang isang post ayon sa ID
GET/JWTIlista ang lahat ng post para sa simbahan
POST/JWTContent.EditLumikha o mag-update ng mga post (batch)
DELETE/:idJWTContent.EditTanggalin ang isang post

Redirects

Base path: /content/redirects

Mga per-church URL redirect (fromPathtoPath), na may limitasyong 200 bawat simbahan. Nino-normalize ang mga path (lowercase, may leading slash, walang trailing slash) at natatangi ang fromPath bawat simbahan. Nire-resolve ito ng B1App sa mga magiging 404 at naglalabas ng HTTP 308.

MethodPathAuthPermissionDescription
GET/public/:churchId?path=PublicI-resolve ang isang path (o ilista ang lahat ng redirect kapag inalis ang path)
GET/:idJWTKunin ang isang redirect ayon sa ID
GET/JWTIlista ang lahat ng redirect para sa simbahan
POST/JWTContent.EditLumikha o mag-update ng mga redirect. Tinatanggihan ang fromPath = toPath at ipinapatupad ang limitasyong 200-row
DELETE/:idJWTContent.EditTanggalin ang isang redirect

Sermons

Base path: /content/sermons

MethodPathAuthPermissionDescription
GET/public/freeshowSampleJWTKunin ang isang sample na FreeShow playlist structure
GET/public/tvWrapper/:churchIdJWTKunin ang TV app wrapper na may mga source ng sermon, lesson, at FreeShow
GET/public/tvFeed/:churchId/:sermonIdPublicKunin ang iisang sermon bilang TV feed playlist
GET/public/tvFeed/:churchIdPublicKunin ang lahat ng public na playlist/sermon bilang TV feed
GET/public/:churchIdPublicIlista ang lahat ng public na sermon para sa isang simbahan
GET/timeline?sermonIds=JWTI-load ang timeline data para sa mga sermon
GET/lookup?videoType=&videoData=PublicHanapin ang sermon metadata mula sa YouTube o Vimeo
GET/socialSuggestions?youtubeVideoId=JWTBumuo ng mga AI social media post suggestion mula sa mga subtitle ng sermon
GET/outline?url=&title=&author=JWTBumuo ng AI lesson outline mula sa isang URL
GET/youtubeImport/:channelIdJWTMag-import ng mga video mula sa isang YouTube channel
GET/vimeoImport/:channelIdJWTMag-import ng mga video mula sa isang Vimeo channel
GET/:idJWTKunin ang isang sermon ayon sa ID
GET/JWTIlista ang lahat ng sermon
POST/JWTStreamingServices.EditLumikha o mag-update ng mga sermon (batch, sinusuportahan ang base64 thumbnail upload)
DELETE/:idJWTStreamingServices.EditTanggalin ang isang sermon

Halimbawa: Hanapin ang isang YouTube Sermon

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

Base path: /content/playlists

Nag-e-extend ng standard na CRUD (GET /:id, GET /, DELETE /:id mula sa base class na may StreamingServices.Edit permission para sa pagsusulat).

MethodPathAuthPermissionDescription
GET/:idJWTKunin ang isang playlist ayon sa ID
GET/JWTIlista ang lahat ng playlist
GET/public/:churchIdPublicIlista ang lahat ng public na playlist para sa isang simbahan
POST/JWTStreamingServices.EditLumikha o mag-update ng mga playlist (batch, sinusuportahan ang base64 thumbnail upload)
DELETE/:idJWTStreamingServices.EditTanggalin ang isang playlist

Streaming Services

Base path: /content/streamingServices

MethodPathAuthPermissionDescription
GET/:id/hostChatJWTChat.HostKunin ang encrypted host chat room ID para sa isang serbisyo
GET/JWTIlista ang lahat ng streaming service. Awtomatikong nililinis ang mga nag-expire nang non-recurring na serbisyo at ina-advance ang mga recurring
POST/JWTStreamingServices.EditLumikha o mag-update ng mga streaming service (batch)
DELETE/:idJWTStreamingServices.EditTanggalin ang isang streaming service (nililinis din ang mga blocked IP)

Events

Base path: /content/events

MethodPathAuthPermissionDescription
GET/timeline/group/:groupId?eventIds=JWTI-load ang mga timeline event para sa isang grupo
GET/timeline?eventIds=JWTI-load ang mga timeline event para sa mga grupo ng kasalukuyang user
GET/subscribe?churchId=&groupId=&curatedCalendarId=PublicMag-subscribe sa mga kaganapan bilang ICS calendar feed
GET/group/:groupIdJWTKunin ang mga kaganapan para sa isang grupo (kasama ang mga exception date)
GET/public/group/:churchId/:groupIdPublicKunin ang mga public na kaganapan para sa isang grupo
GET/:idJWTKunin ang isang kaganapan ayon sa ID
POST/JWTLumikha o mag-update ng mga kaganapan (batch)
DELETE/:idJWTContent.EditTanggalin ang isang kaganapan

Event Exceptions

Base path: /content/eventExceptions

MethodPathAuthPermissionDescription
GET/:idJWTKunin ang isang event exception ayon sa ID
POST/JWTContent.EditLumikha o mag-update ng mga event exception (batch)
DELETE/:idJWTContent.EditTanggalin ang isang event exception

Curated Calendars

Base path: /content/curatedCalendars

MethodPathAuthPermissionDescription
GET/:idJWTKunin ang isang curated calendar ayon sa ID
GET/JWTIlista ang lahat ng curated calendar
POST/JWTContent.EditLumikha o mag-update ng mga curated calendar (batch)
DELETE/:idJWTContent.EditTanggalin ang isang curated calendar

Curated Events

Base path: /content/curatedEvents

MethodPathAuthPermissionDescription
GET/calendar/:curatedCalendarId?withoutEventsJWTKunin ang mga curated event para sa isang calendar (kasama ang mga detalye ng kaganapan at mga exception date maliban kung naka-set ang ?withoutEvents)
GET/public/calendar/:churchId/:curatedCalendarIdPublicKunin ang mga public na curated event para sa isang calendar
GET/:idJWTKunin ang isang curated event ayon sa ID
GET/JWTIlista ang lahat ng curated event
POST/JWTContent.EditLumikha o mag-update ng mga curated event. Sinusuportahan ang array na eventIds upang magdagdag ng mga partikular na kaganapan ng grupo
DELETE/:idJWTContent.EditTanggalin ang isang curated event
DELETE/calendar/:curatedCalendarId/event/:eventIdJWTContent.EditAlisin ang isang partikular na kaganapan mula sa isang curated calendar
DELETE/calendar/:curatedCalendarId/group/:groupIdJWTContent.EditAlisin ang lahat ng kaganapan para sa isang grupo mula sa isang curated calendar

Files

Base path: /content/files

MethodPathAuthPermissionDescription
GET/:contentType/:contentIdJWTKunin ang mga file ayon sa uri ng content at content ID
GET/JWTIlista ang lahat ng file para sa website ng simbahan
GET/:idJWTKunin ang isang file ayon sa ID
POST/JWTContent.Edit*Mag-upload ng mga file (base64). *Pinapayagan din kung ang user ay miyembro ng grupong tumutugma sa contentId
POST/postUrlJWTContent.Edit*Kumuha ng pre-signed na S3 upload URL. *Pinapayagan din para sa mga miyembro ng grupo. Pinakamataas na 100MB bawat content item
DELETE/:idJWTContent.Edit*Tanggalin ang isang file at alisin ito sa storage. *Pinapayagan din para sa mga miyembro ng grupo

Base path: /content/gallery

MethodPathAuthPermissionDescription
GET/stock/:folderPublicIlista ang mga stock photo sa isang folder
GET/:folderJWTContent.EditIlista ang mga gallery image sa isang folder
POST/requestUploadJWTContent.EditKumuha ng pre-signed na S3 upload URL para sa isang gallery image
DELETE/:folder/:imageJWTContent.EditTanggalin ang isang gallery image

Bibles

Base path: /content/bibles

Lahat ng Bible endpoint ay public (walang kailangang authentication). Kinukuha ang data mula sa mga external na source at naka-cache nang lokal.

MethodPathAuthPermissionDescription
GET/PublicIlista ang lahat ng Bible translation (kumukuha mula sa source kung walang laman ang cache)
GET/stats?startDate=&endDate=PublicKunin ang mga estadistika ng Bible lookup para sa isang saklaw ng petsa
GET/availableTranslations/:sourcePublicIlista ang mga available na translation mula sa isang source (hal. api.bible)
GET/updateTranslationsPublicI-sync ang lahat ng translation mula sa lahat ng source
GET/updateTranslations/:sourcePublicI-sync ang mga translation mula sa isang partikular na source
GET/updateCopyrightsPublicI-update ang impormasyon ng copyright para sa mga translation na kulang nito
GET/:translationKey/updateCopyrightPublicI-update ang copyright para sa isang partikular na translation
GET/:translationKey/search?query=&limit=PublicMaghanap ng mga verse sa isang translation
GET/:translationKey/booksPublicKunin ang mga aklat para sa isang translation (nagca-cache nang lokal)
GET/:translationKey/:bookKey/chaptersPublicKunin ang mga kabanata para sa isang aklat (nagca-cache nang lokal)
GET/:translationKey/chapters/:chapterKey/versesPublicKunin ang mga verse para sa isang kabanata (nagca-cache nang lokal)
GET/:translationKey/verses/:startVerseKey-:endVerseKeyPublicKunin ang teksto ng verse para sa isang saklaw. Nag-log ng mga lookup. Nililiktawan ng ilang translation ang caching dahil sa lisensya

Halimbawa: Kunin ang Teksto ng Verse

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

Base path: /content/songs

MethodPathAuthPermissionDescription
GET/search?q=JWTMaghanap ng mga kanta ayon sa query
GET/:idJWTKunin ang isang kanta ayon sa ID
GET/JWTContent.EditIlista ang lahat ng kanta
POST/JWTContent.EditLumikha o mag-update ng mga kanta (batch)
POST/importJWTMag-import ng mga kanta mula sa FreeShow (batch)
DELETE/:idJWTContent.EditTanggalin ang isang kanta

Song Details

Base path: /content/songDetails

Global (hindi naka-scope sa simbahan) ang mga song detail. Kumakatawan ang mga ito sa canonical na metadata ng kanta na nabahagi sa mga simbahan.

MethodPathAuthPermissionDescription
GET/:idJWTKunin ang isang song detail ayon sa ID (global)
GET/JWTIlista ang mga song detail para sa simbahan
POST/createJWTLumikha ng isang song detail mula sa PraiseCharts ID (nagbabalik ng umiiral na kung nagawa na ito). Awtomatikong kumukuha ng metadata mula sa PraiseCharts at MusicBrainz
POST/JWTLumikha o mag-update ng mga song detail (batch)

Base path: /content/songDetailLinks

MethodPathAuthPermissionDescription
GET/:idJWTKunin ang isang song detail link ayon sa ID
GET/songDetail/:songDetailIdJWTKunin ang lahat ng link para sa isang song detail
POST/JWTLumikha o mag-update ng mga song detail link (batch). Awtomatikong kumukuha ng data ng MusicBrainz kung naka-link
DELETE/:idJWTTanggalin ang isang song detail link

Arrangements

Base path: /content/arrangements

MethodPathAuthPermissionDescription
GET/:idJWTKunin ang isang arrangement ayon sa ID
GET/song/:songIdJWTContent.EditKunin ang mga arrangement para sa isang kanta
GET/songDetail/:songDetailIdJWTContent.EditKunin ang mga arrangement para sa isang song detail
GET/JWTContent.EditIlista ang lahat ng arrangement
POST/JWTContent.EditLumikha o mag-update ng mga arrangement (batch)
POST/freeShow/missingJWTHanapin ang mga FreeShow ID na wala sa simbahan. Body: { freeShowIds: string[] }
DELETE/:idJWTContent.EditTanggalin ang isang arrangement (tinatanggal din ang mga key; tinatanggal ang kanta kung walang natitirang arrangement)

Arrangement Keys

Base path: /content/arrangementKeys

MethodPathAuthPermissionDescription
GET/presenter/:churchId/:idPublicKunin ang arrangement key kasama ang buong data ng kanta para sa presenter view
GET/:idJWTKunin ang isang arrangement key ayon sa ID
GET/arrangement/:arrangementIdJWTContent.EditKunin ang mga key para sa isang arrangement
GET/JWTContent.EditIlista ang lahat ng arrangement key
POST/JWTContent.EditLumikha o mag-update ng mga arrangement key (batch)
DELETE/:idJWTContent.EditTanggalin ang isang arrangement key

Settings

Base path: /content/settings

MethodPathAuthPermissionDescription
GET/myJWTKunin ang mga setting ng kasalukuyang user
GET/JWTSettings.EditKunin ang lahat ng setting para sa simbahan
GET/public/:churchIdPublicKunin ang mga public na setting para sa isang simbahan (ibinabalik bilang key-value pairs)
POST/myJWTI-save ang mga setting sa antas ng user (sinusuportahan ang base64 image upload)
POST/JWTSettings.EditI-save ang mga setting sa antas ng simbahan (sinusuportahan ang base64 image upload)
DELETE/my/:idJWTTanggalin ang isang setting ng user

Preview

Base path: /content/preview

MethodPathAuthPermissionDescription
GET/data/:keyPublicI-load ang streaming preview data para sa isang simbahan ayon sa subdomain key (mga tab, link, serbisyo, sermon)

Base path: /content/stock

MethodPathAuthPermissionDescription
POST/searchPublicMaghanap ng mga stock photo sa Pexels. Body: { term: "church" }

PraiseCharts

Base path: /content/praiseCharts

Integrasyon sa PraiseCharts para sa pagtuklas ng worship song at pag-download ng sheet music.

MethodPathAuthPermissionDescription
GET/raw/:idJWTKunin ang raw na data ng PraiseCharts para sa isang kanta
GET/hasAccountJWTSuriin kung may naka-link na PraiseCharts account ang user
GET/search?q=JWTMaghanap sa katalogo ng PraiseCharts
GET/products/:id?keys=JWTKunin ang mga produkto para sa isang kanta (mula sa library kung naka-authenticate, kung hindi ay mula sa katalogo)
GET/arrangement/raw/:id?keys=JWTKunin ang raw na arrangement data mula sa library
GET/download?skus=&keys=&file_name=JWTMag-download ng file mula sa PraiseCharts (PDF o ZIP). Nagbabalik ng { redirectUrl }
GET/authUrl?returnUrl=PublicKunin ang OAuth authorization URL para sa PraiseCharts
GET/access?verifier=&token=&secret=JWTPalitan ang OAuth verifier ng access token at i-save sa mga setting ng user
GET/libraryJWTI-browse ang library ng PraiseCharts ng user

Support

Base path: /content/support

MethodPathAuthPermissionDescription
POST/createAudioPublicI-convert ang SSML sa MP3 audio gamit ang AWS Polly. Body: { ssml: "<speak>...</speak>" }

Mga Kaugnay na Pahina