System Administration

System configuration, database setup, scheduling, statistics, collections, tags, media delivery, payments, recommendations, and embedded content.

System Administration API

Overview

The System Administration API provides endpoints for system configuration, database setup, scheduling, statistics, metadata management (collections, tags, related content), media delivery, payments, recommendations, embedded content, and legacy V1 operations.


System Management

Base Route: admin/system

Invalidate Cache

  • POST admin/system/invalidate-cache
  • Auth: Bearer token required
  • Description: Invalidates the CDN distribution cache for the specified paths.
  • Request Body: InvalidateDistributionModel
  • Response: bool — true if the cache invalidation succeeded.

Rebuild Share

  • POST admin/system/rebuild-share/{shareId?}
  • Auth: Bearer token required
  • Description: Rebuilds share index records. If a share ID is provided, only that share is rebuilt; otherwise, all shares are rebuilt.
  • Parameters:
    • shareId (path, optional) — The specific share to rebuild.
    • excludeExpiredShares (query, default: true) — Whether to skip expired shares.
  • Response: 200 OK

Email Dispatcher

  • POST admin/system/email-dispatcher
  • Auth: Bearer token required (admin user only)
  • Description: Dispatches an email using the provided email configuration.
  • Request Body: EmailDispatcherModel
  • Response: bool — true if the email was sent.

License Check

  • GET admin/system/license-check
  • Auth: None
  • Description: Returns the encrypted license grant for the specified customer ID.
  • Parameters:
    • id (query) — The customer identifier.
  • Response: string — The encrypted license grant.

License Test

  • POST admin/system/license-test
  • Auth: None
  • Description: Checks and returns the current license for the application.
  • Parameters:
    • forceReload (query) — Whether to force a fresh license check from the license server.
  • Response: LicenseGrant

Migrate Assets

  • POST admin/system/migrate-assets
  • Auth: Admin user only
  • Description: Triggers an asset migration from one platform to another using the specified bucket replacements.
  • Request Body: List<KeyValuePair<string, string>> — Bucket name replacements.
  • Response: BatchResultModel

Align Catalog

  • POST admin/system/align-catalog
  • Auth: Admin user only
  • Description: Aligns the catalog by triggering a batch action to synchronize catalog data.
  • Request Body: AlignCatalogModel (optional)
  • Response: BatchResultModel

Database Setup

Base Route: admin/setup Auth: Bearer token required for all endpoints.

Create Database Tables

  • POST admin/setup/create-db-tables
  • Description: Ensures all required database tables exist.
  • Response: 200 OK

Create Content Definitions File

  • POST admin/setup/create-contentdefinitions-file
  • Description: Generates and returns the built-in content definitions as a JSON string.
  • Response: string — The generated JSON content definitions.

Create Default Saved Searches

  • POST admin/setup/create-default-savedsearches
  • Description: Ensures default saved search configurations exist in the system.
  • Response: 200 OK

Create Default Live Output Profile Groups

  • POST admin/setup/create-default-liveoutputprofilegroups
  • Description: Ensures default live output profile groups exist.
  • Response: 200 OK

Upgrade 2023-12

  • POST admin/setup/upgrade-2023-12
  • Description: Triggers the December 2023 upgrade batch process.
  • Response: 200 OK

Upgrade 2024-02

  • POST admin/setup/upgrade-2024-02
  • Description: Triggers the February 2024 full update upgrade.
  • Parameters:
    • previewOnly (query, default: true) — When true, previews the upgrade without applying changes.
  • Response: 200 OK

Upgrade 2024-08

  • POST admin/setup/upgrade-2024-08
  • Description: Triggers the August 2024 share migration upgrade.
  • Parameters:
    • previewOnly (query, default: true) — When true, previews the upgrade without applying changes.
  • Response: 200 OK

Upgrade 2024-12

  • POST admin/setup/upgrade-2024-12
  • Description: Triggers the December 2024 upgrade, which migrates security permissions and live output profile groups to S3.
  • Parameters:
    • previewOnly (query, default: true) — When true, previews the upgrade without applying changes.
  • Response: 200 OK

Statistics & Reporting

Base Route: admin/statistics Auth: Bearer token required for all endpoints.

Get All Statistics

  • GET admin/statistics/all
  • Description: Retrieves all available statistics records.
  • Response: List<StatisticsListModel>

Get Statistics by Date Range

  • GET admin/statistics/date-range
  • Description: Retrieves statistics records within the specified date range.
  • Parameters:
    • fromDate (query) — The start date.
    • toDate (query) — The end date.
  • Response: List<StatisticsListModel>

Get Statistics Measurements Config

  • GET admin/statistics/measurements/config
  • Description: Returns the statistics measurements configuration, including available measurement types and settings.
  • Response: StatisticsConfigResultModel

List Statistics Measurements

  • POST admin/statistics/measurements
  • Description: Returns aggregated statistics measurements from search indexes over the specified period.
  • Request Body: StatisticsRequestModel
  • Response: IEnumerable<StatisiticsDataGraph>

Update Statistics Measurements (Restore from Rollups)

  • POST admin/statistics/measurements/rollup
  • Description: Restores statistics measurement data from S3 rollup snapshots into the search index.
  • Response: 204 No Content

Generate Measurements (Rollup Snapshot)

  • PUT admin/statistics/measurements/rollup
  • Description: Generates a rollup snapshot of statistics measurements for the specified date.
  • Parameters:
    • snapshotDate (query, optional) — The date for the rollup snapshot.
  • Response: 204 No Content

Export Journal

  • POST admin/statistics/exportjournal
  • Description: Exports journal entries as an Excel spreadsheet for the specified date range. Supports background or synchronous processing.
  • Parameters:
    • exportDate (query) — The export start date.
    • exportEndDate (query, optional) — The export end date.
    • background (query, default: true) — Whether to process in the background.
  • Response: Excel file when synchronous, or 204 No Content when background.

Generate Statistics

  • POST admin/statistics/generate-statistics
  • Auth: Admin user only
  • Description: Generates system-wide statistics for the environment.
  • Parameters:
    • forceReload (query) — Whether to regenerate statistics even if they already exist.
  • Response: bool — true if statistics were generated.

Scheduling

Base Route: admin/schedule Auth: Bearer token required for all endpoints.

Get Schedule

  • GET admin/schedule/{scheduleId}
  • Description: Retrieves a specific schedule by its identifier.
  • Response: ScheduleModel

Get Schedule Preview

  • GET admin/schedule/{scheduleId}/preview
  • Description: Returns a preview of the schedule guide.
  • Response: List<ScheduleGuideModel>

Get Schedule Item

  • GET admin/schedule/{scheduleId}/item/{itemId}
  • Description: Retrieves a specific schedule item by its identifier.
  • Response: ScheduleItemModel

Get Schedule Items

  • GET admin/schedule/{scheduleId}/items
  • Description: Retrieves all items belonging to a specific schedule.
  • Response: List<ScheduleItemModel>

Create Schedule

  • POST admin/schedule
  • Request Body: AddScheduleModel
  • Response: ScheduleModel

Create Schedule Item

  • POST admin/schedule/{scheduleId}/item
  • Request Body: AddScheduleItemModel
  • Response: ScheduleItemChangeModel

Update Schedule

  • PUT admin/schedule/{scheduleId}
  • Request Body: AddScheduleModel
  • Response: ScheduleModel

Update Schedule Item

  • PUT admin/schedule/{scheduleId}/item/{itemId}
  • Request Body: AddScheduleItemModel
  • Response: ScheduleItemModel

Delete Schedule

  • DELETE admin/schedule/{scheduleId}
  • Response: IdModel

Delete Schedule Item

  • DELETE admin/schedule/{scheduleId}/item/{itemId}
  • Response: ScheduleItemChangeModel

Move Schedule Item

  • POST admin/schedule/{scheduleId}/item/{itemId}/move
  • Request Body: ScheduleItemMoveModel
  • Response: List<ScheduleItemModel>

Start Schedule

  • POST admin/schedule/{scheduleId}/start
  • Description: Starts the schedule for live channel playback.
  • Parameters: background (query, default: true)
  • Response: ScheduleModel

Stop Schedule

  • POST admin/schedule/{scheduleId}/stop
  • Description: Stops a running schedule.
  • Parameters: background (query, default: true)
  • Response: ScheduleModel

Publish Schedule

  • POST admin/schedule/{scheduleId}/publish
  • Request Body: PublishScheduleRequestModel
  • Parameters: background (query, default: true)
  • Response: ScheduleModel

Import Schedule Items

  • POST admin/schedule/{scheduleId}/items/import
  • Request Body: List<ImportScheduleItemModel>
  • Response: List<ScheduleItemModel>

S3 Events

Base Route: s3

S3 Webhook

  • POST s3/webhook
  • Auth: None
  • Description: Receives and processes S3 bucket event notifications.
  • Response: 200 OK or 400 Bad Request

Collections

Base Route: admin/collection Auth: Bearer token required for all endpoints.

MethodRouteDescriptionResponse
GET/{id}Get collectionCollectionModel
POST/Create or update collectionIdModel
DELETE/{id}Delete collectionIdModel
POST/contentAdd collection content associationsBatchResultModel
POST/content/deleteRemove collection content associationsBatchResultModel

Tags

Base Route: admin/tag Auth: Bearer token required for all endpoints.

MethodRouteDescriptionResponse
GET/{id}Get tagTagModel
POST/Create or update tagIdModel
DELETE/{id}Delete tagIdModel
POST/contentAdd tag content associationsBatchResultModel
POST/content/deleteRemove tag content associationsBatchResultModel

Related Content

Base Route: admin/related Auth: Bearer token required for all endpoints.

MethodRouteDescriptionResponse
POST/Create related content associationsBatchResultModel
POST/deleteRemove related content associationsBatchResultModel

Comments

Base Route: comment Auth: Bearer token required for all endpoints.

MethodRouteDescriptionResponse
GET/{contentId}Get comments for contentList<ContentCommentModel>
POST/{contentId}Create commentContentCommentModel
PUT/{commentId}Update commentContentCommentModel
DELETE/{commentId}Delete commentIdModel

Media

Base Route: media

Public Endpoints (No Auth)

MethodRouteDescriptionResponse
GET/group/{fullSlugOrId}Get media groupMediaGroupModel
GET/item/{fullSlugOrId}Get media itemMediaItemModel
GET/content/{fullSlugOrId}Get dynamic contentDynamicContentModel
GET/contentList dynamic contentList<DynamicContentModel>
GET/config/{id}Get site configSiteConfigModel
GET/configGet default site configSiteConfigModel
POST/searchMedia searchList<FeaturedItemModel>
POST/form/{id}Post custom formIdModel
GET/routesGet URL routes (text/plain)string
GET/sitemap/{baseUrl}Get sitemap (text/plain)string
GET/set-cookies/{id}Get secure cookiesIEnumerable<string>

Authenticated Endpoints (Bearer Token)

MethodRouteDescriptionResponse
GET/my-group/{id}Get personalized media groupMediaGroupModel
GET/my-group/{id}/{profileId}Get media group by profileMediaGroupModel
GET/my-contentGet favorites/watchlistMyContentModel
GET/my-content/{profileId}Get content by profileMyContentModel
POST/clear-watchlistClear watchlist
POST/clear-watchingClear continue watching

Media Builder

Base Route: mediaBuilder Auth: Bearer token required for all endpoints.

MethodRouteDescriptionResponse
GET/Get all media buildersMediaBuilderModel[]
GET/{mediaBuilderId}Get media builderMediaBuilderModel
GET/idsbysource/{sourceAssetId}Get IDs by source assetGuid[]
GET/{mediaBuilderId}/itemsGet itemsMediaBuilderItemModel[]
POST/Create media builderMediaBuilderModel
PUT/{mediaBuilderId}Update media builderMediaBuilderModel
POST/{mediaBuilderId}/itemsCreate itemMediaBuilderItemChangeModel
POST/{mediaBuilderId}/items/{sourceAssetId}/add-annotationsCreate from annotationsMediaBuilderItemChangeModel[]
POST/{mediaBuilderId}/items/bulkBulk create itemsMediaBuilderItemChangeModel[]
DELETE/{mediaBuilderId}Delete media builderIdModel
DELETE/{mediaBuilderId}/items/{itemId}Delete itemMediaBuilderItemChangeModel
POST/{mediaBuilderId}/items/{itemId}/moveMove itemMediaBuilderItemChangeModel
POST/{mediaBuilderId}/renderRenderMediaBuilderModel
POST/{mediaBuilderId}/duplicateDuplicateMediaBuilderModel

MRSS Feed

  • GET mrss/feed — Returns MRSS XML feed. Auth: Bearer token required.

Payments

Base Route: payment Auth: Bearer token required for all endpoints.

MethodRouteDescriptionResponse
POST/start-transactionStart paymentStartTransactionResponseModel
POST/{id}/cancel-transactionCancel paymentIdModel
POST/{id}/complete-transactionComplete paymentIdModel

Recommendations

Base Route: recommendation Auth: Bearer token required for all endpoints.

MethodRouteDescription
POST/index-assetsIndex assets for recommendations
POST/index-contentIndex content for recommendations
POST/interactionSubmit user interaction
DELETE/delete-item/{id}Remove item from index

Roku Feed

  • GET roku/feed — Returns Roku Direct Publisher JSON feed. Auth: None.

Stage (Interactive Experience)

Base Route: stage Auth: Bearer token required for all endpoints.

MethodRouteDescriptionResponse
POST/authAuthenticate sessionStageLoginResponseModel
GET/ping/{id}Session heartbeatStagePingResponseModel
POST/start-sessionStart sessionStageLoginResponseModel
POST/verify-sessionVerify sessionStageLoginResponseModel

Embedded Content

Base Route: embedded Auth: None for all endpoints.

MethodRouteProducesDescription
GET/iframe-mediatext/htmlIFrame video player
GET/media/{id}application/jsonEmbedded media model
GET/share-mediatext/htmlShare page with social metadata
GET/share/{shareId}application/jsonShared search results

CoJudicial Streams

  • GET cojudicial/streams — Returns counties and live streams. Auth: None.

V1 Legacy API

Base Route: v1/ Auth: Bearer token required.

Legacy endpoints maintained for backward compatibility. New development should use the current API versions.

  • Config, Content, Content Definitions, Content Definition Groups, Content Instances, Content Labels, Content Types, Fields, Lookups

Common Error Responses

Status CodeDescription
400Bad Request — Missing or invalid parameters
401Unauthorized — Missing or invalid Bearer token
403Forbidden — Insufficient permissions
404Not Found — Resource does not exist
500Internal Server Error — Unexpected error