Admin Dvr

Generated admin dvr operations.

GET/v1/admin/dvr/recording-groupsRead server dvr recording groupsadmin
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_dvr_recording_groups

Parameters

NameInTypeDescription
cursorquerystring
limitqueryinteger | ""1–200

Responses

200Successapplication/json

Example
{
  "protocolVersion": "string",
  "result": {
    "items": [
      {
        "createdAt": "2026-10-18T19:30:00Z",
        "enabled": true,
        "id": "id_8h2k4q",
        "kind": "string",
        "match": "string",
        "name": "Fargo",
        "options": {
          "folderTemplate": "string",
          "keepPolicy": {},
          "newEpisodesOnly": true,
          "postPaddingMs": 1800000,
          "prePaddingMs": 1800000,
          "priority": 0
        },
        "owner": {
          "accountId": "id_8h2k4q",
          "authority": "string",
          "profileId": "id_8h2k4q"
        },
        "revision": 0,
        "sourceId": "id_8h2k4q",
        "status": "string",
        "updatedAt": "2026-10-18T19:30:00Z"
      }
    ],
    "nextCursor": "eyJvIjoyMH0"
  },
  "serverId": "id_8h2k4q"
}
Schema
  • protocolVersionstringrequired
  • resultobjectrequired
    • itemsarray of objectrequired
      • createdAtstringrequired
      • enabledbooleanrequired
      • idstringrequired
      • kindstringrequired
      • matchstringrequired
      • namestringrequired
      • optionsobjectrequired
        • folderTemplatestringrequired
        • keepPolicyobject | any | nullrequired
          • keepCountintegerrequired
          • keepDaysintegerrequired
          • keepUntilWatchedbooleanrequired
          • modestringrequired
        • newEpisodesOnlybooleanrequired
        • postPaddingMsinteger | any | nullrequired
        • prePaddingMsinteger | any | nullrequired
        • priorityintegerrequired
      • ownerobjectrequired
        • accountIdstringrequired
        • authoritystringrequired
        • profileIdstringrequired
      • revisionintegerrequired
      • sourceIdstringrequired
      • statusstringrequired
      • updatedAtstringrequired
    • 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/admin/dvr/recording-groups" \
  -H "Authorization: Bearer $PORTICO_API_KEY"
POST/v1/admin/dvr/recording-groupsRun server dvr recording groupsadmin
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_dvr_recording_groups
Max body
64 KiB

Request body application/json · required

Example
{
  "anchor": {
    "channelId": "id_8h2k4q",
    "generation": "string",
    "programmeId": "id_8h2k4q",
    "sourceId": "id_8h2k4q"
  },
  "enabled": true,
  "expectedRevision": 0,
  "kind": "string",
  "match": "string",
  "name": "Fargo",
  "operationId": "id_8h2k4q",
  "options": {
    "folderTemplate": "string",
    "keepPolicy": {
      "keepCount": 0,
      "keepDays": 0,
      "keepUntilWatched": true,
      "mode": "string"
    },
    "newEpisodesOnly": true,
    "postPaddingMs": 1800000,
    "prePaddingMs": 1800000,
    "priority": 0
  },
  "owner": {
    "accountId": "id_8h2k4q",
    "authority": "string",
    "profileId": "id_8h2k4q"
  },
  "sourceId": "id_8h2k4q"
}
Schema
  • anchorobjectrequired
    • channelIdstringrequired
    • generationstringrequired
    • programmeIdstringrequired
    • sourceIdstringrequired
  • enabledbooleanrequired
  • expectedRevisionintegerrequired
  • kindstringrequired
  • matchstringrequired
  • namestringrequired
  • operationIdstringrequired
  • optionsobjectrequired
    • folderTemplatestringrequired
    • keepPolicyobject | any | nullrequired
      • keepCountintegerrequired
      • keepDaysintegerrequired
      • keepUntilWatchedbooleanrequired
      • modestringrequired
    • newEpisodesOnlybooleanrequired
    • postPaddingMsinteger | any | nullrequired
    • prePaddingMsinteger | any | nullrequired
    • priorityintegerrequired
  • ownerobjectrequired
    • accountIdstringrequired
    • authoritystringrequired
    • profileIdstringrequired
  • sourceIdstringrequired

Responses

200Successapplication/json

Example
{
  "protocolVersion": "string",
  "result": {
    "createdAt": "2026-10-18T19:30:00Z",
    "enabled": true,
    "id": "id_8h2k4q",
    "kind": "string",
    "match": "string",
    "name": "Fargo",
    "options": {
      "folderTemplate": "string",
      "keepPolicy": {
        "keepCount": 0,
        "keepDays": 0,
        "keepUntilWatched": true,
        "mode": "string"
      },
      "newEpisodesOnly": true,
      "postPaddingMs": 1800000,
      "prePaddingMs": 1800000,
      "priority": 0
    },
    "owner": {
      "accountId": "id_8h2k4q",
      "authority": "string",
      "profileId": "id_8h2k4q"
    },
    "revision": 0,
    "sourceId": "id_8h2k4q",
    "status": "string",
    "updatedAt": "2026-10-18T19:30:00Z"
  },
  "serverId": "id_8h2k4q"
}
Schema
  • protocolVersionstringrequired
  • resultobjectrequired
    • createdAtstringrequired
    • enabledbooleanrequired
    • idstringrequired
    • kindstringrequired
    • matchstringrequired
    • namestringrequired
    • optionsobjectrequired
      • folderTemplatestringrequired
      • keepPolicyobject | any | nullrequired
        • keepCountintegerrequired
        • keepDaysintegerrequired
        • keepUntilWatchedbooleanrequired
        • modestringrequired
      • newEpisodesOnlybooleanrequired
      • postPaddingMsinteger | any | nullrequired
      • prePaddingMsinteger | any | nullrequired
      • priorityintegerrequired
    • ownerobjectrequired
      • accountIdstringrequired
      • authoritystringrequired
      • profileIdstringrequired
    • revisionintegerrequired
    • sourceIdstringrequired
    • statusstringrequired
    • 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 POST "http://127.0.0.1:32500/v1/admin/dvr/recording-groups" \
  -H "Authorization: Bearer $PORTICO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "anchor": {
    "channelId": "id_8h2k4q",
    "generation": "string",
    "programmeId": "id_8h2k4q",
    "sourceId": "id_8h2k4q"
  },
  "enabled": true,
  "expectedRevision": 0,
  "kind": "string",
  "match": "string",
  "name": "Fargo",
  "operationId": "id_8h2k4q",
  "options": {
    "folderTemplate": "string",
    "keepPolicy": {
      "keepCount": 0,
      "keepDays": 0,
      "keepUntilWatched": true,
      "mode": "string"
    },
    "newEpisodesOnly": true,
    "postPaddingMs": 1800000,
    "prePaddingMs": 1800000,
    "priority": 0
  },
  "owner": {
    "accountId": "id_8h2k4q",
    "authority": "string",
    "profileId": "id_8h2k4q"
  },
  "sourceId": "id_8h2k4q"
}'
DELETE/v1/admin/dvr/recording-groups/{id}Remove server dvr recording groupsadmin
Audience
Clients · Native API
Authorization
API key or personal access token with the admin scope, or a signed-in session
OpenAPI operation ID
delete_admin_dvr_recording_groups_id

Parameters

NameInTypeDescription
idrequiredpathstring

Responses

200Successapplication/json

Example
{
  "protocolVersion": "string",
  "result": {
    "deleted": true,
    "id": "id_8h2k4q"
  },
  "serverId": "id_8h2k4q"
}
Schema
  • protocolVersionstringrequired
  • resultobjectrequired
    • deletedbooleanrequired
    • idstringrequired
  • 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/admin/dvr/recording-groups/{id}" \
  -H "Authorization: Bearer $PORTICO_API_KEY"
PUT/v1/admin/dvr/recording-groups/{id}Save server dvr recording groupsadmin
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_dvr_recording_groups_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"
  },
  "enabled": true,
  "expectedRevision": 0,
  "kind": "string",
  "match": "string",
  "name": "Fargo",
  "operationId": "id_8h2k4q",
  "options": {
    "folderTemplate": "string",
    "keepPolicy": {
      "keepCount": 0,
      "keepDays": 0,
      "keepUntilWatched": true,
      "mode": "string"
    },
    "newEpisodesOnly": true,
    "postPaddingMs": 1800000,
    "prePaddingMs": 1800000,
    "priority": 0
  },
  "owner": {
    "accountId": "id_8h2k4q",
    "authority": "string",
    "profileId": "id_8h2k4q"
  },
  "sourceId": "id_8h2k4q"
}
Schema
  • anchorobjectrequired
    • channelIdstringrequired
    • generationstringrequired
    • programmeIdstringrequired
    • sourceIdstringrequired
  • enabledbooleanrequired
  • expectedRevisionintegerrequired
  • kindstringrequired
  • matchstringrequired
  • namestringrequired
  • operationIdstringrequired
  • optionsobjectrequired
    • folderTemplatestringrequired
    • keepPolicyobject | any | nullrequired
      • keepCountintegerrequired
      • keepDaysintegerrequired
      • keepUntilWatchedbooleanrequired
      • modestringrequired
    • newEpisodesOnlybooleanrequired
    • postPaddingMsinteger | any | nullrequired
    • prePaddingMsinteger | any | nullrequired
    • priorityintegerrequired
  • ownerobjectrequired
    • accountIdstringrequired
    • authoritystringrequired
    • profileIdstringrequired
  • sourceIdstringrequired

Responses

200Successapplication/json

Example
{
  "protocolVersion": "string",
  "result": {
    "createdAt": "2026-10-18T19:30:00Z",
    "enabled": true,
    "id": "id_8h2k4q",
    "kind": "string",
    "match": "string",
    "name": "Fargo",
    "options": {
      "folderTemplate": "string",
      "keepPolicy": {
        "keepCount": 0,
        "keepDays": 0,
        "keepUntilWatched": true,
        "mode": "string"
      },
      "newEpisodesOnly": true,
      "postPaddingMs": 1800000,
      "prePaddingMs": 1800000,
      "priority": 0
    },
    "owner": {
      "accountId": "id_8h2k4q",
      "authority": "string",
      "profileId": "id_8h2k4q"
    },
    "revision": 0,
    "sourceId": "id_8h2k4q",
    "status": "string",
    "updatedAt": "2026-10-18T19:30:00Z"
  },
  "serverId": "id_8h2k4q"
}
Schema
  • protocolVersionstringrequired
  • resultobjectrequired
    • createdAtstringrequired
    • enabledbooleanrequired
    • idstringrequired
    • kindstringrequired
    • matchstringrequired
    • namestringrequired
    • optionsobjectrequired
      • folderTemplatestringrequired
      • keepPolicyobject | any | nullrequired
        • keepCountintegerrequired
        • keepDaysintegerrequired
        • keepUntilWatchedbooleanrequired
        • modestringrequired
      • newEpisodesOnlybooleanrequired
      • postPaddingMsinteger | any | nullrequired
      • prePaddingMsinteger | any | nullrequired
      • priorityintegerrequired
    • ownerobjectrequired
      • accountIdstringrequired
      • authoritystringrequired
      • profileIdstringrequired
    • revisionintegerrequired
    • sourceIdstringrequired
    • statusstringrequired
    • 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/admin/dvr/recording-groups/{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"
  },
  "enabled": true,
  "expectedRevision": 0,
  "kind": "string",
  "match": "string",
  "name": "Fargo",
  "operationId": "id_8h2k4q",
  "options": {
    "folderTemplate": "string",
    "keepPolicy": {
      "keepCount": 0,
      "keepDays": 0,
      "keepUntilWatched": true,
      "mode": "string"
    },
    "newEpisodesOnly": true,
    "postPaddingMs": 1800000,
    "prePaddingMs": 1800000,
    "priority": 0
  },
  "owner": {
    "accountId": "id_8h2k4q",
    "authority": "string",
    "profileId": "id_8h2k4q"
  },
  "sourceId": "id_8h2k4q"
}'
GET/v1/admin/dvr/recording-ownersRead server dvr recording ownersadmin
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_dvr_recording_owners

Responses

200Successapplication/json

Example
{
  "protocolVersion": "string",
  "result": {
    "items": [
      {
        "accountName": "Fargo",
        "canRecord": true,
        "owner": {
          "accountId": "id_8h2k4q",
          "authority": "string",
          "profileId": "id_8h2k4q"
        },
        "profileName": "Fargo",
        "revision": 0
      }
    ],
    "nextCursor": "eyJvIjoyMH0"
  },
  "serverId": "id_8h2k4q"
}
Schema
  • protocolVersionstringrequired
  • resultobjectrequired
    • itemsarray of objectrequired
      • accountNamestringrequired
      • canRecordbooleanrequired
      • ownerobjectrequired
        • accountIdstringrequired
        • authoritystringrequired
        • profileIdstringrequired
      • profileNamestringrequired
      • revisionintegerrequired
    • 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/admin/dvr/recording-owners" \
  -H "Authorization: Bearer $PORTICO_API_KEY"
GET/v1/admin/dvr/recording-permissionsRead server dvr recording permissionsadmin
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_dvr_recording_permissions

Responses

200Successapplication/json

Example
{
  "protocolVersion": "string",
  "result": [
    {
      "enabled": true,
      "owner": {
        "accountId": "id_8h2k4q",
        "authority": "string",
        "profileId": "id_8h2k4q"
      },
      "revision": 0
    }
  ],
  "serverId": "id_8h2k4q"
}
Schema
  • protocolVersionstringrequired
  • resultarray of objectrequired
    • enabledbooleanrequired
    • ownerobjectrequired
      • accountIdstringrequired
      • authoritystringrequired
      • profileIdstringrequired
    • 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/admin/dvr/recording-permissions" \
  -H "Authorization: Bearer $PORTICO_API_KEY"
PUT/v1/admin/dvr/recording-permissionsSave server dvr recording permissionsadmin
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_dvr_recording_permissions
Max body
64 KiB

Request body application/json · required

Example
{
  "enabled": true,
  "owner": {
    "accountId": "id_8h2k4q",
    "authority": "string",
    "profileId": "id_8h2k4q"
  },
  "revision": 0
}
Schema
  • enabledbooleanrequired
  • ownerobjectrequired
    • accountIdstringrequired
    • authoritystringrequired
    • profileIdstringrequired
  • revisionintegerrequired

Responses

200Successapplication/json

Example
{
  "protocolVersion": "string",
  "result": {
    "enabled": true,
    "owner": {
      "accountId": "id_8h2k4q",
      "authority": "string",
      "profileId": "id_8h2k4q"
    },
    "revision": 0
  },
  "serverId": "id_8h2k4q"
}
Schema
  • protocolVersionstringrequired
  • resultobjectrequired
    • enabledbooleanrequired
    • ownerobjectrequired
      • accountIdstringrequired
      • authoritystringrequired
      • profileIdstringrequired
    • 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/admin/dvr/recording-permissions" \
  -H "Authorization: Bearer $PORTICO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"enabled":true,"owner":{"accountId":"id_8h2k4q","authority":"string","profileId":"id_8h2k4q"},"revision":0}'
GET/v1/admin/dvr/recording-rootRead requested and effective recording folderadmin
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_dvr_recording_root

Responses

200Successapplication/json

Example
{
  "effective": "",
  "operatorControlled": true,
  "pendingRestart": true,
  "requested": "",
  "revision": 1
}
Schema
  • effectivestringrequired
  • operatorControlledbooleanrequired
  • pendingRestartbooleanrequired
  • requestedstringrequired
  • revisionintegerrequired≥ 1

defaultRequest refused or unavailableapplication/json

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

Error codesunauthorizednot_permittednot_foundsign_in_kind_localsign_in_kind_porticofactor_setup_requiredpassword_change_requiredrevision_mismatchadministration_unavailableinternaldatabase_busy

Example request

curl -X GET "http://127.0.0.1:32500/v1/admin/dvr/recording-root" \
  -H "Authorization: Bearer $PORTICO_API_KEY"
PATCH/v1/admin/dvr/recording-rootRequest a recording folder for the next restartadmin
Audience
Clients · Native API
Authorization
API key or personal access token with the admin scope, or a signed-in session
OpenAPI operation ID
patch_admin_dvr_recording_root
Max body
16 KiB

Request body application/json · required

Example
{
  "expectedRevision": 1,
  "operationId": "id_8h2k4q",
  "path": "string"
}
Schema
  • expectedRevisionintegerrequired≥ 1
  • operationIdstringrequiredlength 1–160pattern ^[A-Za-z0-9_.-]+$
  • pathstringrequiredlength 1–1024pattern ^(?:/|[A-Za-z]:[\\/]|\\\\)[^\x00-\x1f\x7f-\x9f\u202a-\u202e\u2066-\u2069]*$

    Absolute, already-clean native filesystem path; at most 1024 UTF-8 bytes; no control or bidi override characters.

Responses

200Successapplication/json

Example
{
  "effective": "",
  "operatorControlled": true,
  "pendingRestart": true,
  "requested": "",
  "revision": 1
}
Schema
  • effectivestringrequired
  • operatorControlledbooleanrequired
  • pendingRestartbooleanrequired
  • requestedstringrequired
  • revisionintegerrequired≥ 1

defaultRequest refused or unavailableapplication/json

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

Error codesinvalid_requestrevision_requiredunauthorizednot_permittednot_foundsign_in_kind_localsign_in_kind_porticofactor_setup_requiredpassword_change_requiredidempotency_key_reusedrecording_root_request_expiredrevision_mismatchrate_limitedadministration_unavailableinternaldatabase_busywriter_capacity

Example request

curl -X PATCH "http://127.0.0.1:32500/v1/admin/dvr/recording-root" \
  -H "Authorization: Bearer $PORTICO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"expectedRevision":1,"operationId":"id_8h2k4q","path":"string"}'
GET/v1/admin/dvr/settingsRead server dvr 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_admin_dvr_settings

Responses

200Successapplication/json

Example
{
  "protocolVersion": "string",
  "result": {
    "digest": "string",
    "enumerations": {
      "key": [
        "string"
      ]
    },
    "folderTokens": [
      {
        "description": "string",
        "example": "string",
        "supportsPadding": true,
        "token": "string"
      }
    ],
    "revision": 0,
    "settings": {
      "conversion": {
        "deleteOriginal": true,
        "ladderId": "id_8h2k4q",
        "mode": "string"
      },
      "folderTemplate": "string",
      "keepPolicy": {
        "keepCount": 0,
        "keepDays": 0,
        "keepUntilWatched": true,
        "mode": "string"
      },
      "liveTunerConflict": "string",
      "movieFolderTemplate": "string",
      "postPaddingMs": 1800000,
      "prePaddingMs": 1800000,
      "recordingProfile": "string",
      "sidecars": {
        "fanart": true,
        "nfo": true,
        "poster": true,
        "thumbnail": true
      },
      "tunerPreference": "string"
    }
  },
  "serverId": "id_8h2k4q"
}
Schema
  • protocolVersionstringrequired
  • resultobjectrequired
    • digeststringrequired
    • enumerationsobjectrequired
    • folderTokensarray of objectrequired
      • descriptionstringrequired
      • examplestringrequired
      • supportsPaddingbooleanrequired
      • tokenstringrequired
    • revisionintegerrequired
    • settingsobjectrequired
      • conversionobjectrequired
        • deleteOriginalbooleanrequired
        • ladderIdstringrequired
        • modestringrequired
      • folderTemplatestringrequired
      • keepPolicyobjectrequired
        • keepCountintegerrequired
        • keepDaysintegerrequired
        • keepUntilWatchedbooleanrequired
        • modestringrequired
      • liveTunerConflictstringrequired
      • movieFolderTemplatestringrequired
      • postPaddingMsintegerrequired
      • prePaddingMsintegerrequired
      • recordingProfilestringrequired
      • sidecarsobjectrequired
        • fanartbooleanrequired
        • nfobooleanrequired
        • posterbooleanrequired
        • thumbnailbooleanrequired
      • tunerPreferencestringrequired
  • 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/dvr/settings" \
  -H "Authorization: Bearer $PORTICO_API_KEY"
PUT/v1/admin/dvr/settingsSave server dvr settingsadmin
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_dvr_settings
Max body
64 KiB

Parameters

NameInTypeDescription
Idempotency-Keyheaderstring
Portico-Mutation-Rootheaderstring

Request body application/json · required

Example
{
  "expectedRevision": 0,
  "operationId": "id_8h2k4q",
  "settings": {
    "conversion": {
      "deleteOriginal": true,
      "ladderId": "id_8h2k4q",
      "mode": "string"
    },
    "folderTemplate": "string",
    "keepPolicy": {
      "keepCount": 0,
      "keepDays": 0,
      "keepUntilWatched": true,
      "mode": "string"
    },
    "liveTunerConflict": "string",
    "movieFolderTemplate": "string",
    "postPaddingMs": 1800000,
    "prePaddingMs": 1800000,
    "recordingProfile": "string",
    "sidecars": {
      "fanart": true,
      "nfo": true,
      "poster": true,
      "thumbnail": true
    },
    "tunerPreference": "string"
  }
}
Schema
  • expectedRevisionintegerrequired
  • operationIdstringrequired
  • settingsobjectrequired
    • conversionobjectrequired
      • deleteOriginalbooleanrequired
      • ladderIdstringrequired
      • modestringrequired
    • folderTemplatestringrequired
    • keepPolicyobjectrequired
      • keepCountintegerrequired
      • keepDaysintegerrequired
      • keepUntilWatchedbooleanrequired
      • modestringrequired
    • liveTunerConflictstringrequired
    • movieFolderTemplatestringrequired
    • postPaddingMsintegerrequired
    • prePaddingMsintegerrequired
    • recordingProfilestringrequired
    • sidecarsobjectrequired
      • fanartbooleanrequired
      • nfobooleanrequired
      • posterbooleanrequired
      • thumbnailbooleanrequired
    • tunerPreferencestringrequired

Responses

200Successapplication/json

Example
{
  "protocolVersion": "string",
  "result": {
    "digest": "string",
    "enumerations": {
      "key": [
        "string"
      ]
    },
    "folderTokens": [
      {
        "description": "string",
        "example": "string",
        "supportsPadding": true,
        "token": "string"
      }
    ],
    "revision": 0,
    "settings": {
      "conversion": {
        "deleteOriginal": true,
        "ladderId": "id_8h2k4q",
        "mode": "string"
      },
      "folderTemplate": "string",
      "keepPolicy": {
        "keepCount": 0,
        "keepDays": 0,
        "keepUntilWatched": true,
        "mode": "string"
      },
      "liveTunerConflict": "string",
      "movieFolderTemplate": "string",
      "postPaddingMs": 1800000,
      "prePaddingMs": 1800000,
      "recordingProfile": "string",
      "sidecars": {
        "fanart": true,
        "nfo": true,
        "poster": true,
        "thumbnail": true
      },
      "tunerPreference": "string"
    }
  },
  "serverId": "id_8h2k4q"
}
Schema
  • protocolVersionstringrequired
  • resultobjectrequired
    • digeststringrequired
    • enumerationsobjectrequired
    • folderTokensarray of objectrequired
      • descriptionstringrequired
      • examplestringrequired
      • supportsPaddingbooleanrequired
      • tokenstringrequired
    • revisionintegerrequired
    • settingsobjectrequired
      • conversionobjectrequired
        • deleteOriginalbooleanrequired
        • ladderIdstringrequired
        • modestringrequired
      • folderTemplatestringrequired
      • keepPolicyobjectrequired
        • keepCountintegerrequired
        • keepDaysintegerrequired
        • keepUntilWatchedbooleanrequired
        • modestringrequired
      • liveTunerConflictstringrequired
      • movieFolderTemplatestringrequired
      • postPaddingMsintegerrequired
      • prePaddingMsintegerrequired
      • recordingProfilestringrequired
      • sidecarsobjectrequired
        • fanartbooleanrequired
        • nfobooleanrequired
        • posterbooleanrequired
        • thumbnailbooleanrequired
      • tunerPreferencestringrequired
  • serverIdstringrequired

defaultRequest refused or unavailableapplication/json

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

Error codesinvalid_requestunauthorizednot_permittednot_foundinternalidempotency_conflictreceipt_expiredinvalid_mutation_keydatabase_busywriter_capacity

Example request

curl -X PUT "http://127.0.0.1:32500/v1/admin/dvr/settings" \
  -H "Authorization: Bearer $PORTICO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "expectedRevision": 0,
  "operationId": "id_8h2k4q",
  "settings": {
    "conversion": {
      "deleteOriginal": true,
      "ladderId": "id_8h2k4q",
      "mode": "string"
    },
    "folderTemplate": "string",
    "keepPolicy": {
      "keepCount": 0,
      "keepDays": 0,
      "keepUntilWatched": true,
      "mode": "string"
    },
    "liveTunerConflict": "string",
    "movieFolderTemplate": "string",
    "postPaddingMs": 1800000,
    "prePaddingMs": 1800000,
    "recordingProfile": "string",
    "sidecars": {
      "fanart": true,
      "nfo": true,
      "poster": true,
      "thumbnail": true
    },
    "tunerPreference": "string"
  }
}'
GET/v1/admin/dvr/tunersManage 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_tuners

Responses

200Successapplication/json

Example
{
  "protocolVersion": "string",
  "result": {
    "observedAt": "2026-10-18T19:30:00Z",
    "sources": [
      {
        "active": [
          {}
        ],
        "conflicts": 0,
        "inUse": 0,
        "sourceId": "id_8h2k4q",
        "sourceName": "Fargo",
        "tunerCount": 0,
        "upcoming": [
          {}
        ]
      }
    ],
    "upcomingWindowHours": 0
  },
  "serverId": "id_8h2k4q"
}
Schema
  • protocolVersionstringrequired
  • resultobjectrequired
    • observedAtstringrequired
    • sourcesarray of objectrequired
      • activearray of objectrequired
        • accountIdstringrequired
        • accountNamestringrequired
        • allocationIdstring
        • channelIdstringrequired
        • endsAtstringrequired
        • kindstringrequired
        • profileIdstringrequired
        • profileNamestringrequired
        • recordingIdstringrequired
        • startsAtstringrequired
        • statestringrequired
        • titlestringrequired
      • conflictsintegerrequired
      • inUseintegerrequired
      • sourceIdstringrequired
      • sourceNamestringrequired
      • tunerCountintegerrequired
      • upcomingarray of objectrequired
        • accountIdstringrequired
        • accountNamestringrequired
        • allocationIdstring
        • channelIdstringrequired
        • endsAtstringrequired
        • kindstringrequired
        • profileIdstringrequired
        • profileNamestringrequired
        • recordingIdstringrequired
        • startsAtstringrequired
        • statestringrequired
        • titlestringrequired
    • upcomingWindowHoursintegerrequired
  • 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/dvr/tuners" \
  -H "Authorization: Bearer $PORTICO_API_KEY"