Dvr

Generated dvr operations.

GET/v1/dvrRead dvrread
Audience
Clients · Native API
Authorization
API key or personal access token with the read scope, or a signed-in session
OpenAPI operation ID
get_dvr

Parameters

NameInTypeDescription
cursorquerystring
limitqueryinteger | ""1–50
statequerystring
sortquerystring
groupquerystring

Responses

200Successapplication/json

Example
{
  "protocolVersion": "string",
  "result": {
    "captureAvailable": true,
    "captureUnavailableReason": "string",
    "deletionAvailable": true,
    "nextCursor": "eyJvIjoyMH0",
    "recordings": [
      {
        "bytes": 0,
        "channel": {
          "id": "id_8h2k4q",
          "mark": {},
          "name": "Fargo",
          "number": "string"
        },
        "conflicts": [
          {}
        ],
        "coverageEnd": "string",
        "coverageStart": "string",
        "durationMs": 1800000,
        "end": "string",
        "id": "id_8h2k4q",
        "itemId": "id_8h2k4q",
        "keep": true,
        "libraryId": "id_8h2k4q",
        "occurrence": {
          "channelId": "id_8h2k4q",
          "generation": "string",
          "programmeId": "id_8h2k4q",
          "sourceId": "id_8h2k4q"
        },
        "options": {
          "afterMs": 1800000,
          "beforeMs": 1800000,
          "episodeLimit": 0,
          "priority": 0,
          "retentionDays": 0
        },
        "overlaps": [
          {}
        ],
        "positionMs": 1800000,
        "programme": {
          "categories": [],
          "channelId": "id_8h2k4q",
          "description": "string",
          "end": "string",
          "episode": {},
          "episodeId": "id_8h2k4q",
          "flags": {},
          "id": "id_8h2k4q",
          "image": "string",
          "lineage": "string",
          "newEvidence": "string",
          "rating": {},
          "recordingId": "id_8h2k4q",
          "recordingState": "string",
          "seriesId": "id_8h2k4q",
          "starRating": "string",
          "start": "string",
          "subtitle": "Fargo",
          "title": "Fargo",
          "year": 0
        },
        "reason": "string",
        "revision": 0,
        "ruleId": "id_8h2k4q",
        "seriesId": "id_8h2k4q",
        "seriesTitle": "Fargo",
        "start": "string",
        "state": "string",
        "watched": true
      }
    ],
    "revision": 0,
    "rules": [
      {
        "config": {
          "allowedChannels": [],
          "blockedChannels": [],
          "blockedKeywords": [],
          "channelId": "id_8h2k4q",
          "enabled": true,
          "episodes": "string",
          "keywords": [],
          "matchKind": "string",
          "name": "Fargo",
          "options": {},
          "seriesId": "id_8h2k4q",
          "sourceId": "id_8h2k4q",
          "title": "Fargo"
        },
        "diagnostic": "string",
        "id": "id_8h2k4q",
        "reconcileState": "string",
        "revision": 0,
        "summary": {
          "channel": {},
          "conflicts": 0,
          "matchingTonight": 0,
          "next": {},
          "recorded": 0,
          "upcoming": 0
        },
        "updatedAt": "2026-10-18T19:30:00Z"
      }
    ],
    "usage": {
      "bytes": 0,
      "pendingDeleteBytes": 0,
      "recordings": 0
    }
  },
  "serverId": "id_8h2k4q"
}
Schema
  • protocolVersionstringrequired
  • resultobjectrequired
    • captureAvailablebooleanrequired
    • captureUnavailableReasonstringrequired
    • deletionAvailablebooleanrequired
    • nextCursorstringrequired
    • recordingsarray of objectrequired
      • bytesintegerrequired
      • channelobjectrequired
        • idstringrequired
        • markobject
          • seedstringrequired
          • textstringrequired
        • namestringrequired
        • numberstringrequired
      • conflictsarray of objectrequired
        • capacityintegerrequired
        • demandintegerrequired
        • endstringrequired
        • startstringrequired
      • coverageEndstringrequired
      • coverageStartstringrequired
      • durationMsintegerrequired
      • endstringrequired
      • idstringrequired
      • itemIdstringrequired
      • keepbooleanrequired
      • libraryIdstringrequired
      • occurrenceobjectrequired
        • channelIdstringrequired
        • generationstringrequired
        • programmeIdstringrequired
        • sourceIdstringrequired
      • optionsobjectrequired
        • afterMsintegerrequired
        • beforeMsintegerrequired
        • episodeLimitintegerrequired
        • priorityintegerrequired
        • retentionDaysintegerrequired
      • overlapsarray of objectrequired
        • channelobjectrequired
          • idstringrequired
          • markobject
            • seedstringrequired
            • textstringrequired
          • namestringrequired
          • numberstringrequired
        • endstringrequired
        • episodeobject
          • displaystring
          • numberinteger
          • seasoninteger
        • idstringrequired
        • priorityintegerrequired
        • ruleIdstringrequired
        • startstringrequired
        • statestringrequired
        • titlestringrequired
      • positionMsintegerrequired
      • programmeobjectrequired
        • categoriesarray of stringrequired
        • channelIdstringrequired
        • descriptionstring
        • endstringrequired
        • episodeobject
          • displaystring
          • numberinteger
          • seasoninteger
        • episodeIdstring
        • flagsobjectrequired
          • livebooleanrequired
          • newbooleanrequired
          • premierebooleanrequired
          • repeatbooleanrequired
        • idstringrequired
        • imagestring
        • lineagestringrequired
        • newEvidencestring
        • ratingobject
          • systemstringrequired
          • valuestringrequired
        • recordingIdstring
        • recordingStatestring
        • seriesIdstring
        • starRatingstring
        • startstringrequired
        • subtitlestring
        • titlestringrequired
        • yearinteger
      • reasonstringrequired
      • revisionintegerrequired
      • ruleIdstringrequired
      • seriesIdstring
      • seriesTitlestring
      • startstringrequired
      • statestringrequired
      • watchedboolean | any | nullrequired
    • revisionintegerrequired
    • rulesarray of objectrequired
      • configobjectrequired
        • allowedChannelsarray of stringrequired
        • blockedChannelsarray of stringrequired
        • blockedKeywordsarray of stringrequired
        • channelIdstringrequired
        • enabledbooleanrequired
        • episodesstringrequired
        • keywordsarray of stringrequired
        • matchKindstringrequired
        • namestringrequired
        • optionsobjectrequired
          • afterMsintegerrequired
          • beforeMsintegerrequired
          • episodeLimitintegerrequired
          • priorityintegerrequired
          • retentionDaysintegerrequired
        • seriesIdstringrequired
        • sourceIdstringrequired
        • titlestringrequired
      • diagnosticstringrequired
      • idstringrequired
      • reconcileStatestringrequired
      • revisionintegerrequired
      • summaryobjectrequired
        • channelobjectrequired
          • idstringrequired
          • markobject
            • seedstringrequired
            • textstringrequired
          • namestringrequired
          • numberstringrequired
        • conflictsintegerrequired
        • matchingTonightintegerrequired
        • nextobject
          • categoriesarray of stringrequired
          • channelIdstringrequired
          • descriptionstring
          • endstringrequired
          • episodeobject
            • displaystring
            • numberinteger
            • seasoninteger
          • episodeIdstring
          • flagsobjectrequired
            • livebooleanrequired
            • newbooleanrequired
            • premierebooleanrequired
            • repeatbooleanrequired
          • idstringrequired
          • imagestring
          • lineagestringrequired
          • newEvidencestring
          • ratingobject
            • systemstringrequired
            • valuestringrequired
          • recordingIdstring
          • recordingStatestring
          • seriesIdstring
          • starRatingstring
          • startstringrequired
          • subtitlestring
          • titlestringrequired
          • yearinteger
        • recordedintegerrequired
        • upcomingintegerrequired
      • updatedAtstringrequired
    • usageobjectrequired
      • bytesintegerrequired
      • pendingDeleteBytesintegerrequired
      • recordingsintegerrequired
  • 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/dvr" \
  -H "Authorization: Bearer $PORTICO_API_KEY"
GET/v1/dvr/channelsRead dvr channelsread
Audience
Clients · Native API
Authorization
API key or personal access token with the read scope, or a signed-in session
OpenAPI operation ID
get_dvr_channels

Parameters

NameInTypeDescription
cursorquerystring
searchquerystring
sourceIdquerystring

Responses

200Successapplication/json

Example
{
  "protocolVersion": "string",
  "result": {
    "channels": [
      {
        "id": "id_8h2k4q",
        "name": "Fargo",
        "number": "string"
      }
    ],
    "generation": "string",
    "nextCursor": "eyJvIjoyMH0"
  },
  "serverId": "id_8h2k4q"
}
Schema
  • protocolVersionstringrequired
  • resultobjectrequired
    • channelsarray of objectrequired
      • idstringrequired
      • namestringrequired
      • numberstringrequired
    • generationstringrequired
    • nextCursorstringrequired
  • 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/dvr/channels" \
  -H "Authorization: Bearer $PORTICO_API_KEY"
GET/v1/dvr/groupsRead recording groupsread
Audience
Clients · Native API
Authorization
API key or personal access token with the read scope, or a signed-in session
OpenAPI operation ID
get_dvr_groups

Parameters

NameInTypeDescription
sortquerystring
cursorquerystring
limitqueryinteger1–50

Responses

200Successapplication/json

Example
{
  "protocolVersion": "string",
  "result": {
    "groups": [
      {
        "exceptions": 0,
        "kept": 0,
        "key": "string",
        "latest": "string",
        "recording": {
          "bytes": 0,
          "channel": {},
          "conflicts": [],
          "coverageEnd": "string",
          "coverageStart": "string",
          "durationMs": 1800000,
          "end": "string",
          "id": "id_8h2k4q",
          "itemId": "id_8h2k4q",
          "keep": true,
          "libraryId": "id_8h2k4q",
          "occurrence": {},
          "options": {},
          "overlaps": [],
          "positionMs": 1800000,
          "programme": {},
          "reason": "string",
          "revision": 0,
          "ruleId": "id_8h2k4q",
          "seriesId": "id_8h2k4q",
          "seriesTitle": "Fargo",
          "start": "string",
          "state": "string",
          "watched": true
        },
        "recordings": 0,
        "title": "Fargo",
        "unwatched": 0
      }
    ],
    "nextCursor": "eyJvIjoyMH0",
    "revision": 0
  },
  "serverId": "id_8h2k4q"
}
Schema
  • protocolVersionstringrequired
  • resultobjectrequired
    • groupsarray of objectrequired
      • exceptionsintegerrequired
      • keptintegerrequired
      • keystringrequired
      • lateststringrequired
      • recordingobjectrequired
        • bytesintegerrequired
        • channelobjectrequired
          • idstringrequired
          • markobject
            • seedstringrequired
            • textstringrequired
          • namestringrequired
          • numberstringrequired
        • conflictsarray of objectrequired
          • capacityintegerrequired
          • demandintegerrequired
          • endstringrequired
          • startstringrequired
        • coverageEndstringrequired
        • coverageStartstringrequired
        • durationMsintegerrequired
        • endstringrequired
        • idstringrequired
        • itemIdstringrequired
        • keepbooleanrequired
        • libraryIdstringrequired
        • occurrenceobjectrequired
          • channelIdstringrequired
          • generationstringrequired
          • programmeIdstringrequired
          • sourceIdstringrequired
        • optionsobjectrequired
          • afterMsintegerrequired
          • beforeMsintegerrequired
          • episodeLimitintegerrequired
          • priorityintegerrequired
          • retentionDaysintegerrequired
        • overlapsarray of objectrequired
          • channelobjectrequired
            • idstringrequired
            • markobject
              • seedstringrequired
              • textstringrequired
            • namestringrequired
            • numberstringrequired
          • endstringrequired
          • episodeobject
            • displaystring
            • numberinteger
            • seasoninteger
          • idstringrequired
          • priorityintegerrequired
          • ruleIdstringrequired
          • startstringrequired
          • statestringrequired
          • titlestringrequired
        • positionMsintegerrequired
        • programmeobjectrequired
          • categoriesarray of stringrequired
          • channelIdstringrequired
          • descriptionstring
          • endstringrequired
          • episodeobject
            • displaystring
            • numberinteger
            • seasoninteger
          • episodeIdstring
          • flagsobjectrequired
            • livebooleanrequired
            • newbooleanrequired
            • premierebooleanrequired
            • repeatbooleanrequired
          • idstringrequired
          • imagestring
          • lineagestringrequired
          • newEvidencestring
          • ratingobject
            • systemstringrequired
            • valuestringrequired
          • recordingIdstring
          • recordingStatestring
          • seriesIdstring
          • starRatingstring
          • startstringrequired
          • subtitlestring
          • titlestringrequired
          • yearinteger
        • reasonstringrequired
        • revisionintegerrequired
        • ruleIdstringrequired
        • seriesIdstring
        • seriesTitlestring
        • startstringrequired
        • statestringrequired
        • watchedboolean | any | nullrequired
      • recordingsintegerrequired
      • titlestringrequired
      • unwatchedintegerrequired
    • nextCursorstringrequired
    • revisionintegerrequired
  • serverIdstringrequired

defaultRequest refused or unavailableapplication/json

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

Error codesinvalid_requestunauthorizednot_permittedinternaldatabase_busy

Example request

curl -X GET "http://127.0.0.1:32500/v1/dvr/groups" \
  -H "Authorization: Bearer $PORTICO_API_KEY"
POST/v1/dvr/recordingsRun dvr recordingsplayback
Audience
Clients · Native API
Authorization
API key or personal access token with the playback scope, or a signed-in session
OpenAPI operation ID
post_dvr_recordings
Max body
64 KiB

Request body application/json · required

Example
{
  "occurrence": {
    "channelId": "id_8h2k4q",
    "generation": "string",
    "programmeId": "id_8h2k4q",
    "sourceId": "id_8h2k4q"
  },
  "options": {
    "afterMs": 1800000,
    "beforeMs": 1800000,
    "episodeLimit": 0,
    "priority": 0,
    "retentionDays": 0
  },
  "requestId": "id_8h2k4q",
  "useDefaults": true
}
Schema
  • occurrenceobjectrequired
    • channelIdstringrequired
    • generationstringrequired
    • programmeIdstringrequired
    • sourceIdstringrequired
  • optionsobject | any | nullrequired
    • afterMsintegerrequired
    • beforeMsintegerrequired
    • episodeLimitintegerrequired
    • priorityintegerrequired
    • retentionDaysintegerrequired
  • requestIdstringrequired
  • useDefaultsbooleanrequired

Responses

200Successapplication/json

Example
{
  "protocolVersion": "string",
  "result": {
    "bytes": 0,
    "channel": {
      "id": "id_8h2k4q",
      "mark": {
        "seed": "string",
        "text": "string"
      },
      "name": "Fargo",
      "number": "string"
    },
    "conflicts": [
      {
        "capacity": 0,
        "demand": 0,
        "end": "string",
        "start": "string"
      }
    ],
    "coverageEnd": "string",
    "coverageStart": "string",
    "durationMs": 1800000,
    "end": "string",
    "id": "id_8h2k4q",
    "itemId": "id_8h2k4q",
    "keep": true,
    "libraryId": "id_8h2k4q",
    "occurrence": {
      "channelId": "id_8h2k4q",
      "generation": "string",
      "programmeId": "id_8h2k4q",
      "sourceId": "id_8h2k4q"
    },
    "options": {
      "afterMs": 1800000,
      "beforeMs": 1800000,
      "episodeLimit": 0,
      "priority": 0,
      "retentionDays": 0
    },
    "overlaps": [
      {
        "channel": {
          "id": "id_8h2k4q",
          "mark": {},
          "name": "Fargo",
          "number": "string"
        },
        "end": "string",
        "episode": {
          "display": "string",
          "number": 0,
          "season": 0
        },
        "id": "id_8h2k4q",
        "priority": 0,
        "ruleId": "id_8h2k4q",
        "start": "string",
        "state": "string",
        "title": "Fargo"
      }
    ],
    "positionMs": 1800000,
    "programme": {
      "categories": [
        "string"
      ],
      "channelId": "id_8h2k4q",
      "description": "string",
      "end": "string",
      "episode": {
        "display": "string",
        "number": 0,
        "season": 0
      },
      "episodeId": "id_8h2k4q",
      "flags": {
        "live": true,
        "new": true,
        "premiere": true,
        "repeat": true
      },
      "id": "id_8h2k4q",
      "image": "string",
      "lineage": "string",
      "newEvidence": "string",
      "rating": {
        "system": "string",
        "value": "string"
      },
      "recordingId": "id_8h2k4q",
      "recordingState": "string",
      "seriesId": "id_8h2k4q",
      "starRating": "string",
      "start": "string",
      "subtitle": "Fargo",
      "title": "Fargo",
      "year": 0
    },
    "reason": "string",
    "revision": 0,
    "ruleId": "id_8h2k4q",
    "seriesId": "id_8h2k4q",
    "seriesTitle": "Fargo",
    "start": "string",
    "state": "string",
    "watched": true
  },
  "serverId": "id_8h2k4q"
}
Schema
  • protocolVersionstringrequired
  • resultobjectrequired
    • bytesintegerrequired
    • channelobjectrequired
      • idstringrequired
      • markobject
        • seedstringrequired
        • textstringrequired
      • namestringrequired
      • numberstringrequired
    • conflictsarray of objectrequired
      • capacityintegerrequired
      • demandintegerrequired
      • endstringrequired
      • startstringrequired
    • coverageEndstringrequired
    • coverageStartstringrequired
    • durationMsintegerrequired
    • endstringrequired
    • idstringrequired
    • itemIdstringrequired
    • keepbooleanrequired
    • libraryIdstringrequired
    • occurrenceobjectrequired
      • channelIdstringrequired
      • generationstringrequired
      • programmeIdstringrequired
      • sourceIdstringrequired
    • optionsobjectrequired
      • afterMsintegerrequired
      • beforeMsintegerrequired
      • episodeLimitintegerrequired
      • priorityintegerrequired
      • retentionDaysintegerrequired
    • overlapsarray of objectrequired
      • channelobjectrequired
        • idstringrequired
        • markobject
          • seedstringrequired
          • textstringrequired
        • namestringrequired
        • numberstringrequired
      • endstringrequired
      • episodeobject
        • displaystring
        • numberinteger
        • seasoninteger
      • idstringrequired
      • priorityintegerrequired
      • ruleIdstringrequired
      • startstringrequired
      • statestringrequired
      • titlestringrequired
    • positionMsintegerrequired
    • programmeobjectrequired
      • categoriesarray of stringrequired
      • channelIdstringrequired
      • descriptionstring
      • endstringrequired
      • episodeobject
        • displaystring
        • numberinteger
        • seasoninteger
      • episodeIdstring
      • flagsobjectrequired
        • livebooleanrequired
        • newbooleanrequired
        • premierebooleanrequired
        • repeatbooleanrequired
      • idstringrequired
      • imagestring
      • lineagestringrequired
      • newEvidencestring
      • ratingobject
        • systemstringrequired
        • valuestringrequired
      • recordingIdstring
      • recordingStatestring
      • seriesIdstring
      • starRatingstring
      • startstringrequired
      • subtitlestring
      • titlestringrequired
      • yearinteger
    • reasonstringrequired
    • revisionintegerrequired
    • ruleIdstringrequired
    • seriesIdstring
    • seriesTitlestring
    • startstringrequired
    • statestringrequired
    • watchedboolean | any | nullrequired
  • 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/dvr/recordings" \
  -H "Authorization: Bearer $PORTICO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "occurrence": {
    "channelId": "id_8h2k4q",
    "generation": "string",
    "programmeId": "id_8h2k4q",
    "sourceId": "id_8h2k4q"
  },
  "options": {
    "afterMs": 1800000,
    "beforeMs": 1800000,
    "episodeLimit": 0,
    "priority": 0,
    "retentionDays": 0
  },
  "requestId": "id_8h2k4q",
  "useDefaults": true
}'
DELETE/v1/dvr/recordings/{id}Remove dvr recordingsplayback
Audience
Clients · Native API
Authorization
API key or personal access token with the playback scope, or a signed-in session
OpenAPI operation ID
delete_dvr_recordings_id
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",
  "result": {
    "bytes": 0,
    "channel": {
      "id": "id_8h2k4q",
      "mark": {
        "seed": "string",
        "text": "string"
      },
      "name": "Fargo",
      "number": "string"
    },
    "conflicts": [
      {
        "capacity": 0,
        "demand": 0,
        "end": "string",
        "start": "string"
      }
    ],
    "coverageEnd": "string",
    "coverageStart": "string",
    "durationMs": 1800000,
    "end": "string",
    "id": "id_8h2k4q",
    "itemId": "id_8h2k4q",
    "keep": true,
    "libraryId": "id_8h2k4q",
    "occurrence": {
      "channelId": "id_8h2k4q",
      "generation": "string",
      "programmeId": "id_8h2k4q",
      "sourceId": "id_8h2k4q"
    },
    "options": {
      "afterMs": 1800000,
      "beforeMs": 1800000,
      "episodeLimit": 0,
      "priority": 0,
      "retentionDays": 0
    },
    "overlaps": [
      {
        "channel": {
          "id": "id_8h2k4q",
          "mark": {},
          "name": "Fargo",
          "number": "string"
        },
        "end": "string",
        "episode": {
          "display": "string",
          "number": 0,
          "season": 0
        },
        "id": "id_8h2k4q",
        "priority": 0,
        "ruleId": "id_8h2k4q",
        "start": "string",
        "state": "string",
        "title": "Fargo"
      }
    ],
    "positionMs": 1800000,
    "programme": {
      "categories": [
        "string"
      ],
      "channelId": "id_8h2k4q",
      "description": "string",
      "end": "string",
      "episode": {
        "display": "string",
        "number": 0,
        "season": 0
      },
      "episodeId": "id_8h2k4q",
      "flags": {
        "live": true,
        "new": true,
        "premiere": true,
        "repeat": true
      },
      "id": "id_8h2k4q",
      "image": "string",
      "lineage": "string",
      "newEvidence": "string",
      "rating": {
        "system": "string",
        "value": "string"
      },
      "recordingId": "id_8h2k4q",
      "recordingState": "string",
      "seriesId": "id_8h2k4q",
      "starRating": "string",
      "start": "string",
      "subtitle": "Fargo",
      "title": "Fargo",
      "year": 0
    },
    "reason": "string",
    "revision": 0,
    "ruleId": "id_8h2k4q",
    "seriesId": "id_8h2k4q",
    "seriesTitle": "Fargo",
    "start": "string",
    "state": "string",
    "watched": true
  },
  "serverId": "id_8h2k4q"
}
Schema
  • protocolVersionstringrequired
  • resultobjectrequired
    • bytesintegerrequired
    • channelobjectrequired
      • idstringrequired
      • markobject
        • seedstringrequired
        • textstringrequired
      • namestringrequired
      • numberstringrequired
    • conflictsarray of objectrequired
      • capacityintegerrequired
      • demandintegerrequired
      • endstringrequired
      • startstringrequired
    • coverageEndstringrequired
    • coverageStartstringrequired
    • durationMsintegerrequired
    • endstringrequired
    • idstringrequired
    • itemIdstringrequired
    • keepbooleanrequired
    • libraryIdstringrequired
    • occurrenceobjectrequired
      • channelIdstringrequired
      • generationstringrequired
      • programmeIdstringrequired
      • sourceIdstringrequired
    • optionsobjectrequired
      • afterMsintegerrequired
      • beforeMsintegerrequired
      • episodeLimitintegerrequired
      • priorityintegerrequired
      • retentionDaysintegerrequired
    • overlapsarray of objectrequired
      • channelobjectrequired
        • idstringrequired
        • markobject
          • seedstringrequired
          • textstringrequired
        • namestringrequired
        • numberstringrequired
      • endstringrequired
      • episodeobject
        • displaystring
        • numberinteger
        • seasoninteger
      • idstringrequired
      • priorityintegerrequired
      • ruleIdstringrequired
      • startstringrequired
      • statestringrequired
      • titlestringrequired
    • positionMsintegerrequired
    • programmeobjectrequired
      • categoriesarray of stringrequired
      • channelIdstringrequired
      • descriptionstring
      • endstringrequired
      • episodeobject
        • displaystring
        • numberinteger
        • seasoninteger
      • episodeIdstring
      • flagsobjectrequired
        • livebooleanrequired
        • newbooleanrequired
        • premierebooleanrequired
        • repeatbooleanrequired
      • idstringrequired
      • imagestring
      • lineagestringrequired
      • newEvidencestring
      • ratingobject
        • systemstringrequired
        • valuestringrequired
      • recordingIdstring
      • recordingStatestring
      • seriesIdstring
      • starRatingstring
      • startstringrequired
      • subtitlestring
      • titlestringrequired
      • yearinteger
    • reasonstringrequired
    • revisionintegerrequired
    • ruleIdstringrequired
    • seriesIdstring
    • seriesTitlestring
    • startstringrequired
    • statestringrequired
    • watchedboolean | any | nullrequired
  • 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 DELETE "http://127.0.0.1:32500/v1/dvr/recordings/{id}" \
  -H "Authorization: Bearer $PORTICO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"expectedRevision":0,"requestId":"id_8h2k4q"}'
GET/v1/dvr/recordings/{id}Read dvr recordingsread
Audience
Clients · Native API
Authorization
API key or personal access token with the read scope, or a signed-in session
OpenAPI operation ID
get_dvr_recordings_id

Parameters

NameInTypeDescription
idrequiredpathstring
afterquerystring

Responses

200Successapplication/json

Example
{
  "protocolVersion": "string",
  "result": {
    "capacity": {
      "effective": 0,
      "known": true,
      "mode": "string",
      "planningEstimate": 0
    },
    "nextOverlap": "string",
    "overlaps": [
      {
        "channel": {
          "id": "id_8h2k4q",
          "mark": {},
          "name": "Fargo",
          "number": "string"
        },
        "end": "string",
        "episode": {
          "display": "string",
          "number": 0,
          "season": 0
        },
        "id": "id_8h2k4q",
        "priority": 0,
        "ruleId": "id_8h2k4q",
        "start": "string",
        "state": "string",
        "title": "Fargo"
      }
    ],
    "recording": {
      "bytes": 0,
      "channel": {
        "id": "id_8h2k4q",
        "mark": {
          "seed": "string",
          "text": "string"
        },
        "name": "Fargo",
        "number": "string"
      },
      "conflicts": [
        {
          "capacity": 0,
          "demand": 0,
          "end": "string",
          "start": "string"
        }
      ],
      "coverageEnd": "string",
      "coverageStart": "string",
      "durationMs": 1800000,
      "end": "string",
      "id": "id_8h2k4q",
      "itemId": "id_8h2k4q",
      "keep": true,
      "libraryId": "id_8h2k4q",
      "occurrence": {
        "channelId": "id_8h2k4q",
        "generation": "string",
        "programmeId": "id_8h2k4q",
        "sourceId": "id_8h2k4q"
      },
      "options": {
        "afterMs": 1800000,
        "beforeMs": 1800000,
        "episodeLimit": 0,
        "priority": 0,
        "retentionDays": 0
      },
      "overlaps": [
        {
          "channel": {},
          "end": "string",
          "episode": {},
          "id": "id_8h2k4q",
          "priority": 0,
          "ruleId": "id_8h2k4q",
          "start": "string",
          "state": "string",
          "title": "Fargo"
        }
      ],
      "positionMs": 1800000,
      "programme": {
        "categories": [
          "string"
        ],
        "channelId": "id_8h2k4q",
        "description": "string",
        "end": "string",
        "episode": {
          "display": "string",
          "number": 0,
          "season": 0
        },
        "episodeId": "id_8h2k4q",
        "flags": {
          "live": true,
          "new": true,
          "premiere": true,
          "repeat": true
        },
        "id": "id_8h2k4q",
        "image": "string",
        "lineage": "string",
        "newEvidence": "string",
        "rating": {
          "system": "string",
          "value": "string"
        },
        "recordingId": "id_8h2k4q",
        "recordingState": "string",
        "seriesId": "id_8h2k4q",
        "starRating": "string",
        "start": "string",
        "subtitle": "Fargo",
        "title": "Fargo",
        "year": 0
      },
      "reason": "string",
      "revision": 0,
      "ruleId": "id_8h2k4q",
      "seriesId": "id_8h2k4q",
      "seriesTitle": "Fargo",
      "start": "string",
      "state": "string",
      "watched": true
    }
  },
  "serverId": "id_8h2k4q"
}
Schema
  • protocolVersionstringrequired
  • resultobjectrequired
    • capacityobjectrequired
      • effectiveintegerrequired
      • knownbooleanrequired
      • modestringrequired
      • planningEstimateintegerrequired
    • nextOverlapstringrequired
    • overlapsarray of objectrequired
      • channelobjectrequired
        • idstringrequired
        • markobject
          • seedstringrequired
          • textstringrequired
        • namestringrequired
        • numberstringrequired
      • endstringrequired
      • episodeobject
        • displaystring
        • numberinteger
        • seasoninteger
      • idstringrequired
      • priorityintegerrequired
      • ruleIdstringrequired
      • startstringrequired
      • statestringrequired
      • titlestringrequired
    • recordingobjectrequired
      • bytesintegerrequired
      • channelobjectrequired
        • idstringrequired
        • markobject
          • seedstringrequired
          • textstringrequired
        • namestringrequired
        • numberstringrequired
      • conflictsarray of objectrequired
        • capacityintegerrequired
        • demandintegerrequired
        • endstringrequired
        • startstringrequired
      • coverageEndstringrequired
      • coverageStartstringrequired
      • durationMsintegerrequired
      • endstringrequired
      • idstringrequired
      • itemIdstringrequired
      • keepbooleanrequired
      • libraryIdstringrequired
      • occurrenceobjectrequired
        • channelIdstringrequired
        • generationstringrequired
        • programmeIdstringrequired
        • sourceIdstringrequired
      • optionsobjectrequired
        • afterMsintegerrequired
        • beforeMsintegerrequired
        • episodeLimitintegerrequired
        • priorityintegerrequired
        • retentionDaysintegerrequired
      • overlapsarray of objectrequired
        • channelobjectrequired
          • idstringrequired
          • markobject
            • seedstringrequired
            • textstringrequired
          • namestringrequired
          • numberstringrequired
        • endstringrequired
        • episodeobject
          • displaystring
          • numberinteger
          • seasoninteger
        • idstringrequired
        • priorityintegerrequired
        • ruleIdstringrequired
        • startstringrequired
        • statestringrequired
        • titlestringrequired
      • positionMsintegerrequired
      • programmeobjectrequired
        • categoriesarray of stringrequired
        • channelIdstringrequired
        • descriptionstring
        • endstringrequired
        • episodeobject
          • displaystring
          • numberinteger
          • seasoninteger
        • episodeIdstring
        • flagsobjectrequired
          • livebooleanrequired
          • newbooleanrequired
          • premierebooleanrequired
          • repeatbooleanrequired
        • idstringrequired
        • imagestring
        • lineagestringrequired
        • newEvidencestring
        • ratingobject
          • systemstringrequired
          • valuestringrequired
        • recordingIdstring
        • recordingStatestring
        • seriesIdstring
        • starRatingstring
        • startstringrequired
        • subtitlestring
        • titlestringrequired
        • yearinteger
      • reasonstringrequired
      • revisionintegerrequired
      • ruleIdstringrequired
      • seriesIdstring
      • seriesTitlestring
      • startstringrequired
      • statestringrequired
      • watchedboolean | any | nullrequired
  • 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/dvr/recordings/{id}" \
  -H "Authorization: Bearer $PORTICO_API_KEY"
PATCH/v1/dvr/recordings/{id}Change dvr recordingsplayback
Audience
Clients · Native API
Authorization
API key or personal access token with the playback scope, or a signed-in session
OpenAPI operation ID
patch_dvr_recordings_id
Max body
64 KiB

Parameters

NameInTypeDescription
idrequiredpathstring

Request body application/json · required

Example
{
  "expectedRevision": 0,
  "options": {
    "afterMs": 1800000,
    "beforeMs": 1800000,
    "episodeLimit": 0,
    "priority": 0,
    "retentionDays": 0
  },
  "requestId": "id_8h2k4q"
}
Schema
  • expectedRevisionintegerrequired
  • optionsobjectrequired
    • afterMsintegerrequired
    • beforeMsintegerrequired
    • episodeLimitintegerrequired
    • priorityintegerrequired
    • retentionDaysintegerrequired
  • requestIdstringrequired

Responses

200Successapplication/json

Example
{
  "protocolVersion": "string",
  "result": {
    "bytes": 0,
    "channel": {
      "id": "id_8h2k4q",
      "mark": {
        "seed": "string",
        "text": "string"
      },
      "name": "Fargo",
      "number": "string"
    },
    "conflicts": [
      {
        "capacity": 0,
        "demand": 0,
        "end": "string",
        "start": "string"
      }
    ],
    "coverageEnd": "string",
    "coverageStart": "string",
    "durationMs": 1800000,
    "end": "string",
    "id": "id_8h2k4q",
    "itemId": "id_8h2k4q",
    "keep": true,
    "libraryId": "id_8h2k4q",
    "occurrence": {
      "channelId": "id_8h2k4q",
      "generation": "string",
      "programmeId": "id_8h2k4q",
      "sourceId": "id_8h2k4q"
    },
    "options": {
      "afterMs": 1800000,
      "beforeMs": 1800000,
      "episodeLimit": 0,
      "priority": 0,
      "retentionDays": 0
    },
    "overlaps": [
      {
        "channel": {
          "id": "id_8h2k4q",
          "mark": {},
          "name": "Fargo",
          "number": "string"
        },
        "end": "string",
        "episode": {
          "display": "string",
          "number": 0,
          "season": 0
        },
        "id": "id_8h2k4q",
        "priority": 0,
        "ruleId": "id_8h2k4q",
        "start": "string",
        "state": "string",
        "title": "Fargo"
      }
    ],
    "positionMs": 1800000,
    "programme": {
      "categories": [
        "string"
      ],
      "channelId": "id_8h2k4q",
      "description": "string",
      "end": "string",
      "episode": {
        "display": "string",
        "number": 0,
        "season": 0
      },
      "episodeId": "id_8h2k4q",
      "flags": {
        "live": true,
        "new": true,
        "premiere": true,
        "repeat": true
      },
      "id": "id_8h2k4q",
      "image": "string",
      "lineage": "string",
      "newEvidence": "string",
      "rating": {
        "system": "string",
        "value": "string"
      },
      "recordingId": "id_8h2k4q",
      "recordingState": "string",
      "seriesId": "id_8h2k4q",
      "starRating": "string",
      "start": "string",
      "subtitle": "Fargo",
      "title": "Fargo",
      "year": 0
    },
    "reason": "string",
    "revision": 0,
    "ruleId": "id_8h2k4q",
    "seriesId": "id_8h2k4q",
    "seriesTitle": "Fargo",
    "start": "string",
    "state": "string",
    "watched": true
  },
  "serverId": "id_8h2k4q"
}
Schema
  • protocolVersionstringrequired
  • resultobjectrequired
    • bytesintegerrequired
    • channelobjectrequired
      • idstringrequired
      • markobject
        • seedstringrequired
        • textstringrequired
      • namestringrequired
      • numberstringrequired
    • conflictsarray of objectrequired
      • capacityintegerrequired
      • demandintegerrequired
      • endstringrequired
      • startstringrequired
    • coverageEndstringrequired
    • coverageStartstringrequired
    • durationMsintegerrequired
    • endstringrequired
    • idstringrequired
    • itemIdstringrequired
    • keepbooleanrequired
    • libraryIdstringrequired
    • occurrenceobjectrequired
      • channelIdstringrequired
      • generationstringrequired
      • programmeIdstringrequired
      • sourceIdstringrequired
    • optionsobjectrequired
      • afterMsintegerrequired
      • beforeMsintegerrequired
      • episodeLimitintegerrequired
      • priorityintegerrequired
      • retentionDaysintegerrequired
    • overlapsarray of objectrequired
      • channelobjectrequired
        • idstringrequired
        • markobject
          • seedstringrequired
          • textstringrequired
        • namestringrequired
        • numberstringrequired
      • endstringrequired
      • episodeobject
        • displaystring
        • numberinteger
        • seasoninteger
      • idstringrequired
      • priorityintegerrequired
      • ruleIdstringrequired
      • startstringrequired
      • statestringrequired
      • titlestringrequired
    • positionMsintegerrequired
    • programmeobjectrequired
      • categoriesarray of stringrequired
      • channelIdstringrequired
      • descriptionstring
      • endstringrequired
      • episodeobject
        • displaystring
        • numberinteger
        • seasoninteger
      • episodeIdstring
      • flagsobjectrequired
        • livebooleanrequired
        • newbooleanrequired
        • premierebooleanrequired
        • repeatbooleanrequired
      • idstringrequired
      • imagestring
      • lineagestringrequired
      • newEvidencestring
      • ratingobject
        • systemstringrequired
        • valuestringrequired
      • recordingIdstring
      • recordingStatestring
      • seriesIdstring
      • starRatingstring
      • startstringrequired
      • subtitlestring
      • titlestringrequired
      • yearinteger
    • reasonstringrequired
    • revisionintegerrequired
    • ruleIdstringrequired
    • seriesIdstring
    • seriesTitlestring
    • startstringrequired
    • statestringrequired
    • watchedboolean | any | nullrequired
  • 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 PATCH "http://127.0.0.1:32500/v1/dvr/recordings/{id}" \
  -H "Authorization: Bearer $PORTICO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"expectedRevision":0,"options":{"afterMs":1800000,"beforeMs":1800000,"episodeLimit":0,"priority":0,"retentionDays":0},"requestId":"id_8h2k4q"}'
POST/v1/dvr/recordings/{id}/cancelRun dvr recordings cancelplayback
Audience
Clients · Native API
Authorization
API key or personal access token with the playback scope, or a signed-in session
OpenAPI operation ID
post_dvr_recordings_id_cancel
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",
  "result": {
    "bytes": 0,
    "channel": {
      "id": "id_8h2k4q",
      "mark": {
        "seed": "string",
        "text": "string"
      },
      "name": "Fargo",
      "number": "string"
    },
    "conflicts": [
      {
        "capacity": 0,
        "demand": 0,
        "end": "string",
        "start": "string"
      }
    ],
    "coverageEnd": "string",
    "coverageStart": "string",
    "durationMs": 1800000,
    "end": "string",
    "id": "id_8h2k4q",
    "itemId": "id_8h2k4q",
    "keep": true,
    "libraryId": "id_8h2k4q",
    "occurrence": {
      "channelId": "id_8h2k4q",
      "generation": "string",
      "programmeId": "id_8h2k4q",
      "sourceId": "id_8h2k4q"
    },
    "options": {
      "afterMs": 1800000,
      "beforeMs": 1800000,
      "episodeLimit": 0,
      "priority": 0,
      "retentionDays": 0
    },
    "overlaps": [
      {
        "channel": {
          "id": "id_8h2k4q",
          "mark": {},
          "name": "Fargo",
          "number": "string"
        },
        "end": "string",
        "episode": {
          "display": "string",
          "number": 0,
          "season": 0
        },
        "id": "id_8h2k4q",
        "priority": 0,
        "ruleId": "id_8h2k4q",
        "start": "string",
        "state": "string",
        "title": "Fargo"
      }
    ],
    "positionMs": 1800000,
    "programme": {
      "categories": [
        "string"
      ],
      "channelId": "id_8h2k4q",
      "description": "string",
      "end": "string",
      "episode": {
        "display": "string",
        "number": 0,
        "season": 0
      },
      "episodeId": "id_8h2k4q",
      "flags": {
        "live": true,
        "new": true,
        "premiere": true,
        "repeat": true
      },
      "id": "id_8h2k4q",
      "image": "string",
      "lineage": "string",
      "newEvidence": "string",
      "rating": {
        "system": "string",
        "value": "string"
      },
      "recordingId": "id_8h2k4q",
      "recordingState": "string",
      "seriesId": "id_8h2k4q",
      "starRating": "string",
      "start": "string",
      "subtitle": "Fargo",
      "title": "Fargo",
      "year": 0
    },
    "reason": "string",
    "revision": 0,
    "ruleId": "id_8h2k4q",
    "seriesId": "id_8h2k4q",
    "seriesTitle": "Fargo",
    "start": "string",
    "state": "string",
    "watched": true
  },
  "serverId": "id_8h2k4q"
}
Schema
  • protocolVersionstringrequired
  • resultobjectrequired
    • bytesintegerrequired
    • channelobjectrequired
      • idstringrequired
      • markobject
        • seedstringrequired
        • textstringrequired
      • namestringrequired
      • numberstringrequired
    • conflictsarray of objectrequired
      • capacityintegerrequired
      • demandintegerrequired
      • endstringrequired
      • startstringrequired
    • coverageEndstringrequired
    • coverageStartstringrequired
    • durationMsintegerrequired
    • endstringrequired
    • idstringrequired
    • itemIdstringrequired
    • keepbooleanrequired
    • libraryIdstringrequired
    • occurrenceobjectrequired
      • channelIdstringrequired
      • generationstringrequired
      • programmeIdstringrequired
      • sourceIdstringrequired
    • optionsobjectrequired
      • afterMsintegerrequired
      • beforeMsintegerrequired
      • episodeLimitintegerrequired
      • priorityintegerrequired
      • retentionDaysintegerrequired
    • overlapsarray of objectrequired
      • channelobjectrequired
        • idstringrequired
        • markobject
          • seedstringrequired
          • textstringrequired
        • namestringrequired
        • numberstringrequired
      • endstringrequired
      • episodeobject
        • displaystring
        • numberinteger
        • seasoninteger
      • idstringrequired
      • priorityintegerrequired
      • ruleIdstringrequired
      • startstringrequired
      • statestringrequired
      • titlestringrequired
    • positionMsintegerrequired
    • programmeobjectrequired
      • categoriesarray of stringrequired
      • channelIdstringrequired
      • descriptionstring
      • endstringrequired
      • episodeobject
        • displaystring
        • numberinteger
        • seasoninteger
      • episodeIdstring
      • flagsobjectrequired
        • livebooleanrequired
        • newbooleanrequired
        • premierebooleanrequired
        • repeatbooleanrequired
      • idstringrequired
      • imagestring
      • lineagestringrequired
      • newEvidencestring
      • ratingobject
        • systemstringrequired
        • valuestringrequired
      • recordingIdstring
      • recordingStatestring
      • seriesIdstring
      • starRatingstring
      • startstringrequired
      • subtitlestring
      • titlestringrequired
      • yearinteger
    • reasonstringrequired
    • revisionintegerrequired
    • ruleIdstringrequired
    • seriesIdstring
    • seriesTitlestring
    • startstringrequired
    • statestringrequired
    • watchedboolean | any | nullrequired
  • 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/dvr/recordings/{id}/cancel" \
  -H "Authorization: Bearer $PORTICO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"expectedRevision":0,"requestId":"id_8h2k4q"}'
GET/v1/dvr/recordings/{id}/delete-previewRead dvr recordings delete previewread
Audience
Clients · Native API
Authorization
API key or personal access token with the read scope, or a signed-in session
OpenAPI operation ID
get_dvr_recordings_id_delete_preview

Parameters

NameInTypeDescription
idrequiredpathstring

Responses

200Successapplication/json

Example
{
  "protocolVersion": "string",
  "result": {
    "activeReaders": true,
    "bytes": 0,
    "keep": true,
    "recordingId": "id_8h2k4q",
    "result": "string",
    "revision": 0
  },
  "serverId": "id_8h2k4q"
}
Schema
  • protocolVersionstringrequired
  • resultobjectrequired
    • activeReadersbooleanrequired
    • bytesintegerrequired
    • keepbooleanrequired
    • recordingIdstringrequired
    • resultstringrequired
    • revisionintegerrequired
  • 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/dvr/recordings/{id}/delete-preview" \
  -H "Authorization: Bearer $PORTICO_API_KEY"
GET/v1/dvr/recordings/{id}/imageRead retained recording programme imageread
Audience
Clients · Native API
Authorization
API key or personal access token with the read scope, or a signed-in session
OpenAPI operation ID
get_dvr_recordings_id_image

Parameters

NameInTypeDescription
idrequiredpathstring
ldquerystring
sdquerystring
sizequerystring
wquerystring

Responses

200Successapplication/octet-stream

Example
"string"
Schema

string (binary)

defaultRequest refused or unavailableapplication/json

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

Error codesunauthorizednot_permittednot_foundinternaldatabase_busy

Example request

curl -X GET "http://127.0.0.1:32500/v1/dvr/recordings/{id}/image" \
  -H "Authorization: Bearer $PORTICO_API_KEY"
PUT/v1/dvr/recordings/{id}/keepSave dvr recordings keepplayback
Audience
Clients · Native API
Authorization
API key or personal access token with the playback scope, or a signed-in session
OpenAPI operation ID
put_dvr_recordings_id_keep
Max body
64 KiB

Parameters

NameInTypeDescription
idrequiredpathstring

Request body application/json · required

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

Responses

200Successapplication/json

Example
{
  "protocolVersion": "string",
  "result": {
    "bytes": 0,
    "channel": {
      "id": "id_8h2k4q",
      "mark": {
        "seed": "string",
        "text": "string"
      },
      "name": "Fargo",
      "number": "string"
    },
    "conflicts": [
      {
        "capacity": 0,
        "demand": 0,
        "end": "string",
        "start": "string"
      }
    ],
    "coverageEnd": "string",
    "coverageStart": "string",
    "durationMs": 1800000,
    "end": "string",
    "id": "id_8h2k4q",
    "itemId": "id_8h2k4q",
    "keep": true,
    "libraryId": "id_8h2k4q",
    "occurrence": {
      "channelId": "id_8h2k4q",
      "generation": "string",
      "programmeId": "id_8h2k4q",
      "sourceId": "id_8h2k4q"
    },
    "options": {
      "afterMs": 1800000,
      "beforeMs": 1800000,
      "episodeLimit": 0,
      "priority": 0,
      "retentionDays": 0
    },
    "overlaps": [
      {
        "channel": {
          "id": "id_8h2k4q",
          "mark": {},
          "name": "Fargo",
          "number": "string"
        },
        "end": "string",
        "episode": {
          "display": "string",
          "number": 0,
          "season": 0
        },
        "id": "id_8h2k4q",
        "priority": 0,
        "ruleId": "id_8h2k4q",
        "start": "string",
        "state": "string",
        "title": "Fargo"
      }
    ],
    "positionMs": 1800000,
    "programme": {
      "categories": [
        "string"
      ],
      "channelId": "id_8h2k4q",
      "description": "string",
      "end": "string",
      "episode": {
        "display": "string",
        "number": 0,
        "season": 0
      },
      "episodeId": "id_8h2k4q",
      "flags": {
        "live": true,
        "new": true,
        "premiere": true,
        "repeat": true
      },
      "id": "id_8h2k4q",
      "image": "string",
      "lineage": "string",
      "newEvidence": "string",
      "rating": {
        "system": "string",
        "value": "string"
      },
      "recordingId": "id_8h2k4q",
      "recordingState": "string",
      "seriesId": "id_8h2k4q",
      "starRating": "string",
      "start": "string",
      "subtitle": "Fargo",
      "title": "Fargo",
      "year": 0
    },
    "reason": "string",
    "revision": 0,
    "ruleId": "id_8h2k4q",
    "seriesId": "id_8h2k4q",
    "seriesTitle": "Fargo",
    "start": "string",
    "state": "string",
    "watched": true
  },
  "serverId": "id_8h2k4q"
}
Schema
  • protocolVersionstringrequired
  • resultobjectrequired
    • bytesintegerrequired
    • channelobjectrequired
      • idstringrequired
      • markobject
        • seedstringrequired
        • textstringrequired
      • namestringrequired
      • numberstringrequired
    • conflictsarray of objectrequired
      • capacityintegerrequired
      • demandintegerrequired
      • endstringrequired
      • startstringrequired
    • coverageEndstringrequired
    • coverageStartstringrequired
    • durationMsintegerrequired
    • endstringrequired
    • idstringrequired
    • itemIdstringrequired
    • keepbooleanrequired
    • libraryIdstringrequired
    • occurrenceobjectrequired
      • channelIdstringrequired
      • generationstringrequired
      • programmeIdstringrequired
      • sourceIdstringrequired
    • optionsobjectrequired
      • afterMsintegerrequired
      • beforeMsintegerrequired
      • episodeLimitintegerrequired
      • priorityintegerrequired
      • retentionDaysintegerrequired
    • overlapsarray of objectrequired
      • channelobjectrequired
        • idstringrequired
        • markobject
          • seedstringrequired
          • textstringrequired
        • namestringrequired
        • numberstringrequired
      • endstringrequired
      • episodeobject
        • displaystring
        • numberinteger
        • seasoninteger
      • idstringrequired
      • priorityintegerrequired
      • ruleIdstringrequired
      • startstringrequired
      • statestringrequired
      • titlestringrequired
    • positionMsintegerrequired
    • programmeobjectrequired
      • categoriesarray of stringrequired
      • channelIdstringrequired
      • descriptionstring
      • endstringrequired
      • episodeobject
        • displaystring
        • numberinteger
        • seasoninteger
      • episodeIdstring
      • flagsobjectrequired
        • livebooleanrequired
        • newbooleanrequired
        • premierebooleanrequired
        • repeatbooleanrequired
      • idstringrequired
      • imagestring
      • lineagestringrequired
      • newEvidencestring
      • ratingobject
        • systemstringrequired
        • valuestringrequired
      • recordingIdstring
      • recordingStatestring
      • seriesIdstring
      • starRatingstring
      • startstringrequired
      • subtitlestring
      • titlestringrequired
      • yearinteger
    • reasonstringrequired
    • revisionintegerrequired
    • ruleIdstringrequired
    • seriesIdstring
    • seriesTitlestring
    • startstringrequired
    • statestringrequired
    • watchedboolean | any | nullrequired
  • 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/dvr/recordings/{id}/keep" \
  -H "Authorization: Bearer $PORTICO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"expectedRevision":0,"keep":true,"requestId":"id_8h2k4q"}'
DELETE/v1/dvr/rules/{id}Remove dvr rulesplayback
Audience
Clients · Native API
Authorization
API key or personal access token with the playback scope, or a signed-in session
OpenAPI operation ID
delete_dvr_rules_id
Max body
64 KiB

Parameters

NameInTypeDescription
idrequiredpathstring

Request body application/json · required

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

Responses

200Successapplication/json

Example
{
  "protocolVersion": "string",
  "result": {
    "key": true
  },
  "serverId": "id_8h2k4q"
}
Schema
  • protocolVersionstringrequired
  • resultobjectrequired
  • 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 DELETE "http://127.0.0.1:32500/v1/dvr/rules/{id}" \
  -H "Authorization: Bearer $PORTICO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"expectedRevision":0,"future":"string","requestId":"id_8h2k4q"}'
PUT/v1/dvr/rules/{id}Save dvr rulesplayback
Audience
Clients · Native API
Authorization
API key or personal access token with the playback scope, or a signed-in session
OpenAPI operation ID
put_dvr_rules_id
Max body
64 KiB

Parameters

NameInTypeDescription
idrequiredpathstring

Request body application/json · required

Example
{
  "anchor": {
    "channelId": "id_8h2k4q",
    "generation": "string",
    "programmeId": "id_8h2k4q",
    "sourceId": "id_8h2k4q"
  },
  "config": {
    "allowedChannels": [
      "string"
    ],
    "blockedChannels": [
      "string"
    ],
    "blockedKeywords": [
      "string"
    ],
    "channelId": "id_8h2k4q",
    "enabled": true,
    "episodes": "string",
    "keywords": [
      "string"
    ],
    "matchKind": "string",
    "name": "Fargo",
    "options": {
      "afterMs": 1800000,
      "beforeMs": 1800000,
      "episodeLimit": 0,
      "priority": 0,
      "retentionDays": 0
    },
    "seriesId": "id_8h2k4q",
    "sourceId": "id_8h2k4q",
    "title": "Fargo"
  },
  "expectedRevision": 0,
  "id": "id_8h2k4q",
  "requestId": "id_8h2k4q",
  "useDefaults": true
}
Schema
  • anchorobjectrequired
    • channelIdstringrequired
    • generationstringrequired
    • programmeIdstringrequired
    • sourceIdstringrequired
  • configobjectrequired
    • allowedChannelsarray of stringrequired
    • blockedChannelsarray of stringrequired
    • blockedKeywordsarray of stringrequired
    • channelIdstringrequired
    • enabledbooleanrequired
    • episodesstringrequired
    • keywordsarray of stringrequired
    • matchKindstringrequired
    • namestringrequired
    • optionsobjectrequired
      • afterMsintegerrequired
      • beforeMsintegerrequired
      • episodeLimitintegerrequired
      • priorityintegerrequired
      • retentionDaysintegerrequired
    • seriesIdstringrequired
    • sourceIdstringrequired
    • titlestringrequired
  • expectedRevisionintegerrequired
  • idstringrequired
  • requestIdstringrequired
  • useDefaultsbooleanrequired

Responses

200Successapplication/json

Example
{
  "protocolVersion": "string",
  "result": {
    "config": {
      "allowedChannels": [
        "string"
      ],
      "blockedChannels": [
        "string"
      ],
      "blockedKeywords": [
        "string"
      ],
      "channelId": "id_8h2k4q",
      "enabled": true,
      "episodes": "string",
      "keywords": [
        "string"
      ],
      "matchKind": "string",
      "name": "Fargo",
      "options": {
        "afterMs": 1800000,
        "beforeMs": 1800000,
        "episodeLimit": 0,
        "priority": 0,
        "retentionDays": 0
      },
      "seriesId": "id_8h2k4q",
      "sourceId": "id_8h2k4q",
      "title": "Fargo"
    },
    "diagnostic": "string",
    "id": "id_8h2k4q",
    "reconcileState": "string",
    "revision": 0,
    "summary": {
      "channel": {
        "id": "id_8h2k4q",
        "mark": {
          "seed": "string",
          "text": "string"
        },
        "name": "Fargo",
        "number": "string"
      },
      "conflicts": 0,
      "matchingTonight": 0,
      "next": {
        "categories": [
          "string"
        ],
        "channelId": "id_8h2k4q",
        "description": "string",
        "end": "string",
        "episode": {
          "display": "string",
          "number": 0,
          "season": 0
        },
        "episodeId": "id_8h2k4q",
        "flags": {
          "live": true,
          "new": true,
          "premiere": true,
          "repeat": true
        },
        "id": "id_8h2k4q",
        "image": "string",
        "lineage": "string",
        "newEvidence": "string",
        "rating": {
          "system": "string",
          "value": "string"
        },
        "recordingId": "id_8h2k4q",
        "recordingState": "string",
        "seriesId": "id_8h2k4q",
        "starRating": "string",
        "start": "string",
        "subtitle": "Fargo",
        "title": "Fargo",
        "year": 0
      },
      "recorded": 0,
      "upcoming": 0
    },
    "updatedAt": "2026-10-18T19:30:00Z"
  },
  "serverId": "id_8h2k4q"
}
Schema
  • protocolVersionstringrequired
  • resultobjectrequired
    • configobjectrequired
      • allowedChannelsarray of stringrequired
      • blockedChannelsarray of stringrequired
      • blockedKeywordsarray of stringrequired
      • channelIdstringrequired
      • enabledbooleanrequired
      • episodesstringrequired
      • keywordsarray of stringrequired
      • matchKindstringrequired
      • namestringrequired
      • optionsobjectrequired
        • afterMsintegerrequired
        • beforeMsintegerrequired
        • episodeLimitintegerrequired
        • priorityintegerrequired
        • retentionDaysintegerrequired
      • seriesIdstringrequired
      • sourceIdstringrequired
      • titlestringrequired
    • diagnosticstringrequired
    • idstringrequired
    • reconcileStatestringrequired
    • revisionintegerrequired
    • summaryobjectrequired
      • channelobjectrequired
        • idstringrequired
        • markobject
          • seedstringrequired
          • textstringrequired
        • namestringrequired
        • numberstringrequired
      • conflictsintegerrequired
      • matchingTonightintegerrequired
      • nextobject
        • categoriesarray of stringrequired
        • channelIdstringrequired
        • descriptionstring
        • endstringrequired
        • episodeobject
          • displaystring
          • numberinteger
          • seasoninteger
        • episodeIdstring
        • flagsobjectrequired
          • livebooleanrequired
          • newbooleanrequired
          • premierebooleanrequired
          • repeatbooleanrequired
        • idstringrequired
        • imagestring
        • lineagestringrequired
        • newEvidencestring
        • ratingobject
          • systemstringrequired
          • valuestringrequired
        • recordingIdstring
        • recordingStatestring
        • seriesIdstring
        • starRatingstring
        • startstringrequired
        • subtitlestring
        • titlestringrequired
        • yearinteger
      • recordedintegerrequired
      • upcomingintegerrequired
    • updatedAtstringrequired
  • 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/dvr/rules/{id}" \
  -H "Authorization: Bearer $PORTICO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "anchor": {
    "channelId": "id_8h2k4q",
    "generation": "string",
    "programmeId": "id_8h2k4q",
    "sourceId": "id_8h2k4q"
  },
  "config": {
    "allowedChannels": [
      "string"
    ],
    "blockedChannels": [
      "string"
    ],
    "blockedKeywords": [
      "string"
    ],
    "channelId": "id_8h2k4q",
    "enabled": true,
    "episodes": "string",
    "keywords": [
      "string"
    ],
    "matchKind": "string",
    "name": "Fargo",
    "options": {
      "afterMs": 1800000,
      "beforeMs": 1800000,
      "episodeLimit": 0,
      "priority": 0,
      "retentionDays": 0
    },
    "seriesId": "id_8h2k4q",
    "sourceId": "id_8h2k4q",
    "title": "Fargo"
  },
  "expectedRevision": 0,
  "id": "id_8h2k4q",
  "requestId": "id_8h2k4q",
  "useDefaults": true
}'
POST/v1/dvr/rules/previewRun dvr rules previewplayback
Audience
Clients · Native API
Authorization
API key or personal access token with the playback scope, or a signed-in session
OpenAPI operation ID
post_dvr_rules_preview
Max body
64 KiB

Request body application/json · required

Example
{
  "allowedChannels": [
    "string"
  ],
  "blockedChannels": [
    "string"
  ],
  "blockedKeywords": [
    "string"
  ],
  "channelId": "id_8h2k4q",
  "enabled": true,
  "episodes": "string",
  "keywords": [
    "string"
  ],
  "matchKind": "string",
  "name": "Fargo",
  "options": {
    "afterMs": 1800000,
    "beforeMs": 1800000,
    "episodeLimit": 0,
    "priority": 0,
    "retentionDays": 0
  },
  "seriesId": "id_8h2k4q",
  "sourceId": "id_8h2k4q",
  "title": "Fargo"
}
Schema
  • allowedChannelsarray of stringrequired
  • blockedChannelsarray of stringrequired
  • blockedKeywordsarray of stringrequired
  • channelIdstringrequired
  • enabledbooleanrequired
  • episodesstringrequired
  • keywordsarray of stringrequired
  • matchKindstringrequired
  • namestringrequired
  • optionsobjectrequired
    • afterMsintegerrequired
    • beforeMsintegerrequired
    • episodeLimitintegerrequired
    • priorityintegerrequired
    • retentionDaysintegerrequired
  • seriesIdstringrequired
  • sourceIdstringrequired
  • titlestringrequired

Responses

200Successapplication/json

Example
{
  "protocolVersion": "string",
  "result": {
    "capacity": {
      "effective": 0,
      "known": true,
      "mode": "string",
      "planningEstimate": 0
    },
    "generation": "string",
    "matches": 0,
    "sample": [
      {
        "categories": [
          "string"
        ],
        "channelId": "id_8h2k4q",
        "description": "string",
        "end": "string",
        "episode": {
          "display": "string",
          "number": 0,
          "season": 0
        },
        "episodeId": "id_8h2k4q",
        "flags": {
          "live": true,
          "new": true,
          "premiere": true,
          "repeat": true
        },
        "id": "id_8h2k4q",
        "image": "string",
        "lineage": "string",
        "newEvidence": "string",
        "rating": {
          "system": "string",
          "value": "string"
        },
        "recordingId": "id_8h2k4q",
        "recordingState": "string",
        "seriesId": "id_8h2k4q",
        "starRating": "string",
        "start": "string",
        "subtitle": "Fargo",
        "title": "Fargo",
        "year": 0
      }
    ],
    "unknownNewEvidence": 0
  },
  "serverId": "id_8h2k4q"
}
Schema
  • protocolVersionstringrequired
  • resultobjectrequired
    • capacityobjectrequired
      • effectiveintegerrequired
      • knownbooleanrequired
      • modestringrequired
      • planningEstimateintegerrequired
    • generationstringrequired
    • matchesintegerrequired
    • samplearray of objectrequired
      • categoriesarray of stringrequired
      • channelIdstringrequired
      • descriptionstring
      • endstringrequired
      • episodeobject
        • displaystring
        • numberinteger
        • seasoninteger
      • episodeIdstring
      • flagsobjectrequired
        • livebooleanrequired
        • newbooleanrequired
        • premierebooleanrequired
        • repeatbooleanrequired
      • idstringrequired
      • imagestring
      • lineagestringrequired
      • newEvidencestring
      • ratingobject
        • systemstringrequired
        • valuestringrequired
      • recordingIdstring
      • recordingStatestring
      • seriesIdstring
      • starRatingstring
      • startstringrequired
      • subtitlestring
      • titlestringrequired
      • yearinteger
    • unknownNewEvidenceintegerrequired
  • 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/dvr/rules/preview" \
  -H "Authorization: Bearer $PORTICO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "allowedChannels": [
    "string"
  ],
  "blockedChannels": [
    "string"
  ],
  "blockedKeywords": [
    "string"
  ],
  "channelId": "id_8h2k4q",
  "enabled": true,
  "episodes": "string",
  "keywords": [
    "string"
  ],
  "matchKind": "string",
  "name": "Fargo",
  "options": {
    "afterMs": 1800000,
    "beforeMs": 1800000,
    "episodeLimit": 0,
    "priority": 0,
    "retentionDays": 0
  },
  "seriesId": "id_8h2k4q",
  "sourceId": "id_8h2k4q",
  "title": "Fargo"
}'
GET/v1/dvr/storageRead dvr storageread
Audience
Clients · Native API
Authorization
API key or personal access token with the read scope, or a signed-in session
OpenAPI operation ID
get_dvr_storage

Responses

200Successapplication/json

Example
{
  "protocolVersion": "string",
  "result": {
    "captureAvailable": true,
    "forecastBytes": 0,
    "forecastDescription": "string",
    "forecastHours": 0,
    "measurement": {
      "freeBytes": 0,
      "measuredAt": "2026-10-18T19:30:00Z",
      "reservedBytes": 0,
      "usedBytes": 0,
      "writeHealthy": true
    },
    "pendingDeleteBytes": 0,
    "policy": {
      "capBytes": 0,
      "episodeLimit": 0,
      "floorBytes": 0,
      "retentionDays": 0,
      "revision": 0
    },
    "warning": "string"
  },
  "serverId": "id_8h2k4q"
}
Schema
  • protocolVersionstringrequired
  • resultobjectrequired
    • captureAvailablebooleanrequired
    • forecastBytesintegerrequired
    • forecastDescriptionstringrequired
    • forecastHoursintegerrequired
    • measurementobjectrequired
      • freeBytesintegerrequired
      • measuredAtstringrequired
      • reservedBytesintegerrequired
      • usedBytesintegerrequired
      • writeHealthybooleanrequired
    • pendingDeleteBytesintegerrequired
    • policyobjectrequired
      • capBytesintegerrequired
      • episodeLimitintegerrequired
      • floorBytesintegerrequired
      • retentionDaysintegerrequired
      • revisionintegerrequired
    • warningstringrequired
  • 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/dvr/storage" \
  -H "Authorization: Bearer $PORTICO_API_KEY"
PUT/v1/dvr/storageSave dvr storageadmin
Audience
Clients · Native API
Authorization
API key or personal access token with the admin scope, or a signed-in session
OpenAPI operation ID
put_dvr_storage
Max body
64 KiB

Request body application/json · required

Example
{
  "expectedRevision": 0,
  "policy": {
    "capBytes": 0,
    "episodeLimit": 0,
    "floorBytes": 0,
    "retentionDays": 0,
    "revision": 0
  },
  "requestId": "id_8h2k4q"
}
Schema
  • expectedRevisionintegerrequired
  • policyobjectrequired
    • capBytesintegerrequired
    • episodeLimitintegerrequired
    • floorBytesintegerrequired
    • retentionDaysintegerrequired
    • revisionintegerrequired
  • requestIdstringrequired

Responses

200Successapplication/json

Example
{
  "protocolVersion": "string",
  "result": {
    "capBytes": 0,
    "episodeLimit": 0,
    "floorBytes": 0,
    "retentionDays": 0,
    "revision": 0
  },
  "serverId": "id_8h2k4q"
}
Schema
  • protocolVersionstringrequired
  • resultobjectrequired
    • capBytesintegerrequired
    • episodeLimitintegerrequired
    • floorBytesintegerrequired
    • retentionDaysintegerrequired
    • revisionintegerrequired
  • 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/dvr/storage" \
  -H "Authorization: Bearer $PORTICO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"expectedRevision":0,"policy":{"capBytes":0,"episodeLimit":0,"floorBytes":0,"retentionDays":0,"revision":0},"requestId":"id_8h2k4q"}'
GET/v1/dvr/summaryRead recording summaryread
Audience
Clients · Native API
Authorization
API key or personal access token with the read scope, or a signed-in session
OpenAPI operation ID
get_dvr_summary

Responses

200Successapplication/json

Example
{
  "protocolVersion": "string",
  "result": {
    "conflicts": 0,
    "groups": 0,
    "recorded": 0,
    "rules": 0,
    "unwatched": 0,
    "upcoming": 0
  },
  "serverId": "id_8h2k4q"
}
Schema
  • protocolVersionstringrequired
  • resultobjectrequired
    • conflictsintegerrequired
    • groupsintegerrequired
    • recordedintegerrequired
    • rulesintegerrequired
    • unwatchedintegerrequired
    • upcomingintegerrequired
  • serverIdstringrequired

defaultRequest refused or unavailableapplication/json

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

Error codesinvalid_requestunauthorizednot_permittedinternaldatabase_busy

Example request

curl -X GET "http://127.0.0.1:32500/v1/dvr/summary" \
  -H "Authorization: Bearer $PORTICO_API_KEY"