Admin Live Sources

Generated admin live sources operations.

GET/v1/admin/live-sourcesManage live source acquisition and guide settingsadmin
Audience
Clients · Native API
Authorization
API key or personal access token with the admin scope, or a signed-in session
OpenAPI operation ID
list_live_sources

Responses

200Successapplication/json

Example
{
  "protocolVersion": "string",
  "refresh": [
    {
      "errorCode": "string",
      "failures": 0,
      "nextRefresh": "string",
      "sourceId": "id_8h2k4q",
      "state": "string"
    }
  ],
  "serverId": "id_8h2k4q",
  "sources": [
    {
      "acquisition": "string",
      "capacityKnown": true,
      "channels": 0,
      "deliveryValidation": "string",
      "diagnostics": {
        "adjustedProgrammes": 0,
        "examples": [
          "string"
        ],
        "skippedChannels": 0,
        "skippedProgrammes": 0
      },
      "generation": "string",
      "id": "id_8h2k4q",
      "name": "Fargo",
      "planningEstimate": 0,
      "programmes": 0,
      "publishedAt": "2026-10-18T19:30:00Z",
      "revision": 0,
      "state": "string",
      "tunerCount": 0,
      "tunerCountMode": "string"
    }
  ]
}
Schema
  • protocolVersionstringrequired
  • refresharray of objectrequired
    • errorCodestringrequired
    • failuresintegerrequired
    • nextRefreshstringrequired
    • sourceIdstringrequired
    • statestringrequired
  • serverIdstringrequired
  • sourcesarray of objectrequired
    • acquisitionstringrequired
    • capacityKnownbooleanrequired
    • channelsintegerrequired
    • deliveryValidationstringrequired
    • diagnosticsobjectrequired
      • adjustedProgrammesintegerrequired
      • examplesarray of stringrequired
      • skippedChannelsintegerrequired
      • skippedProgrammesintegerrequired
    • generationstringrequired
    • idstringrequired
    • namestringrequired
    • planningEstimateintegerrequired
    • programmesintegerrequired
    • publishedAtstringrequired
    • revisionintegerrequired
    • statestringrequired
    • tunerCountintegerrequired
    • tunerCountModestringrequired

defaultRequest refused or unavailableapplication/json

Example
{
  "error": {
    "code": "string",
    "message": "string"
  }
}
Schema
  • errorobjectrequired
    • codestringrequired
    • messagestringrequired

Error codesunauthorizednot_permittednot_foundinvalid_requestinvalid_channel_inputchannel_revision_conflictchannel_unavailablesource_lan_confirmation_requiredsource_network_policysource_credentials_requiredsource_unavailableinternaldatabase_busy

Example request

curl -X GET "http://127.0.0.1:32500/v1/admin/live-sources" \
  -H "Authorization: Bearer $PORTICO_API_KEY"
POST/v1/admin/live-sourcesManage live source acquisition and guide settingsadmin
Audience
Clients · Native API
Authorization
API key or personal access token with the admin scope, or a signed-in session
OpenAPI operation ID
save_live_source
Max body
48 MiB

Request body application/json · required

Example
{
  "enabledChannels": [
    "string"
  ],
  "enabledGroups": [
    "string"
  ],
  "expectedRevision": 0,
  "guide": "string",
  "id": "id_8h2k4q",
  "limits": {
    "bytes": 0,
    "channels": 0,
    "programmes": 0
  },
  "mappings": [
    {
      "channelKey": "string",
      "guideKey": "string"
    }
  ],
  "name": "Fargo",
  "playlist": "string",
  "requestId": "id_8h2k4q",
  "tunerCount": 0
}
Schema
  • enabledChannelsarray of string
  • enabledGroupsarray of string
  • expectedRevisionintegerrequired
  • guidestringrequired
  • idstringrequired
  • limitsobject
    • bytesintegerrequired
    • channelsintegerrequired
    • programmesintegerrequired
  • mappingsarray of object
    • channelKeystringrequired
    • guideKeystringrequired
  • namestringrequired
  • playliststringrequired
  • requestIdstringrequired
  • tunerCountintegerrequired

Responses

200Successapplication/json

Example
{
  "protocolVersion": "string",
  "serverId": "id_8h2k4q",
  "source": {
    "acquisition": "string",
    "capacityKnown": true,
    "channels": 0,
    "deliveryValidation": "string",
    "diagnostics": {
      "adjustedProgrammes": 0,
      "examples": [
        "string"
      ],
      "skippedChannels": 0,
      "skippedProgrammes": 0
    },
    "generation": "string",
    "id": "id_8h2k4q",
    "name": "Fargo",
    "planningEstimate": 0,
    "programmes": 0,
    "publishedAt": "2026-10-18T19:30:00Z",
    "revision": 0,
    "state": "string",
    "tunerCount": 0,
    "tunerCountMode": "string"
  }
}
Schema
  • protocolVersionstringrequired
  • serverIdstringrequired
  • sourceobjectrequired
    • acquisitionstringrequired
    • capacityKnownbooleanrequired
    • channelsintegerrequired
    • deliveryValidationstringrequired
    • diagnosticsobjectrequired
      • adjustedProgrammesintegerrequired
      • examplesarray of stringrequired
      • skippedChannelsintegerrequired
      • skippedProgrammesintegerrequired
    • generationstringrequired
    • idstringrequired
    • namestringrequired
    • planningEstimateintegerrequired
    • programmesintegerrequired
    • publishedAtstringrequired
    • revisionintegerrequired
    • statestringrequired
    • tunerCountintegerrequired
    • tunerCountModestringrequired

defaultRequest refused or unavailableapplication/json

Example
{
  "error": {
    "code": "string",
    "message": "string"
  }
}
Schema
  • errorobjectrequired
    • codestringrequired
    • messagestringrequired

Error codesunauthorizednot_permittednot_foundinvalid_requestinvalid_channel_inputchannel_revision_conflictchannel_unavailablesource_lan_confirmation_requiredsource_network_policysource_credentials_requiredsource_unavailableinternaldatabase_busywriter_capacity

Example request

curl -X POST "http://127.0.0.1:32500/v1/admin/live-sources" \
  -H "Authorization: Bearer $PORTICO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "enabledChannels": [
    "string"
  ],
  "enabledGroups": [
    "string"
  ],
  "expectedRevision": 0,
  "guide": "string",
  "id": "id_8h2k4q",
  "limits": {
    "bytes": 0,
    "channels": 0,
    "programmes": 0
  },
  "mappings": [
    {
      "channelKey": "string",
      "guideKey": "string"
    }
  ],
  "name": "Fargo",
  "playlist": "string",
  "requestId": "id_8h2k4q",
  "tunerCount": 0
}'
GET/v1/admin/live-sources/{id}/channel-mapRead server live sources channel mapadmin
Audience
Clients · Native API
Authorization
API key or personal access token with the admin scope, or a signed-in session
OpenAPI operation ID
get_admin_live_sources_id_channel_map

Parameters

NameInTypeDescription
idrequiredpathstring
channelIdquerystring
cursorquerystring
limitqueryinteger | ""1–200

Responses

200Successapplication/json

Example
{
  "protocolVersion": "string",
  "result": {
    "generation": "string",
    "items": [
      {
        "channelId": "id_8h2k4q",
        "group": "string",
        "guideChannelId": "id_8h2k4q",
        "hidden": true,
        "mark": {
          "seed": "string",
          "text": "string"
        },
        "name": "Fargo",
        "number": "string",
        "overridden": true,
        "overrideNumber": "string",
        "position": 0,
        "sourceNumber": "string"
      }
    ],
    "nextCursor": "eyJvIjoyMH0",
    "revision": 0,
    "sourceId": "id_8h2k4q"
  },
  "serverId": "id_8h2k4q"
}
Schema
  • protocolVersionstringrequired
  • resultobjectrequired
    • generationstringrequired
    • itemsarray of objectrequired
      • channelIdstringrequired
      • groupstringrequired
      • guideChannelIdstringrequired
      • hiddenbooleanrequired
      • markobjectrequired
        • seedstringrequired
        • textstringrequired
      • namestringrequired
      • numberstringrequired
      • overriddenbooleanrequired
      • overrideNumberstringrequired
      • positionintegerrequired
      • sourceNumberstringrequired
    • nextCursorstringrequired
    • revisionintegerrequired
    • sourceIdstringrequired
  • serverIdstringrequired

defaultRequest refused or unavailableapplication/json

Example
{
  "error": {
    "code": "string",
    "message": "string"
  }
}
Schema
  • errorobjectrequired
    • codestringrequired
    • messagestringrequired

Error codesinvalid_requestunauthorizednot_permittednot_foundinternaldatabase_busy

Example request

curl -X GET "http://127.0.0.1:32500/v1/admin/live-sources/{id}/channel-map" \
  -H "Authorization: Bearer $PORTICO_API_KEY"
PUT/v1/admin/live-sources/{id}/channel-mapSave server live sources channel mapadmin
Audience
Clients · Native API
Authorization
API key or personal access token with the admin scope, or a signed-in session
OpenAPI operation ID
put_admin_live_sources_id_channel_map
Max body
64 KiB

Parameters

NameInTypeDescription
idrequiredpathstring

Request body application/json · required

Example
{
  "expectedRevision": 0,
  "operationId": "id_8h2k4q",
  "overrides": [
    {
      "channelId": "id_8h2k4q",
      "guideChannelId": "id_8h2k4q",
      "hidden": true,
      "number": "string"
    }
  ]
}
Schema
  • expectedRevisionintegerrequired
  • operationIdstringrequired
  • overridesarray of objectrequired
    • channelIdstringrequired
    • guideChannelIdstringrequired
    • hiddenbooleanrequired
    • numberstringrequired

Responses

200Successapplication/json

Example
{
  "protocolVersion": "string",
  "result": {
    "generation": "string",
    "items": [
      {
        "channelId": "id_8h2k4q",
        "group": "string",
        "guideChannelId": "id_8h2k4q",
        "hidden": true,
        "mark": {
          "seed": "string",
          "text": "string"
        },
        "name": "Fargo",
        "number": "string",
        "overridden": true,
        "overrideNumber": "string",
        "position": 0,
        "sourceNumber": "string"
      }
    ],
    "nextCursor": "eyJvIjoyMH0",
    "revision": 0,
    "sourceId": "id_8h2k4q"
  },
  "serverId": "id_8h2k4q"
}
Schema
  • protocolVersionstringrequired
  • resultobjectrequired
    • generationstringrequired
    • itemsarray of objectrequired
      • channelIdstringrequired
      • groupstringrequired
      • guideChannelIdstringrequired
      • hiddenbooleanrequired
      • markobjectrequired
        • seedstringrequired
        • textstringrequired
      • namestringrequired
      • numberstringrequired
      • overriddenbooleanrequired
      • overrideNumberstringrequired
      • positionintegerrequired
      • sourceNumberstringrequired
    • nextCursorstringrequired
    • revisionintegerrequired
    • sourceIdstringrequired
  • serverIdstringrequired

defaultRequest refused or unavailableapplication/json

Example
{
  "error": {
    "code": "string",
    "message": "string"
  }
}
Schema
  • errorobjectrequired
    • codestringrequired
    • messagestringrequired

Error codesinvalid_requestunauthorizednot_permittednot_foundinternaldatabase_busywriter_capacity

Example request

curl -X PUT "http://127.0.0.1:32500/v1/admin/live-sources/{id}/channel-map" \
  -H "Authorization: Bearer $PORTICO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"expectedRevision":0,"operationId":"id_8h2k4q","overrides":[{"channelId":"id_8h2k4q","guideChannelId":"id_8h2k4q","hidden":true,"number":"string"}]}'
GET/v1/admin/live-sources/{id}/configurationManage live source acquisition and guide settingsadmin
Audience
Clients · Native API
Authorization
API key or personal access token with the admin scope, or a signed-in session
OpenAPI operation ID
get_live_source_configuration

Parameters

NameInTypeDescription
idrequiredpathstring

Responses

200Successapplication/json

Example
{
  "protocolVersion": "string",
  "result": {
    "acquisition": "string",
    "availableKinds": [
      "string"
    ],
    "digest": "string",
    "effective": {
      "discoveryEnabled": true,
      "guideDays": 0,
      "importLimits": {
        "bytes": 0,
        "channels": 0,
        "programmes": 0
      },
      "logoImport": true,
      "retryWindowMs": 1800000,
      "streamBufferMs": 1800000,
      "timeshiftMinutes": 0,
      "userAgent": "string"
    },
    "effectiveLogoImport": {
      "enabled": true,
      "overwriteExisting": true
    },
    "revision": 0,
    "settings": {
      "channelNumbering": {
        "mode": "string",
        "startAt": 0,
        "step": 0
      },
      "enabled": true,
      "enabledChannels": [
        "string"
      ],
      "enabledGroups": [
        "string"
      ],
      "filters": {
        "categories": {
          "mode": "string",
          "values": []
        },
        "countries": {
          "mode": "string",
          "values": []
        },
        "keywords": {
          "mode": "string",
          "values": []
        }
      },
      "guideSourceId": "id_8h2k4q",
      "importLimits": {
        "bytes": 0,
        "channels": 0,
        "programmes": 0
      },
      "kind": "string",
      "logoImport": {
        "enabled": true,
        "followServer": true,
        "overwriteExisting": true
      },
      "remote": {
        "confirmedLanRoots": [
          "string"
        ],
        "guideUrl": "https://example.com/…",
        "guideUrlRedacted": true,
        "kind": "string",
        "ownerLimit": 0,
        "password": "string",
        "refreshMs": 1800000,
        "useDiscoveredCapacity": true,
        "username": "Fargo"
      },
      "retryWindowMs": 1800000,
      "streamBufferMs": 1800000,
      "userAgent": "string",
      "viewerAccess": "string"
    },
    "sourceId": "id_8h2k4q",
    "sourceName": "Fargo",
    "tunerCount": 0
  },
  "serverId": "id_8h2k4q"
}
Schema
  • protocolVersionstringrequired
  • resultobjectrequired
    • acquisitionstringrequired
    • availableKindsarray of stringrequired
    • digeststringrequired
    • effectiveobjectrequired
      • discoveryEnabledbooleanrequired
      • guideDaysintegerrequired
      • importLimitsobjectrequired
        • bytesintegerrequired
        • channelsintegerrequired
        • programmesintegerrequired
      • logoImportbooleanrequired
      • retryWindowMsintegerrequired
      • streamBufferMsintegerrequired
      • timeshiftMinutesinteger
      • userAgentstringrequired
    • effectiveLogoImportobjectrequired
      • enabledbooleanrequired
      • overwriteExistingbooleanrequired
    • revisionintegerrequired
    • settingsobjectrequired
      • channelNumberingobjectrequired
        • modestringrequired
        • startAtintegerrequired
        • stepintegerrequired
      • enabledboolean
      • enabledChannelsarray of stringrequired
      • enabledGroupsarray of stringrequired
      • filtersobjectrequired
        • categoriesobjectrequired
          • modestringrequired
          • valuesarray of stringrequired
        • countriesobjectrequired
          • modestringrequired
          • valuesarray of stringrequired
        • keywordsobjectrequired
          • modestringrequired
          • valuesarray of stringrequired
      • guideSourceIdstringrequired
      • importLimitsobject | any | nullrequired
        • bytesintegerrequired
        • channelsintegerrequired
        • programmesintegerrequired
      • kindstringrequired
      • logoImportobjectrequired
        • enabledbooleanrequired
        • followServerboolean
        • overwriteExistingbooleanrequired
      • remoteobject
        • confirmedLanRootsarray of string
        • guideUrlstringrequired
        • guideUrlRedactedbooleanrequired
        • kindstringrequired
        • ownerLimitintegerrequired
        • passwordstring
        • refreshMsintegerrequired
        • useDiscoveredCapacitybooleanrequired
        • usernamestring
      • retryWindowMsinteger | any | nullrequired
      • streamBufferMsinteger | any | nullrequired
      • userAgentstringrequired
      • viewerAccessstring
    • sourceIdstringrequired
    • sourceNamestringrequired
    • tunerCountintegerrequired
  • serverIdstringrequired

defaultRequest refused or unavailableapplication/json

Example
{
  "error": {
    "code": "string",
    "message": "string"
  }
}
Schema
  • errorobjectrequired
    • codestringrequired
    • messagestringrequired

Error codesunauthorizednot_permittednot_foundinvalid_requestinvalid_channel_inputchannel_revision_conflictchannel_unavailablesource_lan_confirmation_requiredsource_network_policysource_credentials_requiredsource_unavailableinternaldatabase_busy

Example request

curl -X GET "http://127.0.0.1:32500/v1/admin/live-sources/{id}/configuration" \
  -H "Authorization: Bearer $PORTICO_API_KEY"
PUT/v1/admin/live-sources/{id}/configurationManage live source acquisition and guide settingsadmin
Audience
Clients · Native API
Authorization
API key or personal access token with the admin scope, or a signed-in session
OpenAPI operation ID
set_live_source_configuration
Max body
8 MiB

Parameters

NameInTypeDescription
idrequiredpathstring
Idempotency-Keyheaderstring
Portico-Mutation-Rootheaderstring

Request body application/json · required

Example
{
  "expectedRevision": 0,
  "operationId": "id_8h2k4q",
  "settings": {
    "channelNumbering": {
      "mode": "string",
      "startAt": 0,
      "step": 0
    },
    "enabled": true,
    "enabledChannels": [
      "string"
    ],
    "enabledGroups": [
      "string"
    ],
    "filters": {
      "categories": {
        "mode": "string",
        "values": [
          "string"
        ]
      },
      "countries": {
        "mode": "string",
        "values": [
          "string"
        ]
      },
      "keywords": {
        "mode": "string",
        "values": [
          "string"
        ]
      }
    },
    "guideSourceId": "id_8h2k4q",
    "importLimits": {
      "bytes": 0,
      "channels": 0,
      "programmes": 0
    },
    "kind": "string",
    "logoImport": {
      "enabled": true,
      "followServer": true,
      "overwriteExisting": true
    },
    "remote": {
      "confirmedLanRoots": [
        "string"
      ],
      "guideUrl": "https://example.com/…",
      "guideUrlRedacted": true,
      "kind": "string",
      "ownerLimit": 0,
      "password": "string",
      "refreshMs": 1800000,
      "useDiscoveredCapacity": true,
      "username": "Fargo"
    },
    "retryWindowMs": 1800000,
    "streamBufferMs": 1800000,
    "userAgent": "string",
    "viewerAccess": "string"
  }
}
Schema
  • expectedRevisionintegerrequired
  • operationIdstringrequired
  • settingsobjectrequired
    • channelNumberingobjectrequired
      • modestringrequired
      • startAtintegerrequired
      • stepintegerrequired
    • enabledboolean
    • enabledChannelsarray of stringrequired
    • enabledGroupsarray of stringrequired
    • filtersobjectrequired
      • categoriesobjectrequired
        • modestringrequired
        • valuesarray of stringrequired
      • countriesobjectrequired
        • modestringrequired
        • valuesarray of stringrequired
      • keywordsobjectrequired
        • modestringrequired
        • valuesarray of stringrequired
    • guideSourceIdstringrequired
    • importLimitsobject | any | nullrequired
      • bytesintegerrequired
      • channelsintegerrequired
      • programmesintegerrequired
    • kindstringrequired
    • logoImportobjectrequired
      • enabledbooleanrequired
      • followServerboolean
      • overwriteExistingbooleanrequired
    • remoteobject
      • confirmedLanRootsarray of string
      • guideUrlstringrequired
      • guideUrlRedactedbooleanrequired
      • kindstringrequired
      • ownerLimitintegerrequired
      • passwordstring
      • refreshMsintegerrequired
      • useDiscoveredCapacitybooleanrequired
      • usernamestring
    • retryWindowMsinteger | any | nullrequired
    • streamBufferMsinteger | any | nullrequired
    • userAgentstringrequired
    • viewerAccessstring

Responses

200Successapplication/json

Example
{
  "protocolVersion": "string",
  "result": {
    "acquisition": "string",
    "availableKinds": [
      "string"
    ],
    "digest": "string",
    "effective": {
      "discoveryEnabled": true,
      "guideDays": 0,
      "importLimits": {
        "bytes": 0,
        "channels": 0,
        "programmes": 0
      },
      "logoImport": true,
      "retryWindowMs": 1800000,
      "streamBufferMs": 1800000,
      "timeshiftMinutes": 0,
      "userAgent": "string"
    },
    "effectiveLogoImport": {
      "enabled": true,
      "overwriteExisting": true
    },
    "revision": 0,
    "settings": {
      "channelNumbering": {
        "mode": "string",
        "startAt": 0,
        "step": 0
      },
      "enabled": true,
      "enabledChannels": [
        "string"
      ],
      "enabledGroups": [
        "string"
      ],
      "filters": {
        "categories": {
          "mode": "string",
          "values": []
        },
        "countries": {
          "mode": "string",
          "values": []
        },
        "keywords": {
          "mode": "string",
          "values": []
        }
      },
      "guideSourceId": "id_8h2k4q",
      "importLimits": {
        "bytes": 0,
        "channels": 0,
        "programmes": 0
      },
      "kind": "string",
      "logoImport": {
        "enabled": true,
        "followServer": true,
        "overwriteExisting": true
      },
      "remote": {
        "confirmedLanRoots": [
          "string"
        ],
        "guideUrl": "https://example.com/…",
        "guideUrlRedacted": true,
        "kind": "string",
        "ownerLimit": 0,
        "password": "string",
        "refreshMs": 1800000,
        "useDiscoveredCapacity": true,
        "username": "Fargo"
      },
      "retryWindowMs": 1800000,
      "streamBufferMs": 1800000,
      "userAgent": "string",
      "viewerAccess": "string"
    },
    "sourceId": "id_8h2k4q",
    "sourceName": "Fargo",
    "tunerCount": 0
  },
  "serverId": "id_8h2k4q"
}
Schema
  • protocolVersionstringrequired
  • resultobjectrequired
    • acquisitionstringrequired
    • availableKindsarray of stringrequired
    • digeststringrequired
    • effectiveobjectrequired
      • discoveryEnabledbooleanrequired
      • guideDaysintegerrequired
      • importLimitsobjectrequired
        • bytesintegerrequired
        • channelsintegerrequired
        • programmesintegerrequired
      • logoImportbooleanrequired
      • retryWindowMsintegerrequired
      • streamBufferMsintegerrequired
      • timeshiftMinutesinteger
      • userAgentstringrequired
    • effectiveLogoImportobjectrequired
      • enabledbooleanrequired
      • overwriteExistingbooleanrequired
    • revisionintegerrequired
    • settingsobjectrequired
      • channelNumberingobjectrequired
        • modestringrequired
        • startAtintegerrequired
        • stepintegerrequired
      • enabledboolean
      • enabledChannelsarray of stringrequired
      • enabledGroupsarray of stringrequired
      • filtersobjectrequired
        • categoriesobjectrequired
          • modestringrequired
          • valuesarray of stringrequired
        • countriesobjectrequired
          • modestringrequired
          • valuesarray of stringrequired
        • keywordsobjectrequired
          • modestringrequired
          • valuesarray of stringrequired
      • guideSourceIdstringrequired
      • importLimitsobject | any | nullrequired
        • bytesintegerrequired
        • channelsintegerrequired
        • programmesintegerrequired
      • kindstringrequired
      • logoImportobjectrequired
        • enabledbooleanrequired
        • followServerboolean
        • overwriteExistingbooleanrequired
      • remoteobject
        • confirmedLanRootsarray of string
        • guideUrlstringrequired
        • guideUrlRedactedbooleanrequired
        • kindstringrequired
        • ownerLimitintegerrequired
        • passwordstring
        • refreshMsintegerrequired
        • useDiscoveredCapacitybooleanrequired
        • usernamestring
      • retryWindowMsinteger | any | nullrequired
      • streamBufferMsinteger | any | nullrequired
      • userAgentstringrequired
      • viewerAccessstring
    • sourceIdstringrequired
    • sourceNamestringrequired
    • tunerCountintegerrequired
  • serverIdstringrequired

defaultRequest refused or unavailableapplication/json

Example
{
  "error": {
    "code": "string",
    "message": "string"
  }
}
Schema
  • errorobjectrequired
    • codestringrequired
    • messagestringrequired

Error codesunauthorizednot_permittednot_foundinvalid_requestinvalid_channel_inputchannel_revision_conflictchannel_unavailablesource_lan_confirmation_requiredsource_network_policysource_credentials_requiredsource_unavailableinternalrevision_requiredidempotency_conflictreceipt_expiredinvalid_mutation_keydatabase_busywriter_capacity

Example request

curl -X PUT "http://127.0.0.1:32500/v1/admin/live-sources/{id}/configuration" \
  -H "Authorization: Bearer $PORTICO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "expectedRevision": 0,
  "operationId": "id_8h2k4q",
  "settings": {
    "channelNumbering": {
      "mode": "string",
      "startAt": 0,
      "step": 0
    },
    "enabled": true,
    "enabledChannels": [
      "string"
    ],
    "enabledGroups": [
      "string"
    ],
    "filters": {
      "categories": {
        "mode": "string",
        "values": [
          "string"
        ]
      },
      "countries": {
        "mode": "string",
        "values": [
          "string"
        ]
      },
      "keywords": {
        "mode": "string",
        "values": [
          "string"
        ]
      }
    },
    "guideSourceId": "id_8h2k4q",
    "importLimits": {
      "bytes": 0,
      "channels": 0,
      "programmes": 0
    },
    "kind": "string",
    "logoImport": {
      "enabled": true,
      "followServer": true,
      "overwriteExisting": true
    },
    "remote": {
      "confirmedLanRoots": [
        "string"
      ],
      "guideUrl": "https://example.com/…",
      "guideUrlRedacted": true,
      "kind": "string",
      "ownerLimit": 0,
      "password": "string",
      "refreshMs": 1800000,
      "useDiscoveredCapacity": true,
      "username": "Fargo"
    },
    "retryWindowMs": 1800000,
    "streamBufferMs": 1800000,
    "userAgent": "string",
    "viewerAccess": "string"
  }
}'
POST/v1/admin/live-sources/{id}/enabledRun server live sources enabledadmin
Audience
Clients · Native API
Authorization
API key or personal access token with the admin scope, or a signed-in session
OpenAPI operation ID
post_admin_live_sources_id_enabled
Max body
64 KiB

Parameters

NameInTypeDescription
idrequiredpathstring

Request body application/json · required

Example
{
  "enabled": true,
  "expectedRevision": 0,
  "requestId": "id_8h2k4q"
}
Schema
  • enabledboolean | any | nullrequired
  • expectedRevisionintegerrequired
  • requestIdstringrequired

Responses

200Successapplication/json

Example
{
  "protocolVersion": "string",
  "saved": true,
  "serverId": "id_8h2k4q"
}
Schema
  • protocolVersionstringrequired
  • savedbooleanrequired
  • serverIdstringrequired

defaultRequest refused or unavailableapplication/json

Example
{
  "error": {
    "code": "string",
    "message": "string"
  }
}
Schema
  • errorobjectrequired
    • codestringrequired
    • messagestringrequired

Error codesinvalid_requestunauthorizednot_permittednot_foundinternaldatabase_busywriter_capacity

Example request

curl -X POST "http://127.0.0.1:32500/v1/admin/live-sources/{id}/enabled" \
  -H "Authorization: Bearer $PORTICO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"enabled":true,"expectedRevision":0,"requestId":"id_8h2k4q"}'
POST/v1/admin/live-sources/{id}/logosRun server live sources logosadmin
Audience
Clients · Native API
Authorization
API key or personal access token with the admin scope, or a signed-in session
OpenAPI operation ID
post_admin_live_sources_id_logos
Max body
64 KiB

Parameters

NameInTypeDescription
idrequiredpathstring

Request body application/json · required

Example
{
  "operationId": "id_8h2k4q"
}
Schema
  • operationIdstringrequired

Responses

200Successapplication/json

Example
{
  "protocolVersion": "string",
  "result": {
    "imported": 0,
    "message": "string",
    "requested": 0,
    "skipped": 0,
    "sourceId": "id_8h2k4q"
  },
  "serverId": "id_8h2k4q"
}
Schema
  • protocolVersionstringrequired
  • resultobjectrequired
    • importedintegerrequired
    • messagestring
    • requestedintegerrequired
    • skippedintegerrequired
    • sourceIdstringrequired
  • serverIdstringrequired

defaultRequest refused or unavailableapplication/json

Example
{
  "error": {
    "code": "string",
    "message": "string"
  }
}
Schema
  • errorobjectrequired
    • codestringrequired
    • messagestringrequired

Error codesinvalid_requestunauthorizednot_permittednot_foundinternaldatabase_busywriter_capacity

Example request

curl -X POST "http://127.0.0.1:32500/v1/admin/live-sources/{id}/logos" \
  -H "Authorization: Bearer $PORTICO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"operationId":"id_8h2k4q"}'
POST/v1/admin/live-sources/{id}/refreshRun server live sources refreshadmin
Audience
Clients · Native API
Authorization
API key or personal access token with the admin scope, or a signed-in session
OpenAPI operation ID
post_admin_live_sources_id_refresh
Max body
64 KiB

Parameters

NameInTypeDescription
idrequiredpathstring

Request body application/json · required

Example
{
  "expectedRevision": 0
}
Schema
  • expectedRevisionintegerrequired

Responses

200Successapplication/json

Example
{
  "protocolVersion": "string",
  "scheduled": true,
  "serverId": "id_8h2k4q"
}
Schema
  • protocolVersionstringrequired
  • scheduledbooleanrequired
  • serverIdstringrequired

defaultRequest refused or unavailableapplication/json

Example
{
  "error": {
    "code": "string",
    "message": "string"
  }
}
Schema
  • errorobjectrequired
    • codestringrequired
    • messagestringrequired

Error codesinvalid_requestunauthorizednot_permittednot_foundinternaldatabase_busywriter_capacity

Example request

curl -X POST "http://127.0.0.1:32500/v1/admin/live-sources/{id}/refresh" \
  -H "Authorization: Bearer $PORTICO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"expectedRevision":0}'
POST/v1/admin/live-sources/{id}/removeRun server live sources removeadmin
Audience
Clients · Native API
Authorization
API key or personal access token with the admin scope, or a signed-in session
OpenAPI operation ID
post_admin_live_sources_id_remove
Max body
64 KiB

Parameters

NameInTypeDescription
idrequiredpathstring

Request body application/json · required

Example
{
  "expectedRevision": 0,
  "requestId": "id_8h2k4q"
}
Schema
  • expectedRevisionintegerrequired
  • requestIdstringrequired

Responses

200Successapplication/json

Example
{
  "protocolVersion": "string",
  "removed": true,
  "serverId": "id_8h2k4q"
}
Schema
  • protocolVersionstringrequired
  • removedbooleanrequired
  • serverIdstringrequired

defaultRequest refused or unavailableapplication/json

Example
{
  "error": {
    "code": "string",
    "message": "string"
  }
}
Schema
  • errorobjectrequired
    • codestringrequired
    • messagestringrequired

Error codesinvalid_requestunauthorizednot_permittednot_foundinternaldatabase_busywriter_capacity

Example request

curl -X POST "http://127.0.0.1:32500/v1/admin/live-sources/{id}/remove" \
  -H "Authorization: Bearer $PORTICO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"expectedRevision":0,"requestId":"id_8h2k4q"}'
POST/v1/admin/live-sources/discoverRun server live sources discoveradmin
Audience
Clients · Native API
Authorization
API key or personal access token with the admin scope, or a signed-in session
OpenAPI operation ID
post_admin_live_sources_discover
Max body
64 KiB

Request body application/json · required

Example
{
  "windowMs": 1800000
}
Schema
  • windowMsintegerrequired

Responses

200Successapplication/json

Example
{
  "protocolVersion": "string",
  "result": {
    "devices": [
      {
        "address": "string",
        "baseUrl": "https://example.com/…",
        "configured": true,
        "deviceId": "id_8h2k4q",
        "firmwareVersion": "string",
        "friendlyName": "Fargo",
        "lineupUrl": "https://example.com/…",
        "model": "string",
        "tunerCount": 0
      }
    ],
    "discoveryEnabled": true,
    "message": "string",
    "searchedFor": "string"
  },
  "serverId": "id_8h2k4q"
}
Schema
  • protocolVersionstringrequired
  • resultobjectrequired
    • devicesarray of objectrequired
      • addressstringrequired
      • baseUrlstringrequired
      • configuredbooleanrequired
      • deviceIdstringrequired
      • firmwareVersionstringrequired
      • friendlyNamestringrequired
      • lineupUrlstringrequired
      • modelstringrequired
      • tunerCountintegerrequired
    • discoveryEnabledbooleanrequired
    • messagestring
    • searchedForstringrequired
  • serverIdstringrequired

defaultRequest refused or unavailableapplication/json

Example
{
  "error": {
    "code": "string",
    "message": "string"
  }
}
Schema
  • errorobjectrequired
    • codestringrequired
    • messagestringrequired

Error codesinvalid_requestunauthorizednot_permittednot_foundinternaldatabase_busywriter_capacity

Example request

curl -X POST "http://127.0.0.1:32500/v1/admin/live-sources/discover" \
  -H "Authorization: Bearer $PORTICO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"windowMs":1800000}'
POST/v1/admin/live-sources/previewManage live source acquisition and guide settingsadmin
Audience
Clients · Native API
Authorization
API key or personal access token with the admin scope, or a signed-in session
OpenAPI operation ID
preview_live_source
Max body
48 MiB

Request body application/json · required

Example
{
  "enabledChannels": [
    "string"
  ],
  "enabledGroups": [
    "string"
  ],
  "expectedRevision": 0,
  "guide": "string",
  "id": "id_8h2k4q",
  "limits": {
    "bytes": 0,
    "channels": 0,
    "programmes": 0
  },
  "mappings": [
    {
      "channelKey": "string",
      "guideKey": "string"
    }
  ],
  "name": "Fargo",
  "playlist": "string",
  "requestId": "id_8h2k4q",
  "tunerCount": 0
}
Schema
  • enabledChannelsarray of string
  • enabledGroupsarray of string
  • expectedRevisionintegerrequired
  • guidestringrequired
  • idstringrequired
  • limitsobject
    • bytesintegerrequired
    • channelsintegerrequired
    • programmesintegerrequired
  • mappingsarray of object
    • channelKeystringrequired
    • guideKeystringrequired
  • namestringrequired
  • playliststringrequired
  • requestIdstringrequired
  • tunerCountintegerrequired

Responses

200Successapplication/json

Example
{
  "preview": {
    "availableEnd": "string",
    "availableStart": "string",
    "channels": 0,
    "diagnostics": {
      "adjustedProgrammes": 0,
      "examples": [
        "string"
      ],
      "skippedChannels": 0,
      "skippedProgrammes": 0
    },
    "names": [
      "Fargo"
    ],
    "programmes": 0
  },
  "protocolVersion": "string",
  "serverId": "id_8h2k4q"
}
Schema
  • previewobjectrequired
    • availableEndstringrequired
    • availableStartstringrequired
    • channelsintegerrequired
    • diagnosticsobjectrequired
      • adjustedProgrammesintegerrequired
      • examplesarray of stringrequired
      • skippedChannelsintegerrequired
      • skippedProgrammesintegerrequired
    • namesarray of stringrequired
    • programmesintegerrequired
  • protocolVersionstringrequired
  • serverIdstringrequired

defaultRequest refused or unavailableapplication/json

Example
{
  "error": {
    "code": "string",
    "message": "string"
  }
}
Schema
  • errorobjectrequired
    • codestringrequired
    • messagestringrequired

Error codesunauthorizednot_permittednot_foundinvalid_requestinvalid_channel_inputchannel_revision_conflictchannel_unavailablesource_lan_confirmation_requiredsource_network_policysource_credentials_requiredsource_unavailableinternaldatabase_busywriter_capacity

Example request

curl -X POST "http://127.0.0.1:32500/v1/admin/live-sources/preview" \
  -H "Authorization: Bearer $PORTICO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "enabledChannels": [
    "string"
  ],
  "enabledGroups": [
    "string"
  ],
  "expectedRevision": 0,
  "guide": "string",
  "id": "id_8h2k4q",
  "limits": {
    "bytes": 0,
    "channels": 0,
    "programmes": 0
  },
  "mappings": [
    {
      "channelKey": "string",
      "guideKey": "string"
    }
  ],
  "name": "Fargo",
  "playlist": "string",
  "requestId": "id_8h2k4q",
  "tunerCount": 0
}'
POST/v1/admin/live-sources/remote/previewManage live source acquisition and guide settingsadmin
Audience
Clients · Native API
Authorization
API key or personal access token with the admin scope, or a signed-in session
OpenAPI operation ID
preview_remote_live_source
Max body
8 MiB

Request body application/json · required

Example
{
  "confirmedLanRoots": [
    "string"
  ],
  "enabledChannels": [
    "string"
  ],
  "enabledGroups": [
    "string"
  ],
  "expectedRevision": 0,
  "guideUrl": "https://example.com/…",
  "id": "id_8h2k4q",
  "kind": "string",
  "locator": "string",
  "mappings": [
    {
      "channelKey": "string",
      "guideKey": "string"
    }
  ],
  "name": "Fargo",
  "ownerLimit": 0,
  "password": "string",
  "refreshMs": 1800000,
  "useDiscoveredCapacity": true,
  "username": "Fargo",
  "viewerAccess": "string"
}
Schema
  • confirmedLanRootsarray of stringrequired
  • enabledChannelsarray of string
  • enabledGroupsarray of string
  • expectedRevisionintegerrequired
  • guideUrlstringrequired
  • idstringrequired
  • kindstringrequired
  • locatorstringrequired
  • mappingsarray of objectrequired
    • channelKeystringrequired
    • guideKeystringrequired
  • namestringrequired
  • ownerLimitintegerrequired
  • passwordstringrequired
  • refreshMsintegerrequired
  • useDiscoveredCapacitybooleanrequired
  • usernamestringrequired
  • viewerAccessstringrequired

Responses

200Successapplication/json

Example
{
  "protocolVersion": "string",
  "remotePreview": {
    "capacityMode": "string",
    "discoveredCapacity": 0,
    "expiresAt": "2026-10-18T19:30:00Z",
    "mappingKeys": [
      {
        "channelKey": "string",
        "guideKey": "string",
        "name": "Fargo"
      }
    ],
    "preview": {
      "availableEnd": "string",
      "availableStart": "string",
      "channels": 0,
      "diagnostics": {
        "adjustedProgrammes": 0,
        "examples": [
          "string"
        ],
        "skippedChannels": 0,
        "skippedProgrammes": 0
      },
      "names": [
        "Fargo"
      ],
      "programmes": 0
    },
    "previewId": "id_8h2k4q"
  },
  "serverId": "id_8h2k4q"
}
Schema
  • protocolVersionstringrequired
  • remotePreviewobjectrequired
    • capacityModestringrequired
    • discoveredCapacityintegerrequired
    • expiresAtstringrequired
    • mappingKeysarray of objectrequired
      • channelKeystringrequired
      • guideKeystringrequired
      • namestringrequired
    • previewobjectrequired
      • availableEndstringrequired
      • availableStartstringrequired
      • channelsintegerrequired
      • diagnosticsobjectrequired
        • adjustedProgrammesintegerrequired
        • examplesarray of stringrequired
        • skippedChannelsintegerrequired
        • skippedProgrammesintegerrequired
      • namesarray of stringrequired
      • programmesintegerrequired
    • previewIdstringrequired
  • serverIdstringrequired

defaultRequest refused or unavailableapplication/json

Example
{
  "error": {
    "code": "string",
    "message": "string"
  }
}
Schema
  • errorobjectrequired
    • codestringrequired
    • messagestringrequired

Error codesunauthorizednot_permittednot_foundinvalid_requestinvalid_channel_inputchannel_revision_conflictchannel_unavailablesource_lan_confirmation_requiredsource_network_policysource_credentials_requiredsource_unavailableinternaldatabase_busywriter_capacity

Example request

curl -X POST "http://127.0.0.1:32500/v1/admin/live-sources/remote/preview" \
  -H "Authorization: Bearer $PORTICO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "confirmedLanRoots": [
    "string"
  ],
  "enabledChannels": [
    "string"
  ],
  "enabledGroups": [
    "string"
  ],
  "expectedRevision": 0,
  "guideUrl": "https://example.com/…",
  "id": "id_8h2k4q",
  "kind": "string",
  "locator": "string",
  "mappings": [
    {
      "channelKey": "string",
      "guideKey": "string"
    }
  ],
  "name": "Fargo",
  "ownerLimit": 0,
  "password": "string",
  "refreshMs": 1800000,
  "useDiscoveredCapacity": true,
  "username": "Fargo",
  "viewerAccess": "string"
}'
POST/v1/admin/live-sources/remote/saveManage live source acquisition and guide settingsadmin
Audience
Clients · Native API
Authorization
API key or personal access token with the admin scope, or a signed-in session
OpenAPI operation ID
publish_remote_live_source
Max body
4 KiB

Request body application/json · required

Example
{
  "previewId": "id_8h2k4q",
  "requestId": "id_8h2k4q"
}
Schema
  • previewIdstringrequired
  • requestIdstringrequired

Responses

200Successapplication/json

Example
{
  "protocolVersion": "string",
  "serverId": "id_8h2k4q",
  "source": {
    "acquisition": "string",
    "capacityKnown": true,
    "channels": 0,
    "deliveryValidation": "string",
    "diagnostics": {
      "adjustedProgrammes": 0,
      "examples": [
        "string"
      ],
      "skippedChannels": 0,
      "skippedProgrammes": 0
    },
    "generation": "string",
    "id": "id_8h2k4q",
    "name": "Fargo",
    "planningEstimate": 0,
    "programmes": 0,
    "publishedAt": "2026-10-18T19:30:00Z",
    "revision": 0,
    "state": "string",
    "tunerCount": 0,
    "tunerCountMode": "string"
  }
}
Schema
  • protocolVersionstringrequired
  • serverIdstringrequired
  • sourceobjectrequired
    • acquisitionstringrequired
    • capacityKnownbooleanrequired
    • channelsintegerrequired
    • deliveryValidationstringrequired
    • diagnosticsobjectrequired
      • adjustedProgrammesintegerrequired
      • examplesarray of stringrequired
      • skippedChannelsintegerrequired
      • skippedProgrammesintegerrequired
    • generationstringrequired
    • idstringrequired
    • namestringrequired
    • planningEstimateintegerrequired
    • programmesintegerrequired
    • publishedAtstringrequired
    • revisionintegerrequired
    • statestringrequired
    • tunerCountintegerrequired
    • tunerCountModestringrequired

defaultRequest refused or unavailableapplication/json

Example
{
  "error": {
    "code": "string",
    "message": "string"
  }
}
Schema
  • errorobjectrequired
    • codestringrequired
    • messagestringrequired

Error codesunauthorizednot_permittednot_foundinvalid_requestinvalid_channel_inputchannel_revision_conflictchannel_unavailablesource_lan_confirmation_requiredsource_network_policysource_credentials_requiredsource_unavailableinternaldatabase_busywriter_capacity

Example request

curl -X POST "http://127.0.0.1:32500/v1/admin/live-sources/remote/save" \
  -H "Authorization: Bearer $PORTICO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"previewId":"id_8h2k4q","requestId":"id_8h2k4q"}'