Integrations reference

Native routes for tools and scripts. Start with your first integration for working examples.

Generated from the server’s Integrations tag. Scopes and account permissions still apply. Compatibility aliases are documented in the full reference.

73 native operationsServer fd8c0cfc6
GET/health/liveRead server livenessopen
Audience
Integrations · Native API
Authorization
No credential needed
OpenAPI operation ID
get_health_live

Responses

200Successapplication/json

Example
{
  "alive": true
}
Schema
  • alivebooleanrequired

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/health/live"
GET/health/readyRead server readinessopen
Audience
Integrations · Native API
Authorization
No credential needed
OpenAPI operation ID
get_health_ready

Responses

200Successapplication/json

Example
{
  "ready": true
}
Schema
  • readybooleanrequired

503Successapplication/json

Example
{
  "ready": true
}
Schema
  • readybooleanrequired

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/health/ready"
GET/v1/admin/activityRead the owner's bounded server activity summaryadmin
Audience
Integrations · Native API
Authorization
API key or personal access token with the admin scope, or a signed-in session
OpenAPI operation ID
get_admin_activity

Responses

200Successapplication/json

Example
{
  "health": {
    "degraded": true
  },
  "lastScanFinishedAt": "2026-10-18T19:30:00Z",
  "majorIssues": [
    {
      "code": "string",
      "destination": {
        "kind": "string",
        "target": "string"
      },
      "kind": "string",
      "severity": "string",
      "subject": "string"
    }
  ],
  "observedAt": "2026-10-18T19:30:00Z",
  "scans": [
    {
      "analyzed": 0,
      "current": "string",
      "discovered": 0,
      "kind": "string",
      "libraryId": "id_8h2k4q",
      "libraryName": "Fargo",
      "phase": "string",
      "total": 0
    }
  ],
  "scope": {
    "serverId": "id_8h2k4q",
    "viewerFence": "string"
  },
  "serverName": "Fargo",
  "streams": {
    "convertingCount": 0,
    "count": 0,
    "items": [
      {
        "bufferingSince": "string",
        "channel": {
          "name": "Fargo",
          "number": "string"
        },
        "converting": true,
        "decision": {
          "audio": {},
          "subtitles": {},
          "video": {}
        },
        "device": {
          "id": "id_8h2k4q",
          "name": "Fargo"
        },
        "durationMs": 1800000,
        "id": "id_8h2k4q",
        "item": {
          "airDate": "string",
          "album": "string",
          "art": [],
          "artist": "string",
          "author": "string",
          "bookTitle": "Fargo",
          "episodeNumber": 0,
          "episodeNumbering": "string",
          "id": "id_8h2k4q",
          "kind": "string",
          "seasonNumber": 0,
          "showId": "id_8h2k4q",
          "showTitle": "Fargo",
          "title": "Fargo",
          "year": 0
        },
        "kind": "string",
        "positionMs": 1800000,
        "problem": "string",
        "profile": {
          "id": "id_8h2k4q",
          "name": "Fargo"
        },
        "programme": {
          "endsAt": "2026-10-18T19:30:00Z",
          "title": "Fargo"
        },
        "quality": {
          "id": "id_8h2k4q",
          "maxAudioBitrateKbps": 0,
          "maxHeight": 0,
          "maxVideoBitrateKbps": 0,
          "mode": "string",
          "step": "string"
        },
        "startedAt": "2026-10-18T19:30:00Z",
        "state": "string",
        "transcode": {
          "cadenceMs": 1800000,
          "observedAt": "2026-10-18T19:30:00Z",
          "speed": 0
        },
        "user": {
          "id": "id_8h2k4q",
          "username": "Fargo"
        },
        "videoHeight": 0
      }
    ],
    "overflow": {
      "convertingCount": 0,
      "count": 0
    }
  },
  "tasks": {
    "count": 0,
    "items": [
      {
        "id": "id_8h2k4q",
        "kind": "string",
        "libraryId": "id_8h2k4q",
        "libraryName": "Fargo",
        "phase": "string",
        "processed": 0,
        "state": "string",
        "total": 0,
        "unit": "string"
      }
    ]
  },
  "update": {
    "available": true,
    "current": "string",
    "latest": "string",
    "state": "string"
  }
}
Schema
  • healthobjectrequired
    • degradedbooleanrequired
  • lastScanFinishedAtstring
  • majorIssuesarray of objectrequired
    • codestringrequired
    • destinationobjectrequired
      • kindstringrequired
      • targetstringrequired
    • kindstringrequired
    • severitystringrequired
    • subjectstringrequired
  • observedAtstringrequired
  • scansarray of objectrequired
    • analyzedintegerrequired
    • currentstring
    • discoveredintegerrequired
    • kindstringrequired
    • libraryIdstringrequired
    • libraryNamestringrequired
    • phasestringrequired
    • totalinteger
  • scopeobjectrequired
    • serverIdstringrequired
    • viewerFencestringrequired
  • serverNamestringrequired
  • streamsobjectrequired
    • convertingCountintegerrequired≥ 0
    • countintegerrequired≥ 0
    • itemsarray of objectrequired0–3 items
      • bufferingSincestring
      • channelobject
        • namestringrequired
        • numberstring
      • convertingbooleanrequired
      • decisionobjectrequired
        • audioobject
          • actionstringrequired
          • channelsinteger
          • reasonsarray of stringrequired
          • tostring
        • subtitlesobject
          • actionstringrequired
          • channelsinteger
          • reasonsarray of stringrequired
          • tostring
        • videoobject
          • actionstringrequired
          • channelsinteger
          • reasonsarray of stringrequired
          • tostring
      • deviceobjectrequired
        • idstringrequired
        • namestringrequired
      • durationMsinteger
      • idstringrequired
      • itemobject
        • airDatestring
        • albumstring
        • artarray of objectrequired
          • idstringrequired
          • kindstringrequired
          • revisionstringrequired
          • rolestringrequired
        • artiststring
        • authorstring
        • bookTitlestring
        • episodeNumberinteger
        • episodeNumberingstring
        • idstringrequired
        • kindstringrequired
        • seasonNumberinteger
        • showIdstring
        • showTitlestring
        • titlestringrequired
        • yearinteger
      • kindstringrequired
      • positionMsintegerrequired
      • problemstring
      • profileobjectrequired
        • idstringrequired
        • namestringrequired
      • programmeobject
        • endsAtstringrequired
        • titlestringrequired
      • qualityobject
        • idstring
        • maxAudioBitrateKbpsinteger
        • maxHeightinteger
        • maxVideoBitrateKbpsinteger
        • modestringrequired
        • stepstring
      • startedAtstringrequired
      • statestringrequired
      • transcodeobject
        • cadenceMsintegerrequired
        • observedAtstringrequired
        • speednumberrequired
      • userobjectrequired
        • idstringrequired
        • usernamestring
      • videoHeightinteger
    • overflowobjectrequired
      • convertingCountintegerrequired≥ 0
      • countintegerrequired≥ 0
  • tasksobjectrequired
    • countintegerrequired≥ 0
    • itemsarray of objectrequired0–3 items
      • idstringrequired
      • kindstringrequired
      • libraryIdstring
      • libraryNamestring
      • phasestringrequired
      • processedinteger
      • statestringrequired
      • totalinteger
      • unitstring
  • updateobjectrequired
    • availablebooleanrequired
    • currentstringrequired
    • lateststring
    • statestringrequired

defaultRequest refused or unavailableapplication/json

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

Error codesunauthorizednot_permittedinvalid_requestinternaldatabase_busy

Example request

curl -X GET "http://127.0.0.1:32500/v1/admin/activity" \
  -H "Authorization: Bearer $PORTICO_API_KEY"
GET/v1/admin/api-keysList this server's API keyssession
Audience
Integrations · Native API
Authorization
Session only; API keys and personal access tokens are refused
OpenAPI operation ID
list_api_keys

Parameters

NameInTypeDescription
cursorquerystring
limitqueryinteger | ""1–100

Responses

200Successapplication/json

Example
{
  "items": [
    {
      "createdAt": "2026-10-18T19:30:00Z",
      "endedReason": "string",
      "expiresAt": "2026-10-18T19:30:00Z",
      "hint": "string",
      "id": "id_8h2k4q",
      "kind": "string",
      "lastUsedAt": "2026-10-18T19:30:00Z",
      "member": {
        "accountId": "id_8h2k4q",
        "profile": "string",
        "profileId": "id_8h2k4q",
        "username": "Fargo"
      },
      "name": "Fargo",
      "scopes": [
        "string"
      ],
      "state": "string"
    }
  ],
  "limit": 0,
  "nextCursor": "eyJvIjoyMH0",
  "total": 0
}
Schema
  • itemsarray of objectrequired
    • createdAtstringrequired
    • endedReasonstring
    • expiresAtstring
    • hintstringrequired
    • idstringrequired
    • kindstringrequired
    • lastUsedAtstring
    • memberobjectrequired
      • accountIdstringrequired
      • profilestringrequired
      • profileIdstringrequired
      • usernamestringrequired
    • namestringrequired
    • scopesarray of stringrequired
    • statestringrequired
  • limitintegerrequired
  • nextCursorstring
  • totalintegerrequired

defaultRequest refused or unavailableapplication/json

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

Error codesunauthorizednot_permittedsession_requiredinvalid_requestadministration_unavailableinternaldatabase_busy

Example request

curl -X GET "http://127.0.0.1:32500/v1/admin/api-keys" \
  -H "Authorization: Bearer $PORTICO_ACCESS_TOKEN"
POST/v1/admin/api-keysCreate an API key; the owner may reveal it latersession
Audience
Integrations · Native API
Authorization
Session only; API keys and personal access tokens are refused
OpenAPI operation ID
create_api_key
Max body
4 KiB

Request body application/json · required

Example
{
  "expiresAt": "2026-10-18T19:30:00Z",
  "name": "Fargo",
  "operationId": "id_8h2k4q",
  "scopes": [
    "string"
  ]
}
Schema
  • expiresAtstring
  • namestringrequired
  • operationIdstringrequired
  • scopesarray of stringrequired

Responses

201Successapplication/json

Example
{
  "credential": {
    "createdAt": "2026-10-18T19:30:00Z",
    "endedReason": "string",
    "expiresAt": "2026-10-18T19:30:00Z",
    "hint": "string",
    "id": "id_8h2k4q",
    "kind": "string",
    "lastUsedAt": "2026-10-18T19:30:00Z",
    "member": {
      "accountId": "id_8h2k4q",
      "profile": "string",
      "profileId": "id_8h2k4q",
      "username": "Fargo"
    },
    "name": "Fargo",
    "scopes": [
      "string"
    ],
    "state": "string"
  },
  "secret": "string"
}
Schema
  • credentialobjectrequired
    • createdAtstringrequired
    • endedReasonstring
    • expiresAtstring
    • hintstringrequired
    • idstringrequired
    • kindstringrequired
    • lastUsedAtstring
    • memberobjectrequired
      • accountIdstringrequired
      • profilestringrequired
      • profileIdstringrequired
      • usernamestringrequired
    • namestringrequired
    • scopesarray of stringrequired
    • statestringrequired
  • secretstring

defaultRequest refused or unavailableapplication/json

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

Error codesunauthorizednot_permittedsession_requiredinvalid_requestidempotency_key_reusedcredential_limitcredential_unavailableaccess_tokens_offadministration_unavailableinternaldatabase_busywriter_capacity

Example request

curl -X POST "http://127.0.0.1:32500/v1/admin/api-keys" \
  -H "Authorization: Bearer $PORTICO_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"expiresAt":"2026-10-18T19:30:00Z","name":"Fargo","operationId":"id_8h2k4q","scopes":["string"]}'
DELETE/v1/admin/api-keys/{id}Revoke an API keysession
Audience
Integrations · Native API
Authorization
Session only; API keys and personal access tokens are refused
OpenAPI operation ID
revoke_api_key

Parameters

NameInTypeDescription
idrequiredpathstring

Responses

200Successapplication/json

Example
{
  "createdAt": "2026-10-18T19:30:00Z",
  "endedReason": "string",
  "expiresAt": "2026-10-18T19:30:00Z",
  "hint": "string",
  "id": "id_8h2k4q",
  "kind": "string",
  "lastUsedAt": "2026-10-18T19:30:00Z",
  "member": {
    "accountId": "id_8h2k4q",
    "profile": "string",
    "profileId": "id_8h2k4q",
    "username": "Fargo"
  },
  "name": "Fargo",
  "scopes": [
    "string"
  ],
  "state": "string"
}
Schema
  • createdAtstringrequired
  • endedReasonstring
  • expiresAtstring
  • hintstringrequired
  • idstringrequired
  • kindstringrequired
  • lastUsedAtstring
  • memberobjectrequired
    • accountIdstringrequired
    • profilestringrequired
    • profileIdstringrequired
    • usernamestringrequired
  • namestringrequired
  • scopesarray of stringrequired
  • statestringrequired

defaultRequest refused or unavailableapplication/json

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

Error codesunauthorizednot_permittedsession_requiredinvalid_requestnot_foundadministration_unavailableinternaldatabase_busywriter_capacity

Example request

curl -X DELETE "http://127.0.0.1:32500/v1/admin/api-keys/{id}" \
  -H "Authorization: Bearer $PORTICO_ACCESS_TOKEN"
GET/v1/admin/api-keys/{id}/secretReveal this credential to the signed-in ownersession
Audience
Integrations · Native API
Authorization
Session only; API keys and personal access tokens are refused
OpenAPI operation ID
reveal_api_key

Parameters

NameInTypeDescription
idrequiredpathstring

Responses

200Successapplication/json

Example
{
  "id": "id_8h2k4q",
  "secret": "string"
}
Schema
  • idstringrequired
  • secretstringrequired

defaultRequest refused or unavailableapplication/json

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

Error codesunauthorizednot_permittedinsufficient_scopesession_requiredinvalid_requestnot_foundcredential_limitinternaldatabase_busy

Example request

curl -X GET "http://127.0.0.1:32500/v1/admin/api-keys/{id}/secret" \
  -H "Authorization: Bearer $PORTICO_ACCESS_TOKEN"
GET/v1/admin/console/jobsRead or update the selected projectionadmin
Audience
Integrations · Native API
Authorization
API key or personal access token with the admin scope, or a signed-in session
OpenAPI operation ID
get_admin_console_jobs

Parameters

NameInTypeDescription
cursorquerystring

Responses

200Successapplication/json

Example
{
  "data": {
    "items": [
      {
        "actions": [
          "string"
        ],
        "attempt": 0,
        "createdAt": "2026-10-18T19:30:00Z",
        "domainId": "id_8h2k4q",
        "errorCode": "string",
        "id": "id_8h2k4q",
        "kind": "string",
        "lane": "string",
        "nextAt": "2026-10-18T19:30:00Z",
        "phase": "string",
        "predecessor": "string",
        "processed": 0,
        "resource": "string",
        "revision": 0,
        "settingsRevision": 0,
        "state": "string",
        "total": 0,
        "trigger": "string",
        "updatedAt": "2026-10-18T19:30:00Z"
      }
    ],
    "nextCursor": "eyJvIjoyMH0"
  },
  "scope": {
    "serverId": "id_8h2k4q",
    "viewerFence": "string"
  }
}
Schema
  • dataobjectrequired
    • itemsarray of objectrequired
      • actionsarray of stringrequired
      • attemptintegerrequired
      • createdAtstringrequired

        RFC 3339 UTC instant; empty when absent.

      • domainIdstring
      • errorCodestring
      • idstringrequired
      • kindstringrequired
      • lanestringrequired
      • nextAtstringrequired

        RFC 3339 UTC instant; empty when absent.

      • phasestringrequired
      • predecessorstring
      • processedinteger
      • resourcestringrequired
      • revisionintegerrequired
      • settingsRevisionintegerrequired
      • statestringrequired
      • totalinteger
      • triggerstringrequired
      • updatedAtstringrequired

        RFC 3339 UTC instant; empty when absent.

    • nextCursorstringrequired
  • scopeobjectrequired
    • serverIdstringrequired
    • viewerFencestringrequired

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/console/jobs" \
  -H "Authorization: Bearer $PORTICO_API_KEY"
POST/v1/admin/console/jobsRead or update the selected projectionadmin
Audience
Integrations · Native API
Authorization
API key or personal access token with the admin scope, or a signed-in session
OpenAPI operation ID
post_admin_console_jobs
Max body
1 MiB

Request body application/json · required

Example
{
  "idempotencyKey": "string",
  "kind": "string",
  "resource": "string"
}
Schema
  • idempotencyKeystringrequired
  • kindstringrequired
  • resourcestringrequired

Responses

200Successapplication/json

Example
{
  "data": {
    "actions": [
      "string"
    ],
    "attempt": 0,
    "createdAt": "2026-10-18T19:30:00Z",
    "domainId": "id_8h2k4q",
    "errorCode": "string",
    "id": "id_8h2k4q",
    "kind": "string",
    "lane": "string",
    "nextAt": "2026-10-18T19:30:00Z",
    "phase": "string",
    "predecessor": "string",
    "processed": 0,
    "resource": "string",
    "revision": 0,
    "settingsRevision": 0,
    "state": "string",
    "total": 0,
    "trigger": "string",
    "updatedAt": "2026-10-18T19:30:00Z"
  },
  "scope": {
    "serverId": "id_8h2k4q",
    "viewerFence": "string"
  }
}
Schema
  • dataobjectrequired
    • actionsarray of stringrequired
    • attemptintegerrequired
    • createdAtstringrequired

      RFC 3339 UTC instant; empty when absent.

    • domainIdstring
    • errorCodestring
    • idstringrequired
    • kindstringrequired
    • lanestringrequired
    • nextAtstringrequired

      RFC 3339 UTC instant; empty when absent.

    • phasestringrequired
    • predecessorstring
    • processedinteger
    • resourcestringrequired
    • revisionintegerrequired
    • settingsRevisionintegerrequired
    • statestringrequired
    • totalinteger
    • triggerstringrequired
    • updatedAtstringrequired

      RFC 3339 UTC instant; empty when absent.

  • scopeobjectrequired
    • serverIdstringrequired
    • viewerFencestringrequired

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/console/jobs" \
  -H "Authorization: Bearer $PORTICO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"idempotencyKey":"string","kind":"string","resource":"string"}'
POST/v1/admin/console/jobs/{id}/{action}Read or update the selected projectionadmin
Audience
Integrations · Native API
Authorization
API key or personal access token with the admin scope, or a signed-in session
OpenAPI operation ID
post_admin_console_jobs_id_action
Max body
1 MiB

Parameters

NameInTypeDescription
idrequiredpathstring
actionrequiredpathstring

Request body application/json · required

Example
{
  "expectedRevision": 0,
  "idempotencyKey": "string"
}
Schema
  • expectedRevisionintegerrequired
  • idempotencyKeystringrequired

Responses

200Successapplication/json

Example
{
  "data": {
    "actions": [
      "string"
    ],
    "attempt": 0,
    "createdAt": "2026-10-18T19:30:00Z",
    "domainId": "id_8h2k4q",
    "errorCode": "string",
    "id": "id_8h2k4q",
    "kind": "string",
    "lane": "string",
    "nextAt": "2026-10-18T19:30:00Z",
    "phase": "string",
    "predecessor": "string",
    "processed": 0,
    "resource": "string",
    "revision": 0,
    "settingsRevision": 0,
    "state": "string",
    "total": 0,
    "trigger": "string",
    "updatedAt": "2026-10-18T19:30:00Z"
  },
  "scope": {
    "serverId": "id_8h2k4q",
    "viewerFence": "string"
  }
}
Schema
  • dataobjectrequired
    • actionsarray of stringrequired
    • attemptintegerrequired
    • createdAtstringrequired

      RFC 3339 UTC instant; empty when absent.

    • domainIdstring
    • errorCodestring
    • idstringrequired
    • kindstringrequired
    • lanestringrequired
    • nextAtstringrequired

      RFC 3339 UTC instant; empty when absent.

    • phasestringrequired
    • predecessorstring
    • processedinteger
    • resourcestringrequired
    • revisionintegerrequired
    • settingsRevisionintegerrequired
    • statestringrequired
    • totalinteger
    • triggerstringrequired
    • updatedAtstringrequired

      RFC 3339 UTC instant; empty when absent.

  • scopeobjectrequired
    • serverIdstringrequired
    • viewerFencestringrequired

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/console/jobs/{id}/{action}" \
  -H "Authorization: Bearer $PORTICO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"expectedRevision":0,"idempotencyKey":"string"}'
DELETE/v1/admin/ingestion/jobs/{id}Remove server ingestion jobslibrary
Audience
Integrations · Native API
Authorization
API key or personal access token with the library scope, or a signed-in session
OpenAPI operation ID
delete_admin_ingestion_jobs_id

Parameters

NameInTypeDescription
idrequiredpathstring

Responses

204Success

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/ingestion/jobs/{id}" \
  -H "Authorization: Bearer $PORTICO_API_KEY"
GET/v1/admin/ingestion/jobs/{id}Read server ingestion jobslibrary
Audience
Integrations · Native API
Authorization
API key or personal access token with the library scope, or a signed-in session
OpenAPI operation ID
get_admin_ingestion_jobs_id

Parameters

NameInTypeDescription
idrequiredpathstring

Responses

200Successapplication/json

Example
{
  "analyzed": 0,
  "error": "string",
  "id": "id_8h2k4q",
  "jobs": [
    "string"
  ],
  "phase": "string",
  "processed": 0,
  "scanMode": "string",
  "sourceId": "id_8h2k4q",
  "status": "string",
  "warnings": 0
}
Schema
  • analyzedintegerrequired
  • errorstring
  • idstringrequired
  • jobsarray of string
  • phasestring
  • processedintegerrequired
  • scanModestring
  • sourceIdstring
  • statusstringrequired
  • warningsintegerrequired

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/ingestion/jobs/{id}" \
  -H "Authorization: Bearer $PORTICO_API_KEY"
POST/v1/admin/ingestion/jobs/{id}/{action}Run server ingestion jobslibrary
Audience
Integrations · Native API
Authorization
API key or personal access token with the library scope, or a signed-in session
OpenAPI operation ID
post_admin_ingestion_jobs_id_action

Parameters

NameInTypeDescription
idrequiredpathstring
actionrequiredpathstring

Responses

202Successapplication/json

Example
{
  "analyzed": 0,
  "error": "string",
  "id": "id_8h2k4q",
  "jobs": [
    "string"
  ],
  "phase": "string",
  "processed": 0,
  "scanMode": "string",
  "sourceId": "id_8h2k4q",
  "status": "string",
  "warnings": 0
}
Schema
  • analyzedintegerrequired
  • errorstring
  • idstringrequired
  • jobsarray of string
  • phasestring
  • processedintegerrequired
  • scanModestring
  • sourceIdstring
  • statusstringrequired
  • warningsintegerrequired

204Success

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/ingestion/jobs/{id}/{action}" \
  -H "Authorization: Bearer $PORTICO_API_KEY"
GET/v1/admin/jobsRead server jobslibrary
Audience
Integrations · Native API
Authorization
API key or personal access token with the library scope, or a signed-in session
OpenAPI operation ID
get_admin_jobs

Parameters

NameInTypeDescription
libraryIdquerystring
statusquerystring
cursorquerystring
limitqueryinteger1–40

Responses

200Successapplication/json

Example
{
  "items": [
    {
      "actions": [
        "string"
      ],
      "analyzed": 0,
      "createdAt": "2026-10-18T19:30:00Z",
      "error": "string",
      "errorCode": "string",
      "finishedAt": "2026-10-18T19:30:00Z",
      "id": "id_8h2k4q",
      "libraryId": "id_8h2k4q",
      "libraryKind": "string",
      "libraryName": "Fargo",
      "pauseReason": "string",
      "phase": "string",
      "processed": 0,
      "sourceId": "id_8h2k4q",
      "status": "string",
      "updatedAt": "2026-10-18T19:30:00Z",
      "warnings": 0
    }
  ],
  "nextCursor": "eyJvIjoyMH0",
  "revision": 0,
  "scope": {
    "serverId": "id_8h2k4q",
    "viewerFence": "string"
  }
}
Schema
  • itemsarray of objectrequired
    • actionsarray of stringrequired
    • analyzedintegerrequired
    • createdAtstringrequired
    • errorstring
    • errorCodestring
    • finishedAtstring | any | nullrequired
    • idstringrequired
    • libraryIdstringrequired
    • libraryKindstringrequired
    • libraryNamestringrequired
    • pauseReasonstringrequired
    • phasestringrequired
    • processedintegerrequired
    • sourceIdstringrequired
    • statusstringrequired
    • updatedAtstring | any | nullrequired
    • warningsintegerrequired
  • nextCursorstringrequired
  • revisionintegerrequired
  • scopeobjectrequired
    • serverIdstringrequired
    • viewerFencestringrequired

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/jobs" \
  -H "Authorization: Bearer $PORTICO_API_KEY"
GET/v1/admin/librariesRead server librarylibrary
Audience
Integrations · Native API
Authorization
API key or personal access token with the library scope, or a signed-in session
OpenAPI operation ID
get_admin_libraries

Parameters

NameInTypeDescription
cursorquerystring
limitqueryinteger1–40

Responses

200Successapplication/json

Example
{
  "items": [
    {
      "actions": [
        "string"
      ],
      "attention": {
        "atLeast": true,
        "files": 0
      },
      "audience": {
        "accounts": 0,
        "everyone": true
      },
      "filesSkipped": 0,
      "id": "id_8h2k4q",
      "kind": "string",
      "lastScan": {
        "actions": [
          "string"
        ],
        "analyzed": 0,
        "createdAt": "2026-10-18T19:30:00Z",
        "error": "string",
        "errorCode": "string",
        "finishedAt": "2026-10-18T19:30:00Z",
        "id": "id_8h2k4q",
        "libraryId": "id_8h2k4q",
        "libraryKind": "string",
        "libraryName": "Fargo",
        "pauseReason": "string",
        "phase": "string",
        "processed": 0,
        "sourceId": "id_8h2k4q",
        "status": "string",
        "updatedAt": "2026-10-18T19:30:00Z",
        "warnings": 0
      },
      "name": "Fargo",
      "position": 0,
      "revision": 0,
      "source": {
        "availability": "string",
        "basis": "string",
        "message": "string",
        "observedAt": "2026-10-18T19:30:00Z",
        "path": "string"
      },
      "summary": {
        "counts": [
          {}
        ],
        "coverUrls": [
          "https://example.com/…"
        ],
        "empty": true,
        "emptyKnown": true,
        "firstScan": true,
        "latestArtwork": "string",
        "publicationCounts": [
          {}
        ]
      }
    }
  ],
  "nextCursor": "eyJvIjoyMH0",
  "revision": 0,
  "scope": {
    "serverId": "id_8h2k4q",
    "viewerFence": "string"
  }
}
Schema
  • itemsarray of objectrequired
    • actionsarray of stringrequired
    • attentionobject
      • atLeastboolean
      • filesintegerrequired
    • audienceobject
      • accountsintegerrequired
      • everyonebooleanrequired
    • filesSkippedintegerrequired
    • idstringrequired
    • kindstringrequired
    • lastScanobject | any | nullrequired
      • actionsarray of stringrequired
      • analyzedintegerrequired
      • createdAtstringrequired
      • errorstring
      • errorCodestring
      • finishedAtstring | any | nullrequired
      • idstringrequired
      • libraryIdstringrequired
      • libraryKindstringrequired
      • libraryNamestringrequired
      • pauseReasonstringrequired
      • phasestringrequired
      • processedintegerrequired
      • sourceIdstringrequired
      • statusstringrequired
      • updatedAtstring | any | nullrequired
      • warningsintegerrequired
    • namestringrequired
    • positionintegerrequired
    • revisionintegerrequired
    • sourceobjectrequired
      • availabilitystringrequired
      • basisstringrequired
      • messagestring
      • observedAtstring
      • pathstringrequired
    • summaryobject
      • countsarray of objectrequired
        • atLeastbooleanrequired
        • countintegerrequired
        • kindstringrequired
      • coverUrlsarray of stringrequired
      • emptybooleanrequired
      • emptyKnownbooleanrequired
      • firstScanbooleanrequired
      • latestArtworkstringrequired
      • publicationCountsarray of object
        • atLeastbooleanrequired
        • countintegerrequired
        • kindstringrequired
  • nextCursorstringrequired
  • revisionintegerrequired
  • scopeobjectrequired
    • serverIdstringrequired
    • viewerFencestringrequired

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/libraries" \
  -H "Authorization: Bearer $PORTICO_API_KEY"
POST/v1/admin/notifications/broadcastRun server notifications broadcastadmin
Audience
Integrations · Native API
Authorization
API key or personal access token with the admin scope, or a signed-in session
OpenAPI operation ID
post_admin_notifications_broadcast
Max body
64 KiB

Request body application/json · required

Example
{
  "actions": [
    {
      "arguments": {
        "key": "string"
      },
      "command": "string",
      "kind": "string",
      "label": "string",
      "target": {
        "entityId": "id_8h2k4q",
        "libraryId": "id_8h2k4q",
        "view": "string"
      }
    }
  ],
  "audience": "string",
  "body": "string",
  "dedupeKey": "string",
  "expiresInDays": 0,
  "operationId": "id_8h2k4q",
  "severity": "string",
  "title": "Fargo"
}
Schema
  • actionsarray of objectrequired
    • argumentsobject
    • commandstring
    • kindstringrequired
    • labelstringrequired
    • targetobject
      • entityIdstring
      • libraryIdstring
      • viewstringrequired
  • audiencestringrequired
  • bodystringrequired
  • dedupeKeystringrequired
  • expiresInDaysintegerrequired
  • operationIdstringrequired
  • severitystringrequired
  • titlestringrequired

Responses

200Successapplication/json

Example
{
  "data": {
    "audience": "string",
    "created": 0,
    "dedupeKey": "string",
    "delivered": 0,
    "ids": [
      "string"
    ],
    "revision": 0,
    "updated": 0
  },
  "scope": {
    "serverId": "id_8h2k4q",
    "viewerFence": "string"
  }
}
Schema
  • dataobjectrequired
    • audiencestringrequired
    • createdintegerrequired
    • dedupeKeystringrequired
    • deliveredintegerrequired
    • idsarray of stringrequired
    • revisionintegerrequired
    • updatedintegerrequired
  • scopeobjectrequired
    • serverIdstringrequired
    • viewerFencestringrequired

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/notifications/broadcast" \
  -H "Authorization: Bearer $PORTICO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "actions": [
    {
      "arguments": {
        "key": "string"
      },
      "command": "string",
      "kind": "string",
      "label": "string",
      "target": {
        "entityId": "id_8h2k4q",
        "libraryId": "id_8h2k4q",
        "view": "string"
      }
    }
  ],
  "audience": "string",
  "body": "string",
  "dedupeKey": "string",
  "expiresInDays": 0,
  "operationId": "id_8h2k4q",
  "severity": "string",
  "title": "Fargo"
}'
GET/v1/admin/sessionsActive playback sessions: who, what, how it's delivered and from whereadmin
Audience
Integrations · Native API
Authorization
API key or personal access token with the admin scope, or a signed-in session
OpenAPI operation ID
list_admin_sessions

Parameters

NameInTypeDescription
limitqueryinteger | ""0–200
cursorquerystring

Responses

200Successapplication/json

Example
{
  "items": [
    {
      "address": "string",
      "app": "string",
      "bandwidthKbps": 0,
      "bitrateKbps": 0,
      "bufferingSince": "string",
      "channel": {
        "name": "Fargo",
        "number": "string"
      },
      "currentBitrateKbps": 0,
      "decision": {
        "audio": {
          "action": "string",
          "channels": 0,
          "reasons": [],
          "to": "string"
        },
        "subtitles": {
          "action": "string",
          "channels": 0,
          "reasons": [],
          "to": "string"
        },
        "video": {
          "action": "string",
          "channels": 0,
          "reasons": [],
          "to": "string"
        }
      },
      "delivery": {
        "audioBitrateBps": 0,
        "audioChannels": 0,
        "hardware": {
          "backend": "string",
          "execution": {},
          "stages": []
        },
        "streams": [
          {}
        ],
        "videoBitrateBps": 0,
        "videoHeight": 0
      },
      "device": {
        "id": "id_8h2k4q",
        "name": "Fargo"
      },
      "durationMs": 1800000,
      "engine": "string",
      "id": "id_8h2k4q",
      "item": {
        "airDate": "string",
        "album": "string",
        "art": [
          {}
        ],
        "artist": "string",
        "author": "string",
        "bookTitle": "Fargo",
        "episodeNumber": 0,
        "episodeNumbering": "string",
        "id": "id_8h2k4q",
        "kind": "string",
        "seasonNumber": 0,
        "showId": "id_8h2k4q",
        "showTitle": "Fargo",
        "title": "Fargo",
        "year": 0
      },
      "kind": "string",
      "live": true,
      "location": "string",
      "media": {
        "audio": {
          "atmos": true,
          "bitDepth": 0,
          "channels": 0,
          "codec": "string",
          "commentary": true,
          "default": true,
          "dtsx": true,
          "id": "id_8h2k4q",
          "language": "en",
          "layout": "string",
          "objectAudio": "string",
          "profile": "string",
          "sampleRate": 0,
          "title": "Fargo",
          "variant": "string",
          "visualImpaired": true
        },
        "subtitles": {
          "format": "2026-10-18T19:30:00Z",
          "id": "id_8h2k4q",
          "language": "en"
        },
        "video": {
          "bitDepth": 0,
          "bitrateKbps": 0,
          "chromaSubsampling": "string",
          "codec": "string",
          "dolbyVisionBaseLayer": true,
          "dolbyVisionCmVersion": "string",
          "dolbyVisionCompatibility": 0,
          "dolbyVisionEnhancementType": "string",
          "dolbyVisionProfile": 0,
          "dolbyVisionRpu": true,
          "fps": 0,
          "frameRateDenominator": 0,
          "frameRateMode": "string",
          "frameRateNumerator": 0,
          "hdr": "string",
          "hdr10Plus": true,
          "height": 0,
          "id": "id_8h2k4q",
          "interlaced": true,
          "level": 0,
          "masterDisplay": "string",
          "maxCll": "string",
          "profile": "string",
          "width": 0
        },
        "videoHardware": true
      },
      "platform": "string",
      "positionMs": 1800000,
      "problem": "string",
      "profile": {
        "id": "id_8h2k4q",
        "name": "Fargo"
      },
      "programme": {
        "endsAt": "2026-10-18T19:30:00Z",
        "title": "Fargo"
      },
      "protocol": "string",
      "quality": {
        "id": "id_8h2k4q",
        "maxAudioBitrateKbps": 0,
        "maxHeight": 0,
        "maxVideoBitrateKbps": 0,
        "mode": "string",
        "step": "string"
      },
      "rateWindowMs": 1800000,
      "startedAt": "2026-10-18T19:30:00Z",
      "state": "string",
      "transcode": {
        "cadenceMs": 1800000,
        "observedAt": "2026-10-18T19:30:00Z",
        "speed": 0
      },
      "user": {
        "id": "id_8h2k4q",
        "name": "Fargo"
      },
      "videoHeight": 0
    }
  ],
  "observedAt": "2026-10-18T19:30:00Z",
  "page": {
    "limit": 0,
    "nextCursor": "eyJvIjoyMH0",
    "revision": "r12",
    "start": 0,
    "total": 0
  },
  "scope": {
    "serverId": "id_8h2k4q",
    "viewerFence": "string"
  },
  "totals": {
    "atHome": 0,
    "away": 0,
    "bandwidthKbps": 0,
    "converting": 0,
    "paused": 0,
    "people": 0,
    "streams": 1800000
  }
}
Schema
  • itemsarray of objectrequired
    • addressstring
    • appstring
    • bandwidthKbpsinteger
    • bitrateKbpsinteger
    • bufferingSincestring
    • channelobject
      • namestringrequired
      • numberstring
    • currentBitrateKbpsnumber | any | nullrequired
    • decisionobjectrequired
      • audioobject
        • actionstringrequired
        • channelsinteger
        • reasonsarray of stringrequired
        • tostring
      • subtitlesobject
        • actionstringrequired
        • channelsinteger
        • reasonsarray of stringrequired
        • tostring
      • videoobject
        • actionstringrequired
        • channelsinteger
        • reasonsarray of stringrequired
        • tostring
    • deliveryobject
      • audioBitrateBpsinteger
      • audioChannelsinteger
      • hardwareobject
        • backendstringrequired
        • executionobject
          • fallbackCountintegerrequired
          • lastLaunchobjectrequired
            • decoderobjectrequired
              • executionstringrequired
              • namestringrequired
            • encoderobjectrequired
              • executionstringrequired
              • namestringrequired
            • generationintegerrequired
            • renderNodestring
            • sequenceintegerrequired
            • startedAtstringrequired
          • launchCountintegerrequired
          • softwareLaunchCountintegerrequired
          • unknownLaunchCountintegerrequired
        • stagesarray of objectrequired
          • executionstringrequired
          • operationstringrequired
      • streamsarray of objectrequired
        • actionstringrequired
        • inputCodecstringrequired
        • kindstringrequired
        • outputCodecstringrequired
      • videoBitrateBpsinteger
      • videoHeightinteger
    • deviceobjectrequired
      • idstringrequired
      • namestringrequired
    • durationMsinteger
    • enginestring
    • idstringrequired
    • itemobject
      • airDatestring
      • albumstring
      • artarray of objectrequired
        • idstringrequired
        • kindstringrequired
        • revisionstringrequired
        • rolestringrequired
      • artiststring
      • authorstring
      • bookTitlestring
      • episodeNumberinteger
      • episodeNumberingstring
      • idstringrequired
      • kindstringrequired
      • seasonNumberinteger
      • showIdstring
      • showTitlestring
      • titlestringrequired
      • yearinteger
    • kindstringrequired
    • livebooleanrequired
    • locationstringrequired
    • mediaobject
      • audioobject
        • atmosbooleanrequired
        • bitDepthinteger
        • channelsinteger
        • codecstringrequired
        • commentarybooleanrequired
        • defaultbooleanrequired
        • dtsxbooleanrequired
        • idstringrequired
        • languagestring
        • layoutstring
        • objectAudiostring
        • profilestring
        • sampleRateinteger
        • titlestring
        • variantstring
        • visualImpairedbooleanrequired
      • subtitlesobject
        • formatstringrequired
        • idstringrequired
        • languagestring
      • videoobject
        • bitDepthinteger
        • bitrateKbpsinteger
        • chromaSubsamplingstring
        • codecstringrequired
        • dolbyVisionBaseLayerbooleanrequired
        • dolbyVisionCmVersionstring
        • dolbyVisionCompatibilityinteger
        • dolbyVisionEnhancementTypestring
        • dolbyVisionProfileinteger
        • dolbyVisionRpubooleanrequired
        • fpsnumber
        • frameRateDenominatorinteger
        • frameRateModestring
        • frameRateNumeratorinteger
        • hdrstring
        • hdr10Plusbooleanrequired
        • heightinteger
        • idstringrequired
        • interlacedboolean
        • levelinteger
        • masterDisplaystring
        • maxCllstring
        • profilestring
        • widthinteger
      • videoHardwareboolean
    • platformstring
    • positionMsintegerrequired
    • problemstring
    • profileobjectrequired
      • idstringrequired
      • namestringrequired
    • programmeobject
      • endsAtstringrequired
      • titlestringrequired
    • protocolstringrequired
    • qualityobject
      • idstring
      • maxAudioBitrateKbpsinteger
      • maxHeightinteger
      • maxVideoBitrateKbpsinteger
      • modestringrequired
      • stepstring
    • rateWindowMsintegerrequired
    • startedAtstringrequired
    • statestringrequired
    • transcodeobject
      • cadenceMsintegerrequired
      • observedAtstringrequired
      • speednumberrequired
    • userobjectrequired
      • idstringrequired
      • namestringrequired
    • videoHeightinteger
  • observedAtstringrequired
  • pageobjectrequired
    • limitintegerrequired
    • nextCursorstring
    • revisionstringrequired
    • startintegerrequired
    • totalintegerrequired
  • scopeobjectrequired
    • serverIdstringrequired
    • viewerFencestringrequired
  • totalsobjectrequired
    • atHomeintegerrequired
    • awayintegerrequired
    • bandwidthKbpsintegerrequired
    • convertingintegerrequired
    • pausedintegerrequired
    • peopleintegerrequired
    • streamsintegerrequired

defaultRequest refused or unavailableapplication/json

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

Error codesinvalid_requestunauthorizednot_permittedtimeoutdatabase_busy

Example request

curl -X GET "http://127.0.0.1:32500/v1/admin/sessions" \
  -H "Authorization: Bearer $PORTICO_API_KEY"
POST/v1/admin/sessions/{id}:terminateEnd a viewer's playback, showing them an optional message; idempotentadmin
Audience
Integrations · Native API
Authorization
API key or personal access token with the admin scope, or a signed-in session
OpenAPI operation ID
terminate_admin_session
Max body
4 KiB

Parameters

NameInTypeDescription
idrequiredpathstring

Request body application/json

Example
{
  "message": "string"
}
Schema
  • messagestring

Responses

204Success

defaultRequest refused or unavailableapplication/json

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

Error codesinvalid_requestunauthorizednot_permittednot_foundtimeoutdatabase_busywriter_capacity

Example request

curl -X POST "http://127.0.0.1:32500/v1/admin/sessions/{id}:terminate" \
  -H "Authorization: Bearer $PORTICO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"message":"string"}'
GET/v1/admin/sessions/{id}/controlsRead the transport controls and current revision of any administrable sessionadmin
Audience
Integrations · Native API
Authorization
API key or personal access token with the admin scope, or a signed-in session
OpenAPI operation ID
get_admin_session_controls

Parameters

NameInTypeDescription
idrequiredpathstring

Responses

200Successapplication/json

Example
{
  "actions": [
    "string"
  ],
  "durationMs": 1800000,
  "generation": 0,
  "positionMs": 1800000,
  "revision": "r12",
  "sessionId": "id_8h2k4q",
  "state": "string"
}
Schema
  • actionsarray of stringrequired
  • durationMsinteger
  • generationintegerrequired
  • positionMsintegerrequired
  • revisionstringrequired
  • sessionIdstringrequired
  • statestringrequired

defaultRequest refused or unavailableapplication/json

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

Error codesunauthorizednot_permittednot_foundinvalid_requestrevision_requiredrevision_mismatchsession_endedinternaltimeoutdatabase_busy

Example request

curl -X GET "http://127.0.0.1:32500/v1/admin/sessions/{id}/controls" \
  -H "Authorization: Bearer $PORTICO_API_KEY"
POST/v1/admin/sessions/{id}/controlsPause, resume or seek any administrable session using its current revisionadmin
Audience
Integrations · Native API
Authorization
API key or personal access token with the admin scope, or a signed-in session
OpenAPI operation ID
control_admin_session
Max body
4 KiB

Parameters

NameInTypeDescription
idrequiredpathstring

Request body application/json · required

Example
{
  "action": "string",
  "expectedRevision": "r12",
  "positionMs": 1800000
}
Schema
  • actionstringrequired
  • expectedRevisionstringrequired
  • positionMsinteger

Responses

200Successapplication/json

Example
{
  "actions": [
    "string"
  ],
  "durationMs": 1800000,
  "generation": 0,
  "positionMs": 1800000,
  "revision": "r12",
  "sessionId": "id_8h2k4q",
  "state": "string"
}
Schema
  • actionsarray of stringrequired
  • durationMsinteger
  • generationintegerrequired
  • positionMsintegerrequired
  • revisionstringrequired
  • sessionIdstringrequired
  • statestringrequired

defaultRequest refused or unavailableapplication/json

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

Error codesunauthorizednot_permittednot_foundinvalid_requestrevision_requiredrevision_mismatchsession_endedinternaltimeoutdatabase_busywriter_capacity

Example request

curl -X POST "http://127.0.0.1:32500/v1/admin/sessions/{id}/controls" \
  -H "Authorization: Bearer $PORTICO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"action":"string","expectedRevision":"r12","positionMs":1800000}'
GET/v1/admin/webhooksList webhooks and the events they can be sentadmin
Audience
Integrations · Native API
Authorization
API key or personal access token with the admin scope, or a signed-in session
OpenAPI operation ID
list_webhooks

Responses

200Successapplication/json

Example
{
  "events": [
    "string"
  ],
  "items": [
    {
      "createdAt": "2026-10-18T19:30:00Z",
      "dropped": 0,
      "enabled": true,
      "events": [
        "string"
      ],
      "failing": 0,
      "id": "id_8h2k4q",
      "name": "Fargo",
      "requiresOwnerReview": true,
      "revision": 0,
      "secretHint": "string",
      "updatedAt": "2026-10-18T19:30:00Z",
      "url": "https://example.com/…",
      "waiting": 0
    }
  ],
  "maximum": 0
}
Schema
  • eventsarray of stringrequired
  • itemsarray of objectrequired
    • createdAtstringrequired
    • droppedintegerrequired
    • enabledbooleanrequired
    • eventsarray of stringrequired
    • failingintegerrequired
    • idstringrequired
    • namestringrequired
    • requiresOwnerReviewboolean
    • revisionintegerrequired
    • secretHintstringrequired
    • updatedAtstringrequired
    • urlstringrequired
    • waitingintegerrequired
  • maximumintegerrequired

defaultRequest refused or unavailableapplication/json

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

Error codesunauthorizednot_permittedinsufficient_scopeinvalid_requestadministration_unavailableinternaldatabase_busy

Example request

curl -X GET "http://127.0.0.1:32500/v1/admin/webhooks" \
  -H "Authorization: Bearer $PORTICO_API_KEY"
POST/v1/admin/webhooksAdd a webhook; its signing secret is shown onceadmin
Audience
Integrations · Native API
Authorization
API key or personal access token with the admin scope, or a signed-in session
OpenAPI operation ID
create_webhook
Max body
8 KiB

Request body application/json · required

Example
{
  "enabled": true,
  "events": [
    "string"
  ],
  "name": "Fargo",
  "operationId": "id_8h2k4q",
  "secret": "string",
  "url": "https://example.com/…"
}
Schema
  • enabledboolean
  • eventsarray of stringrequired
  • namestringrequired
  • operationIdstring
  • secretstring
  • urlstringrequired

Responses

201Successapplication/json

Example
{
  "secret": "string",
  "webhook": {
    "createdAt": "2026-10-18T19:30:00Z",
    "dropped": 0,
    "enabled": true,
    "events": [
      "string"
    ],
    "failing": 0,
    "id": "id_8h2k4q",
    "name": "Fargo",
    "requiresOwnerReview": true,
    "revision": 0,
    "secretHint": "string",
    "updatedAt": "2026-10-18T19:30:00Z",
    "url": "https://example.com/…",
    "waiting": 0
  }
}
Schema
  • secretstring
  • webhookobjectrequired
    • createdAtstringrequired
    • droppedintegerrequired
    • enabledbooleanrequired
    • eventsarray of stringrequired
    • failingintegerrequired
    • idstringrequired
    • namestringrequired
    • requiresOwnerReviewboolean
    • revisionintegerrequired
    • secretHintstringrequired
    • updatedAtstringrequired
    • urlstringrequired
    • waitingintegerrequired

defaultRequest refused or unavailableapplication/json

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

Error codeswebhook_limitbody_too_largeidempotency_key_reusednot_foundunauthorizednot_permittedinsufficient_scopeinvalid_requestadministration_unavailableinternaldatabase_busywriter_capacity

Example request

curl -X POST "http://127.0.0.1:32500/v1/admin/webhooks" \
  -H "Authorization: Bearer $PORTICO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"enabled":true,"events":["string"],"name":"Fargo","operationId":"id_8h2k4q","secret":"string","url":"https://example.com/…"}'
DELETE/v1/admin/webhooks/{id}Remove a webhook with its queue and its logadmin
Audience
Integrations · Native API
Authorization
API key or personal access token with the admin scope, or a signed-in session
OpenAPI operation ID
delete_webhook

Parameters

NameInTypeDescription
idrequiredpathstring

Responses

204Success

defaultRequest refused or unavailableapplication/json

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

Error codesnot_foundunauthorizednot_permittedinsufficient_scopeinvalid_requestadministration_unavailableinternaldatabase_busywriter_capacity

Example request

curl -X DELETE "http://127.0.0.1:32500/v1/admin/webhooks/{id}" \
  -H "Authorization: Bearer $PORTICO_API_KEY"
GET/v1/admin/webhooks/{id}Read one webhookadmin
Audience
Integrations · Native API
Authorization
API key or personal access token with the admin scope, or a signed-in session
OpenAPI operation ID
get_webhook

Parameters

NameInTypeDescription
idrequiredpathstring

Responses

200Successapplication/json

Example
{
  "createdAt": "2026-10-18T19:30:00Z",
  "dropped": 0,
  "enabled": true,
  "events": [
    "string"
  ],
  "failing": 0,
  "id": "id_8h2k4q",
  "name": "Fargo",
  "requiresOwnerReview": true,
  "revision": 0,
  "secretHint": "string",
  "updatedAt": "2026-10-18T19:30:00Z",
  "url": "https://example.com/…",
  "waiting": 0
}
Schema
  • createdAtstringrequired
  • droppedintegerrequired
  • enabledbooleanrequired
  • eventsarray of stringrequired
  • failingintegerrequired
  • idstringrequired
  • namestringrequired
  • requiresOwnerReviewboolean
  • revisionintegerrequired
  • secretHintstringrequired
  • updatedAtstringrequired
  • urlstringrequired
  • waitingintegerrequired

defaultRequest refused or unavailableapplication/json

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

Error codesnot_foundunauthorizednot_permittedinsufficient_scopeinvalid_requestadministration_unavailableinternaldatabase_busy

Example request

curl -X GET "http://127.0.0.1:32500/v1/admin/webhooks/{id}" \
  -H "Authorization: Bearer $PORTICO_API_KEY"
PATCH/v1/admin/webhooks/{id}Change a webhook, turn it on or off, or replace its secret; fenced by its revisionadmin
Audience
Integrations · Native API
Authorization
API key or personal access token with the admin scope, or a signed-in session
OpenAPI operation ID
update_webhook
Max body
8 KiB

Parameters

NameInTypeDescription
idrequiredpathstring

Request body application/json · required

Example
{
  "enabled": true,
  "events": [
    "string"
  ],
  "expectedRevision": 0,
  "name": "Fargo",
  "rotateSecret": true,
  "secret": "string",
  "url": "https://example.com/…"
}
Schema
  • enabledboolean
  • eventsarray of string
  • expectedRevisionintegerrequired
  • namestring
  • rotateSecretboolean
  • secretstring
  • urlstring

Responses

200Successapplication/json

Example
{
  "secret": "string",
  "webhook": {
    "createdAt": "2026-10-18T19:30:00Z",
    "dropped": 0,
    "enabled": true,
    "events": [
      "string"
    ],
    "failing": 0,
    "id": "id_8h2k4q",
    "name": "Fargo",
    "requiresOwnerReview": true,
    "revision": 0,
    "secretHint": "string",
    "updatedAt": "2026-10-18T19:30:00Z",
    "url": "https://example.com/…",
    "waiting": 0
  }
}
Schema
  • secretstring
  • webhookobjectrequired
    • createdAtstringrequired
    • droppedintegerrequired
    • enabledbooleanrequired
    • eventsarray of stringrequired
    • failingintegerrequired
    • idstringrequired
    • namestringrequired
    • requiresOwnerReviewboolean
    • revisionintegerrequired
    • secretHintstringrequired
    • updatedAtstringrequired
    • urlstringrequired
    • waitingintegerrequired

defaultRequest refused or unavailableapplication/json

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

Error codesbody_too_largerevision_mismatchnot_foundunauthorizednot_permittedinsufficient_scopeinvalid_requestadministration_unavailableinternalrevision_requireddatabase_busywriter_capacity

Example request

curl -X PATCH "http://127.0.0.1:32500/v1/admin/webhooks/{id}" \
  -H "Authorization: Bearer $PORTICO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"enabled":true,"events":["string"],"expectedRevision":0,"name":"Fargo","rotateSecret":true,"secret":"string","url":"https://example.com/…"}'
GET/v1/admin/webhooks/{id}/deliveriesRead a webhook's delivery log, newest firstadmin
Audience
Integrations · Native API
Authorization
API key or personal access token with the admin scope, or a signed-in session
OpenAPI operation ID
list_webhook_deliveries

Parameters

NameInTypeDescription
idrequiredpathstring
cursorquerystring
limitqueryinteger | ""1–100

Responses

200Successapplication/json

Example
{
  "items": [
    {
      "attempts": 0,
      "createdAt": "2026-10-18T19:30:00Z",
      "durationMs": 1800000,
      "error": "string",
      "event": "string",
      "finishedAt": "2026-10-18T19:30:00Z",
      "id": "id_8h2k4q",
      "nextAttemptAt": "2026-10-18T19:30:00Z",
      "state": "string",
      "status": 0
    }
  ],
  "limit": 0,
  "nextCursor": "eyJvIjoyMH0"
}
Schema
  • itemsarray of objectrequired
    • attemptsintegerrequired
    • createdAtstringrequired
    • durationMsintegerrequired
    • errorstring
    • eventstringrequired
    • finishedAtstring
    • idstringrequired
    • nextAttemptAtstring
    • statestringrequired
    • statusintegerrequired
  • limitintegerrequired
  • nextCursorstring

defaultRequest refused or unavailableapplication/json

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

Error codesnot_foundunauthorizednot_permittedinsufficient_scopeinvalid_requestadministration_unavailableinternaldatabase_busy

Example request

curl -X GET "http://127.0.0.1:32500/v1/admin/webhooks/{id}/deliveries" \
  -H "Authorization: Bearer $PORTICO_API_KEY"
POST/v1/admin/webhooks/{id}/testSend a test event to a webhook; the result appears in its delivery logadmin
Audience
Integrations · Native API
Authorization
API key or personal access token with the admin scope, or a signed-in session
OpenAPI operation ID
test_webhook

Parameters

NameInTypeDescription
idrequiredpathstring

Responses

202Successapplication/json

Example
{
  "attempts": 0,
  "createdAt": "2026-10-18T19:30:00Z",
  "durationMs": 1800000,
  "error": "string",
  "event": "string",
  "finishedAt": "2026-10-18T19:30:00Z",
  "id": "id_8h2k4q",
  "nextAttemptAt": "2026-10-18T19:30:00Z",
  "state": "string",
  "status": 0
}
Schema
  • attemptsintegerrequired
  • createdAtstringrequired
  • durationMsintegerrequired
  • errorstring
  • eventstringrequired
  • finishedAtstring
  • idstringrequired
  • nextAttemptAtstring
  • statestringrequired
  • statusintegerrequired

defaultRequest refused or unavailableapplication/json

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

Error codeswebhook_limitnot_foundunauthorizednot_permittedinsufficient_scopeinvalid_requestadministration_unavailableinternaldatabase_busywriter_capacity

Example request

curl -X POST "http://127.0.0.1:32500/v1/admin/webhooks/{id}/test" \
  -H "Authorization: Bearer $PORTICO_API_KEY"
GET/v1/albums/{id}/songsRead album songsread
Audience
Integrations · Native API
Authorization
API key or personal access token with the read scope, or a signed-in session
OpenAPI operation ID
get_albums_id_songs

Parameters

NameInTypeDescription
idrequiredpathstring
cursorquerystring
limitqueryinteger

Responses

200Successapplication/json

Example
{
  "nextCursor": "eyJvIjoyMH0",
  "songs": [
    {
      "addedAt": "2026-10-18T19:30:00Z",
      "audioFacts": {
        "atmos": true,
        "bitDepth": 0,
        "channels": 0,
        "codec": "string",
        "layout": "string",
        "lossless": true,
        "sampleRate": 0
      },
      "available": true,
      "backdropUrl": "https://example.com/…",
      "bookFile": {
        "bookId": "id_8h2k4q",
        "bookTitle": "Fargo",
        "discNumber": 0,
        "localMetadata": {
          "authors": [],
          "description": "string",
          "edition": "string",
          "identifiers": [],
          "language": "en",
          "narrators": [],
          "publishedYear": 0,
          "publisher": "string",
          "series": [],
          "sources": {}
        },
        "localMetadataIssue": "string",
        "localPolicy": {
          "localMode": "string",
          "revision": 0
        },
        "partNumber": 0,
        "sourceBoundary": "string"
      },
      "durationMs": 1800000,
      "durationState": "unrepresentable",
      "episode": {
        "airDate": "string",
        "localIdentityStatus": "string",
        "number": 0,
        "numbering": "string",
        "orderingBasis": "string",
        "providerMatchStatus": "string",
        "seasonId": "id_8h2k4q",
        "seasonNumber": 0,
        "showId": "id_8h2k4q",
        "showTitle": "Fargo",
        "sourceBoundary": "string"
      },
      "fileInfoOpening": "string",
      "id": "id_8h2k4q",
      "kind": "string",
      "libraryId": "id_8h2k4q",
      "missing": true,
      "overview": "string",
      "posterUrl": "https://example.com/…",
      "progressMs": 1800000,
      "song": {
        "albumArtist": "string",
        "albumId": "id_8h2k4q",
        "albumTitle": "Fargo",
        "artist": "string",
        "discNumber": 0,
        "localMetadataIssue": "string",
        "providerArtist": "string",
        "providerMatchStatus": "string",
        "providerObservedAt": "2026-10-18T19:30:00Z",
        "providerRecordingId": "id_8h2k4q",
        "providerReleaseGroupId": "id_8h2k4q",
        "providerReleaseId": "id_8h2k4q",
        "providerReleaseStatus": "string",
        "providerSourceUrl": "https://example.com/…",
        "providerTitle": "Fargo",
        "providerTrackId": "id_8h2k4q",
        "trackNumber": 0
      },
      "sources": [
        {
          "audioCodec": "string",
          "container": "string",
          "durationMs": 1800000,
          "height": 0,
          "id": "id_8h2k4q",
          "videoCodec": "string",
          "width": 0
        }
      ],
      "stillUrl": "https://example.com/…",
      "title": "Fargo",
      "watched": true,
      "year": 0
    }
  ]
}
Schema
  • nextCursorstringrequired
  • songsarray of objectrequired
    • addedAtstring | any | nullrequired
    • audioFactsobject
      • atmosboolean
      • bitDepthinteger
      • channelsinteger
      • codecstringrequired
      • layoutstring
      • losslessboolean
      • sampleRateinteger
    • availablebooleanrequired
    • backdropUrlstring
    • bookFileobject
      • bookIdstringrequired
      • bookTitlestringrequired
      • discNumberinteger
      • localMetadataobject
        • authorsarray of stringrequired
        • descriptionstring
        • editionstring
        • identifiersarray of objectrequired
          • schemestringrequired
          • valuestringrequired
        • languagestring
        • narratorsarray of stringrequired
        • publishedYearinteger
        • publisherstring
        • seriesarray of objectrequired
          • namestringrequired
          • positionstring
        • sourcesobjectrequired
      • localMetadataIssuestring
      • localPolicyobject
        • localModestringrequired
        • revisionintegerrequired
      • partNumberinteger
      • sourceBoundarystringrequired
    • durationMsinteger≥ 0
    • durationStatestringone of "unrepresentable"
    • episodeobject
      • airDatestring
      • localIdentityStatusstringrequired
      • numberintegerrequired
      • numberingstringrequired
      • orderingBasisstringrequired
      • providerMatchStatusstringrequired
      • seasonIdstring
      • seasonNumberinteger
      • showIdstringrequired
      • showTitlestringrequired
      • sourceBoundarystringrequired
    • fileInfoOpeningstring
    • idstringrequired
    • kindstringrequired
    • libraryIdstringrequired
    • missingbooleanrequired
    • overviewstring
    • posterUrlstring
    • progressMsintegerrequired≥ 0
    • songobject
      • albumArtiststringrequired
      • albumIdstringrequired
      • albumTitlestringrequired
      • artiststringrequired
      • discNumberinteger
      • localMetadataIssuestring
      • providerArtiststring
      • providerMatchStatusstringrequired
      • providerObservedAtstring
      • providerRecordingIdstring
      • providerReleaseGroupIdstring
      • providerReleaseIdstring
      • providerReleaseStatusstringrequired
      • providerSourceUrlstring
      • providerTitlestring
      • providerTrackIdstring
      • trackNumberinteger
    • sourcesarray of object
      • audioCodecstringrequired
      • containerstringrequired
      • durationMsintegerrequired≥ 0
      • heightintegerrequired
      • idstringrequired
      • videoCodecstringrequired
      • widthintegerrequired
    • stillUrlstring
    • titlestringrequired
    • watchedboolean
    • yearinteger

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/albums/{id}/songs" \
  -H "Authorization: Bearer $PORTICO_API_KEY"
GET/v1/artists/{id}/albumsRead artist albumread
Audience
Integrations · Native API
Authorization
API key or personal access token with the read scope, or a signed-in session
OpenAPI operation ID
get_artists_id_albums

Parameters

NameInTypeDescription
idrequiredpathstring
cursorquerystring
limitqueryinteger

Responses

200Successapplication/json

Example
{
  "albums": [
    {
      "albumArtist": "string",
      "albumArtistId": "id_8h2k4q",
      "homeActions": {
        "collection": true,
        "delete": true,
        "details": true,
        "download": true,
        "editMetadata": true,
        "favorite": true,
        "myList": true,
        "notInterested": true,
        "play": true,
        "played": true,
        "playlist": true,
        "queue": true,
        "rating": true,
        "refreshMetadata": true,
        "removeFromContinue": true,
        "selection": {
          "collection": true,
          "delete": true,
          "download": true,
          "edit": true,
          "favorite": true,
          "myList": true,
          "play": true,
          "playlist": true,
          "queue": true,
          "refresh": true,
          "watched": true
        },
        "state": {
          "containerRevision": 0,
          "favorite": true,
          "personalRevision": 0,
          "rating": 0,
          "watched": true,
          "watchlisted": true
        },
        "watched": true
      },
      "id": "id_8h2k4q",
      "libraryId": "id_8h2k4q",
      "posterUrl": "https://example.com/…",
      "providerMatchStatus": "string",
      "providerObservedAt": "2026-10-18T19:30:00Z",
      "providerReleaseCountry": "string",
      "providerReleaseDate": "string",
      "providerReleaseGroupId": "id_8h2k4q",
      "providerReleaseId": "id_8h2k4q",
      "role": "album",
      "title": "Fargo",
      "year": 0
    }
  ],
  "nextCursor": "eyJvIjoyMH0"
}
Schema
  • albumsarray of objectrequired
    • albumArtiststringrequired
    • albumArtistIdstringrequired
    • homeActionsobject
      • collectionbooleanrequired
      • deletebooleanrequired
      • detailsbooleanrequired
      • downloadbooleanrequired
      • editMetadatabooleanrequired
      • favoritebooleanrequired
      • myListbooleanrequired
      • notInterestedboolean
      • playbooleanrequired
      • playedbooleanrequired
      • playlistbooleanrequired
      • queuebooleanrequired
      • ratingbooleanrequired
      • refreshMetadatabooleanrequired
      • removeFromContinueboolean
      • selectionobjectrequired
        • collectionbooleanrequired
        • deletebooleanrequired
        • downloadbooleanrequired
        • editbooleanrequired
        • favoritebooleanrequired
        • myListbooleanrequired
        • playbooleanrequired
        • playlistbooleanrequired
        • queuebooleanrequired
        • refreshbooleanrequired
        • watchedbooleanrequired
      • stateobjectrequired
        • containerRevisionintegerrequired
        • favoritebooleanrequired
        • personalRevisionintegerrequired
        • ratingnumber | any | nullrequired
        • watchedbooleanrequired
        • watchlistedbooleanrequired
      • watchedbooleanrequired
    • idstringrequired
    • libraryIdstringrequired
    • posterUrlstring
    • providerMatchStatusstringrequired
    • providerObservedAtstring
    • providerReleaseCountrystring
    • providerReleaseDatestring
    • providerReleaseGroupIdstring
    • providerReleaseIdstring
    • rolestringone of "album", "ep", "single", "compilation", "appearance"
    • titlestringrequired
    • yearinteger
  • nextCursorstringrequired

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/artists/{id}/albums" \
  -H "Authorization: Bearer $PORTICO_API_KEY"
GET/v1/books/{id}/chaptersRead book chaptersread
Audience
Integrations · Native API
Authorization
API key or personal access token with the read scope, or a signed-in session
OpenAPI operation ID
get_books_id_chapters

Parameters

NameInTypeDescription
idrequiredpathstring
cursorquerystring
limitqueryinteger

Responses

200Successapplication/json

Example
{
  "chapters": [
    {
      "endMs": 1800000,
      "id": "id_8h2k4q",
      "index": 0,
      "itemId": "id_8h2k4q",
      "startMs": 1800000,
      "title": "Fargo"
    }
  ],
  "nextCursor": "eyJvIjoyMH0"
}
Schema
  • chaptersarray of objectrequired
    • endMsintegerrequired≥ 0
    • idstringrequired
    • indexintegerrequired
    • itemIdstringrequired
    • startMsintegerrequired≥ 0
    • titlestringrequired
  • nextCursorstringrequired

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/books/{id}/chapters" \
  -H "Authorization: Bearer $PORTICO_API_KEY"
GET/v1/capabilitiesRead this viewer's feature states and published limitsread
Audience
Integrations · Native API
Authorization
API key or personal access token with the read scope, or a signed-in session
OpenAPI operation ID
get_capabilities

Responses

200Successapplication/json

Example
{
  "api": {
    "level": 0,
    "major": 0
  },
  "features": {
    "key": "string"
  },
  "limits": {
    "key": 0
  }
}
Schema
  • apiobjectrequired
    • levelintegerrequired
    • majorintegerrequired
  • featuresobjectrequired
  • limitsobjectrequired

defaultRequest refused or unavailableapplication/json

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

Error codesunauthorizedinternaldatabase_busy

Example request

curl -X GET "http://127.0.0.1:32500/v1/capabilities" \
  -H "Authorization: Bearer $PORTICO_API_KEY"
GET/v1/eventsRead the authorized event ring by long-poll or server-sent streamread
Audience
Integrations · Native API
Authorization
API key or personal access token with the read scope, or a signed-in session
OpenAPI operation ID
get_events

Parameters

NameInTypeDescription
afterquerystring
waitMsquerystring

Responses

200Successapplication/json

Example
{
  "events": [
    {
      "at": "2026-10-18T19:30:00Z",
      "id": "id_8h2k4q",
      "type": "capacity.changed",
      "variant": "capacity"
    }
  ],
  "more": true,
  "nextAfter": "string"
}
Schema
  • eventsarray of objectrequired
    • atstringrequired
    • idstringrequiredlength 1–128
    • type"capacity.changed"required
    • variant"capacity"required
  • morebooleanrequired
  • nextAfterstringrequired

defaultRequest refused or unavailableapplication/json

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

Error codesunauthorizedinvalid_requestinvalid_cursorevent_wait_limitevent_stream_existsstream_unavailableinternaldatabase_busy

Example request

curl -X GET "http://127.0.0.1:32500/v1/events" \
  -H "Authorization: Bearer $PORTICO_API_KEY"
GET/v1/integrations/app-passwordsList named integration app passwordssession
Audience
Integrations · Native API
Authorization
Session only; API keys and personal access tokens are refused
OpenAPI operation ID
list_integration_app_passwords

Parameters

NameInTypeDescription
cursorquerystring

Responses

200Successapplication/json

Example
{
  "items": [
    {
      "accountId": "id_8h2k4q",
      "id": "id_8h2k4q",
      "name": "Fargo",
      "profileId": "id_8h2k4q",
      "scopes": [
        "string"
      ],
      "state": "string",
      "username": "Fargo"
    }
  ],
  "nextCursor": "eyJvIjoyMH0"
}
Schema
  • itemsarray of objectrequired
    • accountIdstringrequired
    • idstringrequired
    • namestringrequired
    • profileIdstringrequired
    • scopesarray of stringrequired
    • statestringrequired
    • usernamestringrequired
  • nextCursorstring

defaultRequest refused or unavailableapplication/json

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

Error codesunauthorizednot_permittedinsufficient_scopesession_requiredinvalid_requestnot_foundcredential_limitinternaldatabase_busy

Example request

curl -X GET "http://127.0.0.1:32500/v1/integrations/app-passwords" \
  -H "Authorization: Bearer $PORTICO_ACCESS_TOKEN"
POST/v1/integrations/app-passwordsCreate an integration app password for one account and profilesession
Audience
Integrations · Native API
Authorization
Session only; API keys and personal access tokens are refused
OpenAPI operation ID
create_integration_app_password
Max body
4 KiB

Request body application/json · required

Example
{
  "accountId": "id_8h2k4q",
  "expiresAt": "2026-10-18T19:30:00Z",
  "name": "Fargo",
  "operationId": "id_8h2k4q",
  "profileId": "id_8h2k4q",
  "scopes": [
    "string"
  ]
}
Schema
  • accountIdstringrequired
  • expiresAtstring
  • namestringrequired
  • operationIdstringrequired
  • profileIdstringrequired
  • scopesarray of stringrequired

Responses

201Successapplication/json

Example
{
  "appPassword": {
    "accountId": "id_8h2k4q",
    "id": "id_8h2k4q",
    "name": "Fargo",
    "profileId": "id_8h2k4q",
    "scopes": [
      "string"
    ],
    "state": "string",
    "username": "Fargo"
  },
  "secret": "string"
}
Schema
  • appPasswordobjectrequired
    • accountIdstringrequired
    • idstringrequired
    • namestringrequired
    • profileIdstringrequired
    • scopesarray of stringrequired
    • statestringrequired
    • usernamestringrequired
  • secretstring

defaultRequest refused or unavailableapplication/json

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

Error codesunauthorizednot_permittedinsufficient_scopesession_requiredinvalid_requestnot_foundcredential_limitinternaldatabase_busywriter_capacity

Example request

curl -X POST "http://127.0.0.1:32500/v1/integrations/app-passwords" \
  -H "Authorization: Bearer $PORTICO_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"accountId":"id_8h2k4q","expiresAt":"2026-10-18T19:30:00Z","name":"Fargo","operationId":"id_8h2k4q","profileId":"id_8h2k4q","scopes":["string"]}'
DELETE/v1/integrations/app-passwords/{id}Revoke an app password and every token issued from itsession
Audience
Integrations · Native API
Authorization
Session only; API keys and personal access tokens are refused
OpenAPI operation ID
revoke_integration_app_password

Parameters

NameInTypeDescription
idrequiredpathstring

Responses

200Successapplication/json

Example
{
  "accountId": "id_8h2k4q",
  "id": "id_8h2k4q",
  "name": "Fargo",
  "profileId": "id_8h2k4q",
  "scopes": [
    "string"
  ],
  "state": "string",
  "username": "Fargo"
}
Schema
  • accountIdstringrequired
  • idstringrequired
  • namestringrequired
  • profileIdstringrequired
  • scopesarray of stringrequired
  • statestringrequired
  • usernamestringrequired

defaultRequest refused or unavailableapplication/json

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

Error codesunauthorizednot_permittedinsufficient_scopesession_requiredinvalid_requestnot_foundcredential_limitinternaldatabase_busywriter_capacity

Example request

curl -X DELETE "http://127.0.0.1:32500/v1/integrations/app-passwords/{id}" \
  -H "Authorization: Bearer $PORTICO_ACCESS_TOKEN"
GET/v1/integrations/app-passwords/{id}/secretReveal this credential to the signed-in ownersession
Audience
Integrations · Native API
Authorization
Session only; API keys and personal access tokens are refused
OpenAPI operation ID
reveal_integration_app_password

Parameters

NameInTypeDescription
idrequiredpathstring

Responses

200Successapplication/json

Example
{
  "id": "id_8h2k4q",
  "secret": "string"
}
Schema
  • idstringrequired
  • secretstringrequired

defaultRequest refused or unavailableapplication/json

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

Error codesunauthorizednot_permittedinsufficient_scopesession_requiredinvalid_requestnot_foundcredential_limitinternaldatabase_busy

Example request

curl -X GET "http://127.0.0.1:32500/v1/integrations/app-passwords/{id}/secret" \
  -H "Authorization: Bearer $PORTICO_ACCESS_TOKEN"
POST/v1/integrations/authenticateExchange a dedicated app password for a scoped integration tokensession
Audience
Integrations · Native API
Authorization
No credential needed
OpenAPI operation ID
exchange_integration_app_password
Max body
4 KiB

Request body application/json · required

Example
{
  "name": "Fargo",
  "password": "string",
  "username": "Fargo"
}
Schema
  • namestringrequired
  • passwordstringrequired
  • usernamestringrequired

Responses

201Successapplication/json

Example
{
  "accountId": "id_8h2k4q",
  "token": "string",
  "userId": "id_8h2k4q",
  "username": "Fargo"
}
Schema
  • accountIdstringrequired
  • tokenstringrequired
  • userIdstringrequired
  • usernamestringrequired

defaultRequest refused or unavailableapplication/json

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

Error codesunauthorizednot_permittedinsufficient_scopesession_requiredinvalid_requestnot_foundcredential_limitinternaldatabase_busywriter_capacity

Example request

curl -X POST "http://127.0.0.1:32500/v1/integrations/authenticate" \
  -H "Content-Type: application/json" \
  -d '{"name":"Fargo","password":"string","username":"Fargo"}'
GET/v1/integrations/compatibilityRead integration compatibility capabilitiesadmin
Audience
Integrations · Native API
Authorization
API key or personal access token with the admin scope, or a signed-in session
OpenAPI operation ID
get_integration_compatibility

Responses

200Successapplication/json

Example
{
  "enabled": true,
  "players": true,
  "profiles": [
    "string"
  ]
}
Schema
  • enabledbooleanrequired
  • playersbooleanrequired
  • profilesarray of stringrequired

defaultRequest refused or unavailableapplication/json

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

Error codesunauthorizednot_permittedinsufficient_scopesession_requiredinvalid_requestnot_foundcredential_limitinternaldatabase_busy

Example request

curl -X GET "http://127.0.0.1:32500/v1/integrations/compatibility" \
  -H "Authorization: Bearer $PORTICO_API_KEY"
GET/v1/integrations/itemsRead bounded native catalog facts with exact visible totalsread
Audience
Integrations · Native API
Authorization
API key or personal access token with the read scope, or a signed-in session
OpenAPI operation ID
integration_items

Parameters

NameInTypeDescription
idsquerystring
libraryIdquerystring
libraryKindquerystring
kindquerystring
parentIdquerystring
providerquerystring
providerIdquerystring
yearquerystring
searchquerystring
sortquerystring
orderquerystring
addedAfterquerystring
addedBeforequerystring
includeFilesquerystring
hasPathsquerystring
cursorquerystring
limitqueryinteger | ""1–100

Responses

200Successapplication/json

Example
{
  "items": [
    {
      "addedAt": "2026-10-18T19:30:00Z",
      "available": true,
      "durationSeconds": 0,
      "episode": {
        "airDate": "string",
        "localIdentityStatus": "string",
        "number": 0,
        "numbering": "string",
        "orderingBasis": "string",
        "providerMatchStatus": "string",
        "seasonId": "id_8h2k4q",
        "seasonNumber": 0,
        "showId": "id_8h2k4q",
        "showTitle": "Fargo",
        "sourceBoundary": "string"
      },
      "height": 0,
      "id": "id_8h2k4q",
      "kind": "string",
      "libraryId": "id_8h2k4q",
      "mediaSources": [
        {
          "audioCodec": "string",
          "available": true,
          "bitRate": 0,
          "container": "string",
          "durationSeconds": 0,
          "edition": "string",
          "id": "id_8h2k4q",
          "partIndex": 0,
          "path": "string",
          "size": 0,
          "video": {}
        }
      ],
      "mediaSourcesNextCursor": "eyJvIjoyMH0",
      "paths": [
        "string"
      ],
      "providerIds": {
        "key": "string"
      },
      "season": {
        "number": 0,
        "showId": "id_8h2k4q"
      },
      "title": "Fargo",
      "width": 0,
      "year": 0
    }
  ],
  "nextCursor": "eyJvIjoyMH0",
  "total": 0
}
Schema
  • itemsarray of objectrequired
    • addedAtstring
    • availablebooleanrequired
    • durationSecondsnumber
    • episodeobject
      • airDatestring
      • localIdentityStatusstringrequired
      • numberintegerrequired
      • numberingstringrequired
      • orderingBasisstringrequired
      • providerMatchStatusstringrequired
      • seasonIdstring
      • seasonNumberinteger
      • showIdstringrequired
      • showTitlestringrequired
      • sourceBoundarystringrequired
    • heightinteger
    • idstringrequired
    • kindstringrequired
    • libraryIdstringrequired
    • mediaSourcesarray of objectrequired
      • audioCodecstring
      • availablebooleanrequired
      • bitRateinteger
      • containerstringrequired
      • durationSecondsnumberrequired
      • editionstring
      • idstringrequired
      • partIndexintegerrequired
      • pathstring
      • sizeintegerrequired
      • videoobject
        • bitDepthinteger
        • bitRateinteger
        • codecstringrequired
        • dynamicRangestring
        • frameRatenumber
        • hdr10Plusboolean
        • heightintegerrequired
        • widthintegerrequired
    • mediaSourcesNextCursorstring
    • pathsarray of stringrequired
    • providerIdsobjectrequired
    • seasonobject
      • numberintegerrequired
      • showIdstringrequired
    • titlestringrequired
    • widthinteger
    • yearinteger
  • nextCursorstring
  • totalintegerrequired

defaultRequest refused or unavailableapplication/json

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

Error codesunauthorizednot_permittedinsufficient_scopesession_requiredinvalid_requestinvalid_cursorcursor_expiredstale_continuationnot_foundinternaldatabase_busy

Example request

curl -X GET "http://127.0.0.1:32500/v1/integrations/items" \
  -H "Authorization: Bearer $PORTICO_API_KEY"
GET/v1/integrations/items/{id}/media-infoRead paged stored media facts without delivery negotiationread
Audience
Integrations · Native API
Authorization
API key or personal access token with the read scope, or a signed-in session
OpenAPI operation ID
integration_media_info

Parameters

NameInTypeDescription
idrequiredpathstring
cursorquerystring
limitqueryinteger | ""1–100

Responses

200Successapplication/json

Example
{
  "mediaSources": [
    {
      "audioCodec": "string",
      "available": true,
      "bitRate": 0,
      "container": "string",
      "durationSeconds": 0,
      "edition": "string",
      "id": "id_8h2k4q",
      "partIndex": 0,
      "path": "string",
      "size": 0,
      "video": {
        "bitDepth": 0,
        "bitRate": 0,
        "codec": "string",
        "dynamicRange": "string",
        "frameRate": 0,
        "hdr10Plus": true,
        "height": 0,
        "width": 0
      }
    }
  ],
  "nextCursor": "eyJvIjoyMH0",
  "total": 0
}
Schema
  • mediaSourcesarray of objectrequired
    • audioCodecstring
    • availablebooleanrequired
    • bitRateinteger
    • containerstringrequired
    • durationSecondsnumberrequired
    • editionstring
    • idstringrequired
    • partIndexintegerrequired
    • pathstring
    • sizeintegerrequired
    • videoobject
      • bitDepthinteger
      • bitRateinteger
      • codecstringrequired
      • dynamicRangestring
      • frameRatenumber
      • hdr10Plusboolean
      • heightintegerrequired
      • widthintegerrequired
  • nextCursorstring
  • totalintegerrequired

defaultRequest refused or unavailableapplication/json

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

Error codesunauthorizednot_permittedinsufficient_scopesession_requiredinvalid_requestinvalid_cursorcursor_expiredstale_continuationnot_foundinternaldatabase_busy

Example request

curl -X GET "http://127.0.0.1:32500/v1/integrations/items/{id}/media-info" \
  -H "Authorization: Bearer $PORTICO_API_KEY"
POST/v1/integrations/items/{id}/subtitles/refreshReread exact subtitle sidecars using stored media evidencelibrary
Audience
Integrations · Native API
Authorization
API key or personal access token with the library scope, or a signed-in session
OpenAPI operation ID
validate_integration_subtitles
Max body
4 KiB

Parameters

NameInTypeDescription
idrequiredpathstring

Request body application/json · required

Example
{}
Schema

object

Responses

200Successapplication/json

Example
{
  "sources": 0
}
Schema
  • sourcesintegerrequired

defaultRequest refused or unavailableapplication/json

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

Error codesunauthorizednot_permittednot_foundinvalid_requestinternalsubtitle_unavailablesubtitle_not_foundsubtitle_renderer_platform_unsupportedsubtitle_renderer_configurationsubtitle_conflictsubtitle_operation_conflictsubtitle_capacitysubtitle_unsupportedsubtitle_invalid_inputsubtitle_provider_not_configuredsubtitle_provider_key_rejectedsubtitle_provider_sign_in_failedsubtitle_provider_sign_in_requiredsubtitle_provider_quotasubtitle_provider_busydatabase_busywriter_capacity

Example request

curl -X POST "http://127.0.0.1:32500/v1/integrations/items/{id}/subtitles/refresh" \
  -H "Authorization: Bearer $PORTICO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
GET/v1/integrations/keysRead keys within the caller's integration grantread
Audience
Integrations · Native API
Authorization
API key or personal access token with the read scope, or a signed-in session
OpenAPI operation ID
list_integration_keys

Responses

200Successapplication/json

Example
{
  "items": [
    {
      "id": "id_8h2k4q",
      "name": "Fargo",
      "secret": "string"
    }
  ]
}
Schema
  • itemsarray of objectrequired
    • idstringrequired
    • namestringrequired
    • secretstringrequired

defaultRequest refused or unavailableapplication/json

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

Error codesunauthorizednot_permittedinsufficient_scopesession_requiredinvalid_requestnot_foundcredential_limitinternaldatabase_busy

Example request

curl -X GET "http://127.0.0.1:32500/v1/integrations/keys" \
  -H "Authorization: Bearer $PORTICO_API_KEY"
POST/v1/integrations/keysCreate a key within this app password grantread
Audience
Integrations · Native API
Authorization
API key or personal access token with the read scope, or a signed-in session
OpenAPI operation ID
mint_integration_key
Max body
4 KiB

Request body application/json · required

Example
{
  "name": "Fargo"
}
Schema
  • namestringrequired

Responses

201Successapplication/json

Example
{
  "credential": {
    "createdAt": "2026-10-18T19:30:00Z",
    "endedReason": "string",
    "expiresAt": "2026-10-18T19:30:00Z",
    "hint": "string",
    "id": "id_8h2k4q",
    "kind": "string",
    "lastUsedAt": "2026-10-18T19:30:00Z",
    "member": {
      "accountId": "id_8h2k4q",
      "profile": "string",
      "profileId": "id_8h2k4q",
      "username": "Fargo"
    },
    "name": "Fargo",
    "scopes": [
      "string"
    ],
    "state": "string"
  },
  "secret": "string"
}
Schema
  • credentialobjectrequired
    • createdAtstringrequired
    • endedReasonstring
    • expiresAtstring
    • hintstringrequired
    • idstringrequired
    • kindstringrequired
    • lastUsedAtstring
    • memberobjectrequired
      • accountIdstringrequired
      • profilestringrequired
      • profileIdstringrequired
      • usernamestringrequired
    • namestringrequired
    • scopesarray of stringrequired
    • statestringrequired
  • secretstring

defaultRequest refused or unavailableapplication/json

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

Error codesunauthorizednot_permittedinsufficient_scopesession_requiredinvalid_requestnot_foundcredential_limitinternaldatabase_busywriter_capacity

Example request

curl -X POST "http://127.0.0.1:32500/v1/integrations/keys" \
  -H "Authorization: Bearer $PORTICO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name":"Fargo"}'
GET/v1/integrations/librariesRead authorized native libraries and owner-authorized source pathsread
Audience
Integrations · Native API
Authorization
API key or personal access token with the read scope, or a signed-in session
OpenAPI operation ID
integration_libraries

Parameters

NameInTypeDescription
cursorquerystring
limitqueryinteger | ""1–100

Responses

200Successapplication/json

Example
{
  "items": [
    {
      "id": "id_8h2k4q",
      "kind": "string",
      "name": "Fargo",
      "paths": [
        "string"
      ]
    }
  ],
  "nextCursor": "eyJvIjoyMH0"
}
Schema
  • itemsarray of objectrequired
    • idstringrequired
    • kindstringrequired
    • namestringrequired
    • pathsarray of stringrequired
  • nextCursorstring

defaultRequest refused or unavailableapplication/json

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

Error codesunauthorizednot_permittedinsufficient_scopesession_requiredinvalid_requestinvalid_cursorcursor_expiredstale_continuationnot_foundinternaldatabase_busy

Example request

curl -X GET "http://127.0.0.1:32500/v1/integrations/libraries" \
  -H "Authorization: Bearer $PORTICO_API_KEY"
POST/v1/integrations/refreshQueue a refresh of one library, or of every enabled librarylibrary
Audience
Integrations · Native API
Authorization
API key or personal access token with the library scope, or a signed-in session
OpenAPI operation ID
refresh_integrations
Max body
1 MiB

Request body application/json

Example
{
  "libraryId": "id_8h2k4q"
}
Schema
  • libraryIdstring

Responses

202Successapplication/json

Example
{
  "deferred": true,
  "jobs": [
    {
      "analyzed": 0,
      "error": "string",
      "id": "id_8h2k4q",
      "jobs": [
        "string"
      ],
      "phase": "string",
      "processed": 0,
      "scanMode": "string",
      "sourceId": "id_8h2k4q",
      "status": "string",
      "warnings": 0
    }
  ],
  "paths": [
    {
      "folder": "string",
      "libraryId": "id_8h2k4q",
      "path": "string",
      "scanScope": "string",
      "sourceId": "id_8h2k4q",
      "status": "string"
    }
  ]
}
Schema
  • deferredboolean
  • jobsarray of objectrequired
    • analyzedintegerrequired
    • errorstring
    • idstringrequired
    • jobsarray of string
    • phasestring
    • processedintegerrequired
    • scanModestring
    • sourceIdstring
    • statusstringrequired
    • warningsintegerrequired
  • pathsarray of objectrequired
    • folderstring
    • libraryIdstring
    • pathstringrequired
    • scanScopestring
    • sourceIdstring
    • statusstringrequired

defaultRequest refused or unavailableapplication/json

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

Error codesunauthorizednot_permittedinsufficient_scopesession_requiredinvalid_requestbody_too_largenot_foundadministration_unavailableinternaldatabase_busywriter_capacity

Example request

curl -X POST "http://127.0.0.1:32500/v1/integrations/refresh" \
  -H "Authorization: Bearer $PORTICO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"libraryId":"id_8h2k4q"}'
GET/v1/integrations/sessionsRead native dashboard sessions or own-account controlsread
Audience
Integrations · Native API
Authorization
API key or personal access token with the read scope, or a signed-in session
OpenAPI operation ID
integration_sessions

Parameters

NameInTypeDescription
cursorquerystring
limitqueryinteger | ""1–100

Responses

200Successapplication/json

Example
{
  "items": [
    {
      "actions": [
        "string"
      ],
      "app": "string",
      "device": {
        "id": "id_8h2k4q",
        "name": "Fargo"
      },
      "durationMs": 1800000,
      "id": "id_8h2k4q",
      "item": {
        "episode": {
          "airDate": "string",
          "localIdentityStatus": "string",
          "number": 0,
          "numbering": "string",
          "orderingBasis": "string",
          "providerMatchStatus": "string",
          "seasonId": "id_8h2k4q",
          "seasonNumber": 0,
          "showId": "id_8h2k4q",
          "showTitle": "Fargo",
          "sourceBoundary": "string"
        },
        "id": "id_8h2k4q",
        "kind": "string",
        "title": "Fargo"
      },
      "kind": "string",
      "location": "string",
      "platform": "string",
      "positionMs": 1800000,
      "profile": {
        "id": "id_8h2k4q",
        "name": "Fargo"
      },
      "revision": "r12",
      "startedAt": "2026-10-18T19:30:00Z",
      "state": "string",
      "user": {
        "id": "id_8h2k4q",
        "name": "Fargo"
      }
    }
  ],
  "nextCursor": "eyJvIjoyMH0"
}
Schema
  • itemsarray of objectrequired
    • actionsarray of stringrequired
    • appstring
    • deviceobjectrequired
      • idstringrequired
      • namestringrequired
    • durationMsinteger
    • idstringrequired
    • itemobject
      • episodeobject
        • airDatestring
        • localIdentityStatusstringrequired
        • numberintegerrequired
        • numberingstringrequired
        • orderingBasisstringrequired
        • providerMatchStatusstringrequired
        • seasonIdstring
        • seasonNumberinteger
        • showIdstringrequired
        • showTitlestringrequired
        • sourceBoundarystringrequired
      • idstringrequired
      • kindstring
      • titlestringrequired
    • kindstringrequired
    • locationstring
    • platformstring
    • positionMsintegerrequired
    • profileobject
      • idstringrequired
      • namestringrequired
    • revisionstring
    • startedAtstring
    • statestringrequired
    • userobject
      • idstringrequired
      • namestringrequired
  • nextCursorstring

defaultRequest refused or unavailableapplication/json

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

Error codesunauthorizednot_permittedinsufficient_scopesession_requiredinvalid_requestinvalid_cursorcursor_expiredstale_continuationnot_foundinternaldatabase_busy

Example request

curl -X GET "http://127.0.0.1:32500/v1/integrations/sessions" \
  -H "Authorization: Bearer $PORTICO_API_KEY"
GET/v1/integrations/shows/{id}/episodesRead bounded native episodes across all seasons, or resolve one real seasonread
Audience
Integrations · Native API
Authorization
API key or personal access token with the read scope, or a signed-in session
OpenAPI operation ID
integration_show_episodes

Parameters

NameInTypeDescription
idrequiredpathstring
seasonquerystring
seasonIdquerystring
yearquerystring
searchquerystring
providerquerystring
providerIdquerystring
includeFilesquerystring
sortquerystring
orderquerystring
addedAfterquerystring
addedBeforequerystring
cursorquerystring
limitqueryinteger | ""1–100

Responses

200Successapplication/json

Example
{
  "items": [
    {
      "addedAt": "2026-10-18T19:30:00Z",
      "available": true,
      "durationSeconds": 0,
      "episode": {
        "airDate": "string",
        "localIdentityStatus": "string",
        "number": 0,
        "numbering": "string",
        "orderingBasis": "string",
        "providerMatchStatus": "string",
        "seasonId": "id_8h2k4q",
        "seasonNumber": 0,
        "showId": "id_8h2k4q",
        "showTitle": "Fargo",
        "sourceBoundary": "string"
      },
      "height": 0,
      "id": "id_8h2k4q",
      "kind": "string",
      "libraryId": "id_8h2k4q",
      "mediaSources": [
        {
          "audioCodec": "string",
          "available": true,
          "bitRate": 0,
          "container": "string",
          "durationSeconds": 0,
          "edition": "string",
          "id": "id_8h2k4q",
          "partIndex": 0,
          "path": "string",
          "size": 0,
          "video": {}
        }
      ],
      "mediaSourcesNextCursor": "eyJvIjoyMH0",
      "paths": [
        "string"
      ],
      "providerIds": {
        "key": "string"
      },
      "season": {
        "number": 0,
        "showId": "id_8h2k4q"
      },
      "title": "Fargo",
      "width": 0,
      "year": 0
    }
  ],
  "nextCursor": "eyJvIjoyMH0",
  "total": 0
}
Schema
  • itemsarray of objectrequired
    • addedAtstring
    • availablebooleanrequired
    • durationSecondsnumber
    • episodeobject
      • airDatestring
      • localIdentityStatusstringrequired
      • numberintegerrequired
      • numberingstringrequired
      • orderingBasisstringrequired
      • providerMatchStatusstringrequired
      • seasonIdstring
      • seasonNumberinteger
      • showIdstringrequired
      • showTitlestringrequired
      • sourceBoundarystringrequired
    • heightinteger
    • idstringrequired
    • kindstringrequired
    • libraryIdstringrequired
    • mediaSourcesarray of objectrequired
      • audioCodecstring
      • availablebooleanrequired
      • bitRateinteger
      • containerstringrequired
      • durationSecondsnumberrequired
      • editionstring
      • idstringrequired
      • partIndexintegerrequired
      • pathstring
      • sizeintegerrequired
      • videoobject
        • bitDepthinteger
        • bitRateinteger
        • codecstringrequired
        • dynamicRangestring
        • frameRatenumber
        • hdr10Plusboolean
        • heightintegerrequired
        • widthintegerrequired
    • mediaSourcesNextCursorstring
    • pathsarray of stringrequired
    • providerIdsobjectrequired
    • seasonobject
      • numberintegerrequired
      • showIdstringrequired
    • titlestringrequired
    • widthinteger
    • yearinteger
  • nextCursorstring
  • totalintegerrequired

defaultRequest refused or unavailableapplication/json

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

Error codesunauthorizednot_permittedinsufficient_scopesession_requiredinvalid_requestinvalid_cursorcursor_expiredstale_continuationnot_foundinternaldatabase_busy

Example request

curl -X GET "http://127.0.0.1:32500/v1/integrations/shows/{id}/episodes" \
  -H "Authorization: Bearer $PORTICO_API_KEY"
GET/v1/integrations/shows/{id}/seasonsRead a bounded native season hierarchyread
Audience
Integrations · Native API
Authorization
API key or personal access token with the read scope, or a signed-in session
OpenAPI operation ID
integration_show_seasons

Parameters

NameInTypeDescription
idrequiredpathstring
includeFilesquerystring
hasPathsquerystring
cursorquerystring
limitqueryinteger | ""1–100

Responses

200Successapplication/json

Example
{
  "items": [
    {
      "addedAt": "2026-10-18T19:30:00Z",
      "available": true,
      "durationSeconds": 0,
      "episode": {
        "airDate": "string",
        "localIdentityStatus": "string",
        "number": 0,
        "numbering": "string",
        "orderingBasis": "string",
        "providerMatchStatus": "string",
        "seasonId": "id_8h2k4q",
        "seasonNumber": 0,
        "showId": "id_8h2k4q",
        "showTitle": "Fargo",
        "sourceBoundary": "string"
      },
      "height": 0,
      "id": "id_8h2k4q",
      "kind": "string",
      "libraryId": "id_8h2k4q",
      "mediaSources": [
        {
          "audioCodec": "string",
          "available": true,
          "bitRate": 0,
          "container": "string",
          "durationSeconds": 0,
          "edition": "string",
          "id": "id_8h2k4q",
          "partIndex": 0,
          "path": "string",
          "size": 0,
          "video": {}
        }
      ],
      "mediaSourcesNextCursor": "eyJvIjoyMH0",
      "paths": [
        "string"
      ],
      "providerIds": {
        "key": "string"
      },
      "season": {
        "number": 0,
        "showId": "id_8h2k4q"
      },
      "title": "Fargo",
      "width": 0,
      "year": 0
    }
  ],
  "nextCursor": "eyJvIjoyMH0",
  "total": 0
}
Schema
  • itemsarray of objectrequired
    • addedAtstring
    • availablebooleanrequired
    • durationSecondsnumber
    • episodeobject
      • airDatestring
      • localIdentityStatusstringrequired
      • numberintegerrequired
      • numberingstringrequired
      • orderingBasisstringrequired
      • providerMatchStatusstringrequired
      • seasonIdstring
      • seasonNumberinteger
      • showIdstringrequired
      • showTitlestringrequired
      • sourceBoundarystringrequired
    • heightinteger
    • idstringrequired
    • kindstringrequired
    • libraryIdstringrequired
    • mediaSourcesarray of objectrequired
      • audioCodecstring
      • availablebooleanrequired
      • bitRateinteger
      • containerstringrequired
      • durationSecondsnumberrequired
      • editionstring
      • idstringrequired
      • partIndexintegerrequired
      • pathstring
      • sizeintegerrequired
      • videoobject
        • bitDepthinteger
        • bitRateinteger
        • codecstringrequired
        • dynamicRangestring
        • frameRatenumber
        • hdr10Plusboolean
        • heightintegerrequired
        • widthintegerrequired
    • mediaSourcesNextCursorstring
    • pathsarray of stringrequired
    • providerIdsobjectrequired
    • seasonobject
      • numberintegerrequired
      • showIdstringrequired
    • titlestringrequired
    • widthinteger
    • yearinteger
  • nextCursorstring
  • totalintegerrequired

defaultRequest refused or unavailableapplication/json

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

Error codesunauthorizednot_permittedinsufficient_scopesession_requiredinvalid_requestinvalid_cursorcursor_expiredstale_continuationnot_foundinternaldatabase_busy

Example request

curl -X GET "http://127.0.0.1:32500/v1/integrations/shows/{id}/seasons" \
  -H "Authorization: Bearer $PORTICO_API_KEY"
GET/v1/integrations/usersRead permitted native user and profile identitiesread
Audience
Integrations · Native API
Authorization
API key or personal access token with the read scope, or a signed-in session
OpenAPI operation ID
integration_users

Parameters

NameInTypeDescription
cursorquerystring
limitqueryinteger | ""1–100

Responses

200Successapplication/json

Example
{
  "items": [
    {
      "accountId": "id_8h2k4q",
      "disabled": true,
      "profileId": "id_8h2k4q",
      "profileName": "Fargo",
      "role": "string",
      "username": "Fargo"
    }
  ],
  "nextCursor": "eyJvIjoyMH0"
}
Schema
  • itemsarray of objectrequired
    • accountIdstringrequired
    • disabledbooleanrequired
    • profileIdstringrequired
    • profileNamestringrequired
    • rolestringrequired
    • usernamestringrequired
  • nextCursorstring

defaultRequest refused or unavailableapplication/json

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

Error codesunauthorizednot_permittedinsufficient_scopesession_requiredinvalid_requestinvalid_cursorcursor_expiredstale_continuationnot_foundinternaldatabase_busy

Example request

curl -X GET "http://127.0.0.1:32500/v1/integrations/users" \
  -H "Authorization: Bearer $PORTICO_API_KEY"
GET/v1/itemsRead or update the selected projectionread
Audience
Integrations · Native API
Authorization
API key or personal access token with the read scope, or a signed-in session
OpenAPI operation ID
get_items

Parameters

NameInTypeDescription
libraryIdquerystring
cursorquerystring
limitqueryinteger

Responses

200Successapplication/json

Example
{
  "items": [
    {
      "addedAt": "2026-10-18T19:30:00Z",
      "audioFacts": {
        "atmos": true,
        "bitDepth": 0,
        "channels": 0,
        "codec": "string",
        "layout": "string",
        "lossless": true,
        "sampleRate": 0
      },
      "available": true,
      "backdropUrl": "https://example.com/…",
      "bookFile": {
        "bookId": "id_8h2k4q",
        "bookTitle": "Fargo",
        "discNumber": 0,
        "localMetadata": {
          "authors": [],
          "description": "string",
          "edition": "string",
          "identifiers": [],
          "language": "en",
          "narrators": [],
          "publishedYear": 0,
          "publisher": "string",
          "series": [],
          "sources": {}
        },
        "localMetadataIssue": "string",
        "localPolicy": {
          "localMode": "string",
          "revision": 0
        },
        "partNumber": 0,
        "sourceBoundary": "string"
      },
      "durationMs": 1800000,
      "durationState": "unrepresentable",
      "episode": {
        "airDate": "string",
        "localIdentityStatus": "string",
        "number": 0,
        "numbering": "string",
        "orderingBasis": "string",
        "providerMatchStatus": "string",
        "seasonId": "id_8h2k4q",
        "seasonNumber": 0,
        "showId": "id_8h2k4q",
        "showTitle": "Fargo",
        "sourceBoundary": "string"
      },
      "fileInfoOpening": "string",
      "id": "id_8h2k4q",
      "kind": "string",
      "libraryId": "id_8h2k4q",
      "missing": true,
      "overview": "string",
      "posterUrl": "https://example.com/…",
      "progressMs": 1800000,
      "song": {
        "albumArtist": "string",
        "albumId": "id_8h2k4q",
        "albumTitle": "Fargo",
        "artist": "string",
        "discNumber": 0,
        "localMetadataIssue": "string",
        "providerArtist": "string",
        "providerMatchStatus": "string",
        "providerObservedAt": "2026-10-18T19:30:00Z",
        "providerRecordingId": "id_8h2k4q",
        "providerReleaseGroupId": "id_8h2k4q",
        "providerReleaseId": "id_8h2k4q",
        "providerReleaseStatus": "string",
        "providerSourceUrl": "https://example.com/…",
        "providerTitle": "Fargo",
        "providerTrackId": "id_8h2k4q",
        "trackNumber": 0
      },
      "sources": [
        {
          "audioCodec": "string",
          "container": "string",
          "durationMs": 1800000,
          "height": 0,
          "id": "id_8h2k4q",
          "videoCodec": "string",
          "width": 0
        }
      ],
      "stillUrl": "https://example.com/…",
      "title": "Fargo",
      "watched": true,
      "year": 0
    }
  ],
  "nextCursor": "eyJvIjoyMH0"
}
Schema
  • itemsarray of objectrequired
    • addedAtstring | any | nullrequired
    • audioFactsobject
      • atmosboolean
      • bitDepthinteger
      • channelsinteger
      • codecstringrequired
      • layoutstring
      • losslessboolean
      • sampleRateinteger
    • availablebooleanrequired
    • backdropUrlstring
    • bookFileobject
      • bookIdstringrequired
      • bookTitlestringrequired
      • discNumberinteger
      • localMetadataobject
        • authorsarray of stringrequired
        • descriptionstring
        • editionstring
        • identifiersarray of objectrequired
          • schemestringrequired
          • valuestringrequired
        • languagestring
        • narratorsarray of stringrequired
        • publishedYearinteger
        • publisherstring
        • seriesarray of objectrequired
          • namestringrequired
          • positionstring
        • sourcesobjectrequired
      • localMetadataIssuestring
      • localPolicyobject
        • localModestringrequired
        • revisionintegerrequired
      • partNumberinteger
      • sourceBoundarystringrequired
    • durationMsinteger≥ 0
    • durationStatestringone of "unrepresentable"
    • episodeobject
      • airDatestring
      • localIdentityStatusstringrequired
      • numberintegerrequired
      • numberingstringrequired
      • orderingBasisstringrequired
      • providerMatchStatusstringrequired
      • seasonIdstring
      • seasonNumberinteger
      • showIdstringrequired
      • showTitlestringrequired
      • sourceBoundarystringrequired
    • fileInfoOpeningstring
    • idstringrequired
    • kindstringrequired
    • libraryIdstringrequired
    • missingbooleanrequired
    • overviewstring
    • posterUrlstring
    • progressMsintegerrequired≥ 0
    • songobject
      • albumArtiststringrequired
      • albumIdstringrequired
      • albumTitlestringrequired
      • artiststringrequired
      • discNumberinteger
      • localMetadataIssuestring
      • providerArtiststring
      • providerMatchStatusstringrequired
      • providerObservedAtstring
      • providerRecordingIdstring
      • providerReleaseGroupIdstring
      • providerReleaseIdstring
      • providerReleaseStatusstringrequired
      • providerSourceUrlstring
      • providerTitlestring
      • providerTrackIdstring
      • trackNumberinteger
    • sourcesarray of object
      • audioCodecstringrequired
      • containerstringrequired
      • durationMsintegerrequired≥ 0
      • heightintegerrequired
      • idstringrequired
      • videoCodecstringrequired
      • widthintegerrequired
    • stillUrlstring
    • titlestringrequired
    • watchedboolean
    • yearinteger
  • nextCursorstringrequired

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/items" \
  -H "Authorization: Bearer $PORTICO_API_KEY"
GET/v1/items/{id}Read or update the selected projectionread
Audience
Integrations · Native API
Authorization
API key or personal access token with the read scope, or a signed-in session
OpenAPI operation ID
get_items_id

Parameters

NameInTypeDescription
idrequiredpathstring

Responses

200Successapplication/json

Example
{
  "addedAt": "2026-10-18T19:30:00Z",
  "audioFacts": {
    "atmos": true,
    "bitDepth": 0,
    "channels": 0,
    "codec": "string",
    "layout": "string",
    "lossless": true,
    "sampleRate": 0
  },
  "available": true,
  "backdropUrl": "https://example.com/…",
  "bookFile": {
    "bookId": "id_8h2k4q",
    "bookTitle": "Fargo",
    "discNumber": 0,
    "localMetadata": {
      "authors": [
        "string"
      ],
      "description": "string",
      "edition": "string",
      "identifiers": [
        {
          "scheme": "string",
          "value": "string"
        }
      ],
      "language": "en",
      "narrators": [
        "string"
      ],
      "publishedYear": 0,
      "publisher": "string",
      "series": [
        {
          "name": "Fargo",
          "position": "string"
        }
      ],
      "sources": {
        "key": "string"
      }
    },
    "localMetadataIssue": "string",
    "localPolicy": {
      "localMode": "string",
      "revision": 0
    },
    "partNumber": 0,
    "sourceBoundary": "string"
  },
  "durationMs": 1800000,
  "durationState": "unrepresentable",
  "episode": {
    "airDate": "string",
    "localIdentityStatus": "string",
    "number": 0,
    "numbering": "string",
    "orderingBasis": "string",
    "providerMatchStatus": "string",
    "seasonId": "id_8h2k4q",
    "seasonNumber": 0,
    "showId": "id_8h2k4q",
    "showTitle": "Fargo",
    "sourceBoundary": "string"
  },
  "fileInfoOpening": "string",
  "id": "id_8h2k4q",
  "kind": "string",
  "libraryId": "id_8h2k4q",
  "missing": true,
  "overview": "string",
  "posterUrl": "https://example.com/…",
  "progressMs": 1800000,
  "song": {
    "albumArtist": "string",
    "albumId": "id_8h2k4q",
    "albumTitle": "Fargo",
    "artist": "string",
    "discNumber": 0,
    "localMetadataIssue": "string",
    "providerArtist": "string",
    "providerMatchStatus": "string",
    "providerObservedAt": "2026-10-18T19:30:00Z",
    "providerRecordingId": "id_8h2k4q",
    "providerReleaseGroupId": "id_8h2k4q",
    "providerReleaseId": "id_8h2k4q",
    "providerReleaseStatus": "string",
    "providerSourceUrl": "https://example.com/…",
    "providerTitle": "Fargo",
    "providerTrackId": "id_8h2k4q",
    "trackNumber": 0
  },
  "sources": [
    {
      "audioCodec": "string",
      "container": "string",
      "durationMs": 1800000,
      "height": 0,
      "id": "id_8h2k4q",
      "videoCodec": "string",
      "width": 0
    }
  ],
  "stillUrl": "https://example.com/…",
  "title": "Fargo",
  "variant": "item",
  "watched": true,
  "year": 0
}
Schema
  • addedAtstring | any | nullrequired
  • audioFactsobject
    • atmosboolean
    • bitDepthinteger
    • channelsinteger
    • codecstringrequired
    • layoutstring
    • losslessboolean
    • sampleRateinteger
  • availablebooleanrequired
  • backdropUrlstring
  • bookFileobject
    • bookIdstringrequired
    • bookTitlestringrequired
    • discNumberinteger
    • localMetadataobject
      • authorsarray of stringrequired
      • descriptionstring
      • editionstring
      • identifiersarray of objectrequired
        • schemestringrequired
        • valuestringrequired
      • languagestring
      • narratorsarray of stringrequired
      • publishedYearinteger
      • publisherstring
      • seriesarray of objectrequired
        • namestringrequired
        • positionstring
      • sourcesobjectrequired
    • localMetadataIssuestring
    • localPolicyobject
      • localModestringrequired
      • revisionintegerrequired
    • partNumberinteger
    • sourceBoundarystringrequired
  • durationMsinteger≥ 0
  • durationStatestringone of "unrepresentable"
  • episodeobject
    • airDatestring
    • localIdentityStatusstringrequired
    • numberintegerrequired
    • numberingstringrequired
    • orderingBasisstringrequired
    • providerMatchStatusstringrequired
    • seasonIdstring
    • seasonNumberinteger
    • showIdstringrequired
    • showTitlestringrequired
    • sourceBoundarystringrequired
  • fileInfoOpeningstring
  • idstringrequired
  • kindstringrequired
  • libraryIdstringrequired
  • missingbooleanrequired
  • overviewstring
  • posterUrlstring
  • progressMsintegerrequired≥ 0
  • songobject
    • albumArtiststringrequired
    • albumIdstringrequired
    • albumTitlestringrequired
    • artiststringrequired
    • discNumberinteger
    • localMetadataIssuestring
    • providerArtiststring
    • providerMatchStatusstringrequired
    • providerObservedAtstring
    • providerRecordingIdstring
    • providerReleaseGroupIdstring
    • providerReleaseIdstring
    • providerReleaseStatusstringrequired
    • providerSourceUrlstring
    • providerTitlestring
    • providerTrackIdstring
    • trackNumberinteger
  • sourcesarray of object
    • audioCodecstringrequired
    • containerstringrequired
    • durationMsintegerrequired≥ 0
    • heightintegerrequired
    • idstringrequired
    • videoCodecstringrequired
    • widthintegerrequired
  • stillUrlstring
  • titlestringrequired
  • variant"item"required
  • watchedboolean
  • yearinteger

202Successapplication/json

Example
{
  "detail": {
    "revision": {
      "catalog": 0,
      "viewer": 0
    },
    "scope": {
      "itemId": "id_8h2k4q",
      "libraryId": "id_8h2k4q",
      "serverId": "id_8h2k4q",
      "viewerFence": "string"
    }
  },
  "kind": "file-info-preparing",
  "queryId": "id_8h2k4q",
  "retryAfterMs": 1800000,
  "state": "preparing",
  "variant": "preparing"
}
Schema
  • detailobject
    • revisionobjectrequired
      • catalogintegerrequired
      • viewerintegerrequired
    • scopeobjectrequired
      • itemIdstringrequired
      • libraryIdstringrequired
      • serverIdstringrequired
      • viewerFencestringrequired
  • kind"file-info-preparing"required
  • queryIdstringrequiredlength 1–512pattern ^[A-Za-z0-9_.-]+$
  • retryAfterMsintegerrequired≥ 1
  • state"preparing"required
  • variant"preparing"required

304Successapplication/json

Example
{
  "addedAt": "2026-10-18T19:30:00Z",
  "audioFacts": {
    "atmos": true,
    "bitDepth": 0,
    "channels": 0,
    "codec": "string",
    "layout": "string",
    "lossless": true,
    "sampleRate": 0
  },
  "available": true,
  "backdropUrl": "https://example.com/…",
  "bookFile": {
    "bookId": "id_8h2k4q",
    "bookTitle": "Fargo",
    "discNumber": 0,
    "localMetadata": {
      "authors": [
        "string"
      ],
      "description": "string",
      "edition": "string",
      "identifiers": [
        {
          "scheme": "string",
          "value": "string"
        }
      ],
      "language": "en",
      "narrators": [
        "string"
      ],
      "publishedYear": 0,
      "publisher": "string",
      "series": [
        {
          "name": "Fargo",
          "position": "string"
        }
      ],
      "sources": {
        "key": "string"
      }
    },
    "localMetadataIssue": "string",
    "localPolicy": {
      "localMode": "string",
      "revision": 0
    },
    "partNumber": 0,
    "sourceBoundary": "string"
  },
  "durationMs": 1800000,
  "durationState": "unrepresentable",
  "episode": {
    "airDate": "string",
    "localIdentityStatus": "string",
    "number": 0,
    "numbering": "string",
    "orderingBasis": "string",
    "providerMatchStatus": "string",
    "seasonId": "id_8h2k4q",
    "seasonNumber": 0,
    "showId": "id_8h2k4q",
    "showTitle": "Fargo",
    "sourceBoundary": "string"
  },
  "fileInfoOpening": "string",
  "id": "id_8h2k4q",
  "kind": "string",
  "libraryId": "id_8h2k4q",
  "missing": true,
  "overview": "string",
  "posterUrl": "https://example.com/…",
  "progressMs": 1800000,
  "song": {
    "albumArtist": "string",
    "albumId": "id_8h2k4q",
    "albumTitle": "Fargo",
    "artist": "string",
    "discNumber": 0,
    "localMetadataIssue": "string",
    "providerArtist": "string",
    "providerMatchStatus": "string",
    "providerObservedAt": "2026-10-18T19:30:00Z",
    "providerRecordingId": "id_8h2k4q",
    "providerReleaseGroupId": "id_8h2k4q",
    "providerReleaseId": "id_8h2k4q",
    "providerReleaseStatus": "string",
    "providerSourceUrl": "https://example.com/…",
    "providerTitle": "Fargo",
    "providerTrackId": "id_8h2k4q",
    "trackNumber": 0
  },
  "sources": [
    {
      "audioCodec": "string",
      "container": "string",
      "durationMs": 1800000,
      "height": 0,
      "id": "id_8h2k4q",
      "videoCodec": "string",
      "width": 0
    }
  ],
  "stillUrl": "https://example.com/…",
  "title": "Fargo",
  "variant": "item",
  "watched": true,
  "year": 0
}
Schema
  • addedAtstring | any | nullrequired
  • audioFactsobject
    • atmosboolean
    • bitDepthinteger
    • channelsinteger
    • codecstringrequired
    • layoutstring
    • losslessboolean
    • sampleRateinteger
  • availablebooleanrequired
  • backdropUrlstring
  • bookFileobject
    • bookIdstringrequired
    • bookTitlestringrequired
    • discNumberinteger
    • localMetadataobject
      • authorsarray of stringrequired
      • descriptionstring
      • editionstring
      • identifiersarray of objectrequired
        • schemestringrequired
        • valuestringrequired
      • languagestring
      • narratorsarray of stringrequired
      • publishedYearinteger
      • publisherstring
      • seriesarray of objectrequired
        • namestringrequired
        • positionstring
      • sourcesobjectrequired
    • localMetadataIssuestring
    • localPolicyobject
      • localModestringrequired
      • revisionintegerrequired
    • partNumberinteger
    • sourceBoundarystringrequired
  • durationMsinteger≥ 0
  • durationStatestringone of "unrepresentable"
  • episodeobject
    • airDatestring
    • localIdentityStatusstringrequired
    • numberintegerrequired
    • numberingstringrequired
    • orderingBasisstringrequired
    • providerMatchStatusstringrequired
    • seasonIdstring
    • seasonNumberinteger
    • showIdstringrequired
    • showTitlestringrequired
    • sourceBoundarystringrequired
  • fileInfoOpeningstring
  • idstringrequired
  • kindstringrequired
  • libraryIdstringrequired
  • missingbooleanrequired
  • overviewstring
  • posterUrlstring
  • progressMsintegerrequired≥ 0
  • songobject
    • albumArtiststringrequired
    • albumIdstringrequired
    • albumTitlestringrequired
    • artiststringrequired
    • discNumberinteger
    • localMetadataIssuestring
    • providerArtiststring
    • providerMatchStatusstringrequired
    • providerObservedAtstring
    • providerRecordingIdstring
    • providerReleaseGroupIdstring
    • providerReleaseIdstring
    • providerReleaseStatusstringrequired
    • providerSourceUrlstring
    • providerTitlestring
    • providerTrackIdstring
    • trackNumberinteger
  • sourcesarray of object
    • audioCodecstringrequired
    • containerstringrequired
    • durationMsintegerrequired≥ 0
    • heightintegerrequired
    • idstringrequired
    • videoCodecstringrequired
    • widthintegerrequired
  • stillUrlstring
  • titlestringrequired
  • variant"item"required
  • watchedboolean
  • yearinteger

defaultRequest refused or unavailableapplication/json

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

Error codesinvalid_requestunauthorizednot_permittednot_foundinternalstale_continuationmetadata_unavailabledatabase_busy

Example request

curl -X GET "http://127.0.0.1:32500/v1/items/{id}" \
  -H "Authorization: Bearer $PORTICO_API_KEY"
GET/v1/items/{id}/art/{kind}Read title artread
Audience
Integrations · Native API
Authorization
API key or personal access token with the read scope, or a signed-in session
OpenAPI operation ID
get_items_id_art_kind

Parameters

NameInTypeDescription
idrequiredpathstring
kindrequiredpathstring
ldquerystring
rquerystring
sdquerystring
sizequerystring
vquerystring
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 codesinvalid_requestunauthorizednot_permittednot_foundinternaldatabase_busy

Example request

curl -X GET "http://127.0.0.1:32500/v1/items/{id}/art/{kind}" \
  -H "Authorization: Bearer $PORTICO_API_KEY"
GET/v1/items/{id}/detailRead or update the selected projectionread
Audience
Integrations · Native API
Authorization
API key or personal access token with the read scope, or a signed-in session
OpenAPI operation ID
get_items_id_detail

Parameters

NameInTypeDescription
idrequiredpathstring
relatedquerystring

Responses

200Successapplication/json

Example
{
  "actions": [
    {
      "enabled": true,
      "id": "id_8h2k4q",
      "labelKey": "string",
      "max": 0,
      "min": 0,
      "playback": {
        "itemId": "id_8h2k4q",
        "startMs": 1800000
      },
      "step": 0
    }
  ],
  "collections": [
    {
      "id": "id_8h2k4q",
      "memberCount": 0,
      "name": "Fargo",
      "position": 0,
      "posterUrls": [
        "https://example.com/…"
      ],
      "yearFrom": 0,
      "yearTo": 0
    }
  ],
  "episodeDetails": {
    "contentRating": "string",
    "next": {
      "id": "id_8h2k4q",
      "number": 0,
      "title": "Fargo"
    },
    "previous": {
      "id": "id_8h2k4q",
      "number": 0,
      "title": "Fargo"
    }
  },
  "extras": [
    {
      "items": [
        {
          "absoluteNumber": 0,
          "activeBeginYear": 0,
          "activeEndYear": 0,
          "addedAt": "2026-10-18T19:30:00Z",
          "airDate": "string",
          "album": {},
          "albumCount": 0,
          "albumType": "string",
          "artist": {},
          "artistType": "string",
          "artworkPaths": [],
          "audioFacts": {},
          "author": "string",
          "available": true,
          "backdropUrl": "https://example.com/…",
          "badges": [],
          "bookProgress": {},
          "contentRating": "string",
          "count": 0,
          "country": "string",
          "dateBased": true,
          "discNumber": 0,
          "displayTitle": "Fargo",
          "durationMs": 1800000,
          "edition": "string",
          "episodeNumber": 0,
          "favorite": true,
          "genres": [],
          "hidden": true,
          "homeActions": {},
          "homeTitleContext": {},
          "id": "id_8h2k4q",
          "kind": "string",
          "label": "string",
          "language": "en",
          "lastChanged": "string",
          "latestEpisode": {},
          "libraryId": "id_8h2k4q",
          "media": {},
          "missing": true,
          "narrators": [],
          "navigation": {},
          "new": true,
          "origin": "string",
          "overview": "string",
          "overviewSource": "string",
          "overviewSourceUrl": "https://example.com/…",
          "pageCount": 0,
          "pinned": true,
          "playback": {},
          "plays": 0,
          "posterUrl": "https://example.com/…",
          "progressMs": 1800000,
          "publicationType": "book",
          "publishedYear": 0,
          "publisher": "string",
          "radioSeed": {},
          "rating": 0,
          "readingMark": {},
          "releaseDate": "string",
          "removed": true,
          "resolution": "string",
          "role": "string",
          "seasonCount": 0,
          "seasonNumber": 0,
          "series": [],
          "show": {},
          "sortLetter": "string",
          "special": true,
          "stillUrl": "https://example.com/…",
          "subtitle": "Fargo",
          "title": "Fargo",
          "totalAtLeast": 0,
          "trackNumber": 0,
          "unwatchedCount": 0,
          "userRating": 0,
          "watched": true,
          "watchedCount": 0,
          "watchlisted": true,
          "year": 0,
          "yearMax": 0,
          "yearMin": 0
        }
      ],
      "label": "string",
      "type": "string"
    }
  ],
  "facts": {
    "contentRating": "string",
    "country": "string",
    "edition": "string",
    "network": "string",
    "originalLanguage": "en",
    "originalTitle": "Fargo",
    "releaseDate": "string",
    "studio": "string",
    "tagline": "string"
  },
  "fileInfoOpening": "string",
  "item": {
    "addedAt": "2026-10-18T19:30:00Z",
    "audioFacts": {
      "atmos": true,
      "bitDepth": 0,
      "channels": 0,
      "codec": "string",
      "layout": "string",
      "lossless": true,
      "sampleRate": 0
    },
    "available": true,
    "backdropUrl": "https://example.com/…",
    "bookFile": {
      "bookId": "id_8h2k4q",
      "bookTitle": "Fargo",
      "discNumber": 0,
      "localMetadata": {
        "authors": [
          "string"
        ],
        "description": "string",
        "edition": "string",
        "identifiers": [
          {}
        ],
        "language": "en",
        "narrators": [
          "string"
        ],
        "publishedYear": 0,
        "publisher": "string",
        "series": [
          {}
        ],
        "sources": {
          "key": "string"
        }
      },
      "localMetadataIssue": "string",
      "localPolicy": {
        "localMode": "string",
        "revision": 0
      },
      "partNumber": 0,
      "sourceBoundary": "string"
    },
    "durationMs": 1800000,
    "durationState": "unrepresentable",
    "episode": {
      "airDate": "string",
      "localIdentityStatus": "string",
      "number": 0,
      "numbering": "string",
      "orderingBasis": "string",
      "providerMatchStatus": "string",
      "seasonId": "id_8h2k4q",
      "seasonNumber": 0,
      "showId": "id_8h2k4q",
      "showTitle": "Fargo",
      "sourceBoundary": "string"
    },
    "fileInfoOpening": "string",
    "id": "id_8h2k4q",
    "kind": "string",
    "libraryId": "id_8h2k4q",
    "missing": true,
    "overview": "string",
    "posterUrl": "https://example.com/…",
    "progressMs": 1800000,
    "song": {
      "albumArtist": "string",
      "albumId": "id_8h2k4q",
      "albumTitle": "Fargo",
      "artist": "string",
      "discNumber": 0,
      "localMetadataIssue": "string",
      "providerArtist": "string",
      "providerMatchStatus": "string",
      "providerObservedAt": "2026-10-18T19:30:00Z",
      "providerRecordingId": "id_8h2k4q",
      "providerReleaseGroupId": "id_8h2k4q",
      "providerReleaseId": "id_8h2k4q",
      "providerReleaseStatus": "string",
      "providerSourceUrl": "https://example.com/…",
      "providerTitle": "Fargo",
      "providerTrackId": "id_8h2k4q",
      "trackNumber": 0
    },
    "sources": [
      {
        "audioCodec": "string",
        "container": "string",
        "durationMs": 1800000,
        "height": 0,
        "id": "id_8h2k4q",
        "videoCodec": "string",
        "width": 0
      }
    ],
    "stillUrl": "https://example.com/…",
    "title": "Fargo",
    "watched": true,
    "year": 0
  },
  "languages": {
    "audio": [
      "string"
    ],
    "subtitles": [
      "Fargo"
    ]
  },
  "markers": [
    {
      "automaticSafe": true,
      "endMs": 1800000,
      "id": "id_8h2k4q",
      "kind": "string",
      "startMs": 1800000
    }
  ],
  "metadata": {
    "attributions": [
      "string"
    ],
    "creditTotals": {
      "cast": 0,
      "crew": 0
    },
    "credits": [
      {
        "department": "string",
        "id": "id_8h2k4q",
        "name": "Fargo",
        "personId": "id_8h2k4q",
        "portraitUrl": "https://example.com/…",
        "provider": "string",
        "role": "string"
      }
    ],
    "genres": [
      {
        "id": "id_8h2k4q",
        "name": "Fargo",
        "provider": "string"
      }
    ],
    "ratings": [
      {
        "max": 0,
        "observedAt": "2026-10-18T19:30:00Z",
        "provider": "string",
        "sourceUrl": "https://example.com/…",
        "value": 0,
        "votes": 0
      }
    ],
    "sources": [
      {
        "observedAt": "2026-10-18T19:30:00Z",
        "provider": "string",
        "sourceUrl": "https://example.com/…"
      }
    ],
    "status": "string"
  },
  "missingSince": "string",
  "personal": {
    "conflicts": [
      {
        "baseRevision": 0,
        "baseValue": null,
        "choices": [
          {}
        ],
        "field": "string",
        "id": "id_8h2k4q"
      }
    ],
    "continueDismissed": true,
    "favorite": true,
    "lastPlayedAt": "2026-10-18T19:30:00Z",
    "notInterested": true,
    "progressMs": 1800000,
    "rating": 0,
    "revision": 0,
    "status": "string",
    "watched": true,
    "watchlisted": true
  },
  "related": {
    "libraryId": "id_8h2k4q",
    "libraryName": "Fargo",
    "rows": [
      {
        "entries": [
          {}
        ],
        "evidenceId": "id_8h2k4q",
        "hasMore": true,
        "heading": "string",
        "headingText": {
          "code": "string",
          "fallback": "string",
          "params": {}
        },
        "id": "id_8h2k4q",
        "nextCursor": "eyJvIjoyMH0",
        "provider": "string",
        "relation": "string"
      }
    ],
    "version": 0
  },
  "revision": {
    "catalog": 0,
    "viewer": 0
  },
  "scope": {
    "itemId": "id_8h2k4q",
    "libraryId": "id_8h2k4q",
    "serverId": "id_8h2k4q",
    "viewerFence": "string"
  },
  "variant": "detail"
}
Schema
  • actionsarray of objectrequired
    • enabledbooleanrequired
    • idstringrequired
    • labelKeystringrequired
    • maxnumber
    • minnumber
    • playbackobject
      • itemIdstringrequired
      • startMsinteger≥ 0
    • stepnumber
  • collectionsarray of objectrequired
    • idstringrequired
    • memberCountintegerrequired
    • namestringrequired
    • positionintegerrequired
    • posterUrlsarray of stringrequired
    • yearFrominteger
    • yearTointeger
  • episodeDetailsobject
    • contentRatingstring
    • nextobject
      • idstringrequired
      • numberintegerrequired
      • titlestringrequired
    • previousobject
      • idstringrequired
      • numberintegerrequired
      • titlestringrequired
  • extrasarray of object
    • itemsarray of objectrequired
      • absoluteNumberinteger
      • activeBeginYearinteger
      • activeEndYearinteger
      • addedAtstring | any | null
      • airDatestring
      • albumobject
        • idstringrequired
        • namestringrequired
      • albumCountinteger
      • albumTypestring
      • artistobject
        • idstringrequired
        • namestringrequired
      • artistTypestring
      • artworkPathsarray of string
      • audioFactsobject
        • atmosboolean
        • bitDepthinteger
        • channelsinteger
        • codecstringrequired
        • layoutstring
        • losslessboolean
        • sampleRateinteger
      • authorstring
      • availableboolean
      • backdropUrlstring
      • badgesarray of object0–2 items
        • bitDepthintegerrequired≥ 17
        • codecstringrequiredpattern ^[A-Za-z0-9_.+-]{1,64}$
        • sampleRateintegerrequired≥ 1
        • variant"lossless"required
      • bookProgressobject
        • bookIdstringrequired
        • chapterobject
          • endMsintegerrequired
          • indexintegerrequired
          • startMsintegerrequired
          • titlestringrequired
        • durationMsinteger
        • itemIdstringrequired
        • partPositionMsintegerrequired
        • positionMsinteger
        • remainingMsinteger
      • contentRatingstring
      • countinteger
      • countrystring
      • dateBasedboolean
      • discNumberinteger
      • displayTitlestring
      • durationMsinteger≥ 0
      • editionstring
      • episodeNumberinteger
      • favoriteboolean
      • genresarray of string
      • hiddenboolean | any | null
      • homeActionsobject
        • collectionbooleanrequired
        • deletebooleanrequired
        • detailsbooleanrequired
        • downloadbooleanrequired
        • editMetadatabooleanrequired
        • favoritebooleanrequired
        • myListbooleanrequired
        • notInterestedboolean
        • playbooleanrequired
        • playedbooleanrequired
        • playlistbooleanrequired
        • queuebooleanrequired
        • ratingbooleanrequired
        • refreshMetadatabooleanrequired
        • removeFromContinueboolean
        • selectionobjectrequired
          • collectionbooleanrequired
          • deletebooleanrequired
          • downloadbooleanrequired
          • editbooleanrequired
          • favoritebooleanrequired
          • myListbooleanrequired
          • playbooleanrequired
          • playlistbooleanrequired
          • queuebooleanrequired
          • refreshbooleanrequired
          • watchedbooleanrequired
        • stateobjectrequired
          • containerRevisionintegerrequired
          • favoritebooleanrequired
          • personalRevisionintegerrequired
          • ratingnumber | any | nullrequired
          • watchedbooleanrequired
          • watchlistedbooleanrequired
        • watchedbooleanrequired
      • homeTitleContextobject
        • genresarray of stringrequired
        • kindstringrequired
        • seasonCountinteger
        • yearinteger
      • idstringrequired
      • kindstringrequired
      • labelstring
      • languagestring
      • lastChangedstring
      • latestEpisodeobject
        • airDatestringrequired
        • countintegerrequired
        • episodeNumberintegerrequired
        • seasonNumberinteger
        • titlestring
      • libraryIdstring
      • mediaobject
        • absoluteNumberinteger
        • activeBeginYearinteger
        • activeEndYearinteger
        • addedAtstring | any | nullrequired
        • airDatestring
        • albumobject
          • idstringrequired
          • namestringrequired
        • albumCountinteger
        • albumTypestring
        • artistobject
          • idstringrequired
          • namestringrequired
        • artistTypestring
        • artworkPathsarray of string
        • audioFactsobject
          • atmosboolean
          • bitDepthinteger
          • channelsinteger
          • codecstringrequired
          • layoutstring
          • losslessboolean
          • sampleRateinteger
        • authorstring
        • availableboolean
        • backdropUrlstring
        • badgesarray of object0–2 items
          • bitDepthintegerrequired≥ 17
          • codecstringrequiredpattern ^[A-Za-z0-9_.+-]{1,64}$
          • sampleRateintegerrequired≥ 1
          • variant"lossless"required
        • bookProgressobject
          • bookIdstringrequired
          • chapterobject
            • endMsintegerrequired
            • indexintegerrequired
            • startMsintegerrequired
            • titlestringrequired
          • durationMsinteger
          • itemIdstringrequired
          • partPositionMsintegerrequired
          • positionMsinteger
          • remainingMsinteger
        • contentRatingstring
        • countinteger
        • countrystring
        • dateBasedboolean
        • discNumberinteger
        • displayTitlestring
        • durationMsinteger≥ 0
        • editionstring
        • episodeNumberinteger
        • favoriteboolean
        • genresarray of string
        • homeActionsobject
          • collectionbooleanrequired
          • deletebooleanrequired
          • detailsbooleanrequired
          • downloadbooleanrequired
          • editMetadatabooleanrequired
          • favoritebooleanrequired
          • myListbooleanrequired
          • notInterestedboolean
          • playbooleanrequired
          • playedbooleanrequired
          • playlistbooleanrequired
          • queuebooleanrequired
          • ratingbooleanrequired
          • refreshMetadatabooleanrequired
          • removeFromContinueboolean
          • selectionobjectrequired
            • collectionbooleanrequired
            • deletebooleanrequired
            • downloadbooleanrequired
            • editbooleanrequired
            • favoritebooleanrequired
            • myListbooleanrequired
            • playbooleanrequired
            • playlistbooleanrequired
            • queuebooleanrequired
            • refreshbooleanrequired
            • watchedbooleanrequired
          • stateobjectrequired
            • containerRevisionintegerrequired
            • favoritebooleanrequired
            • personalRevisionintegerrequired
            • ratingnumber | any | nullrequired
            • watchedbooleanrequired
            • watchlistedbooleanrequired
          • watchedbooleanrequired
        • homeTitleContextobject
          • genresarray of stringrequired
          • kindstringrequired
          • seasonCountinteger
          • yearinteger
        • idstringrequired
        • kindstringrequired
        • labelstring
        • languagestring
        • lastChangedstring
        • latestEpisodeobject
          • airDatestringrequired
          • countintegerrequired
          • episodeNumberintegerrequired
          • seasonNumberinteger
          • titlestring
        • libraryIdstring
        • missingbooleanrequired
        • narratorsarray of string
        • navigationobject
          • browseobject
            • pivotstringrequiredlength 1–256
            • queryobject
            • sortarray of objectrequired0–1 items
              • directionstringrequiredone of "asc", "desc"
              • fieldstringrequired
          • categorystring
          • channelIdstring
          • entityIdstring
          • provenancestring
          • sourceIdstring
          • viewstringrequired
        • newboolean
        • originstring
        • overviewstring
        • overviewSourcestring
        • overviewSourceUrlstring
        • pageCountinteger
        • pinnedboolean
        • playbackobject
          • itemIdstringrequired
          • startMsinteger≥ 0
        • playsinteger
        • posterUrlstring
        • progressMsinteger≥ 0
        • publicationTypestringone of "book", "magazine", "newspaper"
        • publishedYearinteger
        • publisherstring
        • radioSeedobject
          • idstringrequired
          • kindstringrequired
        • ratingnumber
        • readingMarkobject
          • itemIdstringrequired
          • readbooleanrequired
          • revisionintegerrequired
        • releaseDatestring
        • removedboolean
        • resolutionstring
        • rolestring
        • seasonCountinteger
        • seasonNumberinteger
        • seriesarray of object
          • namestringrequired
          • positionstring
        • showobject
          • idstringrequired
          • namestringrequired
        • sortLetterstring
        • specialboolean
        • stillUrlstring
        • subtitlestring
        • titlestringrequired
        • totalAtLeastinteger
        • trackNumberinteger
        • unwatchedCountinteger
        • userRatinginteger | any | null
        • watchedboolean
        • watchedCountinteger
        • watchlistedboolean
        • yearinteger
        • yearMaxinteger
        • yearMininteger
      • missingboolean
      • narratorsarray of string
      • navigationobject
        • browseobject
          • pivotstringrequiredlength 1–256
          • queryobject
          • sortarray of objectrequired0–1 items
            • directionstringrequiredone of "asc", "desc"
            • fieldstringrequired
        • categorystring
        • channelIdstring
        • entityIdstring
        • provenancestring
        • sourceIdstring
        • viewstringrequired
      • newboolean
      • originstring
      • overviewstring
      • overviewSourcestring
      • overviewSourceUrlstring
      • pageCountinteger
      • pinnedboolean
      • playbackobject
        • itemIdstringrequired
        • startMsinteger≥ 0
      • playsinteger
      • posterUrlstring
      • progressMsinteger≥ 0
      • publicationTypestringone of "book", "magazine", "newspaper"
      • publishedYearinteger
      • publisherstring
      • radioSeedobject
        • idstringrequired
        • kindstringrequired
      • ratingnumber
      • readingMarkobject
        • itemIdstringrequired
        • readbooleanrequired
        • revisionintegerrequired
      • releaseDatestring
      • removedboolean
      • resolutionstring
      • rolestring
      • seasonCountinteger
      • seasonNumberinteger
      • seriesarray of object
        • namestringrequired
        • positionstring
      • showobject
        • idstringrequired
        • namestringrequired
      • sortLetterstring
      • specialboolean
      • stillUrlstring
      • subtitlestring
      • titlestring
      • totalAtLeastinteger
      • trackNumberinteger
      • unwatchedCountinteger
      • userRatinginteger | any | null
      • watchedboolean
      • watchedCountinteger
      • watchlistedboolean
      • yearinteger
      • yearMaxinteger
      • yearMininteger
    • labelstringrequired
    • typestringrequired
  • factsobject
    • contentRatingstring
    • countrystring
    • editionstring
    • networkstring
    • originalLanguagestring
    • originalTitlestring
    • releaseDatestring
    • studiostring
    • taglinestring
  • fileInfoOpeningstring
  • itemobjectrequired
    • addedAtstring | any | nullrequired
    • audioFactsobject
      • atmosboolean
      • bitDepthinteger
      • channelsinteger
      • codecstringrequired
      • layoutstring
      • losslessboolean
      • sampleRateinteger
    • availablebooleanrequired
    • backdropUrlstring
    • bookFileobject
      • bookIdstringrequired
      • bookTitlestringrequired
      • discNumberinteger
      • localMetadataobject
        • authorsarray of stringrequired
        • descriptionstring
        • editionstring
        • identifiersarray of objectrequired
          • schemestringrequired
          • valuestringrequired
        • languagestring
        • narratorsarray of stringrequired
        • publishedYearinteger
        • publisherstring
        • seriesarray of objectrequired
          • namestringrequired
          • positionstring
        • sourcesobjectrequired
      • localMetadataIssuestring
      • localPolicyobject
        • localModestringrequired
        • revisionintegerrequired
      • partNumberinteger
      • sourceBoundarystringrequired
    • durationMsinteger≥ 0
    • durationStatestringone of "unrepresentable"
    • episodeobject
      • airDatestring
      • localIdentityStatusstringrequired
      • numberintegerrequired
      • numberingstringrequired
      • orderingBasisstringrequired
      • providerMatchStatusstringrequired
      • seasonIdstring
      • seasonNumberinteger
      • showIdstringrequired
      • showTitlestringrequired
      • sourceBoundarystringrequired
    • fileInfoOpeningstring
    • idstringrequired
    • kindstringrequired
    • libraryIdstringrequired
    • missingbooleanrequired
    • overviewstring
    • posterUrlstring
    • progressMsintegerrequired≥ 0
    • songobject
      • albumArtiststringrequired
      • albumIdstringrequired
      • albumTitlestringrequired
      • artiststringrequired
      • discNumberinteger
      • localMetadataIssuestring
      • providerArtiststring
      • providerMatchStatusstringrequired
      • providerObservedAtstring
      • providerRecordingIdstring
      • providerReleaseGroupIdstring
      • providerReleaseIdstring
      • providerReleaseStatusstringrequired
      • providerSourceUrlstring
      • providerTitlestring
      • providerTrackIdstring
      • trackNumberinteger
    • sourcesarray of object
      • audioCodecstringrequired
      • containerstringrequired
      • durationMsintegerrequired≥ 0
      • heightintegerrequired
      • idstringrequired
      • videoCodecstringrequired
      • widthintegerrequired
    • stillUrlstring
    • titlestringrequired
    • watchedboolean
    • yearinteger
  • languagesobjectrequired
    • audioarray of stringrequired
    • subtitlesarray of stringrequired
  • markersarray of objectrequired
    • automaticSafebooleanrequired
    • endMsintegerrequired≥ 0
    • idstringrequired
    • kindstringrequired
    • startMsintegerrequired≥ 0
  • metadataobjectrequired
    • attributionsarray of string
    • creditTotalsobjectrequired
      • castintegerrequired
      • crewintegerrequired
    • creditsarray of objectrequired
      • departmentstringrequired
      • idstringrequired
      • namestringrequired
      • personIdstring
      • portraitUrlstring
      • providerstringrequired
      • rolestringrequired
    • genresarray of objectrequired
      • idstringrequired
      • namestringrequired
      • providerstringrequired
    • ratingsarray of objectrequired
      • maxnumberrequired
      • observedAtstringrequired
      • providerstringrequired
      • sourceUrlstringrequired
      • valuenumberrequired
      • votesintegerrequired
    • sourcesarray of objectrequired
      • observedAtstringrequired
      • providerstringrequired
      • sourceUrlstringrequired
    • statusstringrequired
  • missingSincestring
  • personalobjectrequired
    • conflictsarray of objectrequired
      • baseRevisionintegerrequired
      • baseValueanyrequired
      • choicesarray of objectrequired
        • authoredAtstringrequired
        • deviceIdstringrequired
        • operationIdstringrequired
        • valueanyrequired
      • fieldstringrequired
      • idstringrequired
    • continueDismissedboolean
    • favoritebooleanrequired
    • lastPlayedAtstringrequired
    • notInterestedboolean
    • progressMsintegerrequired≥ 0
    • ratinginteger | any | nullrequired
    • revisionintegerrequired
    • statusstringrequired
    • watchedbooleanrequired
    • watchlistedbooleanrequired
  • relatedobject
    • libraryIdstringrequired
    • libraryNamestringrequired
    • rowsarray of objectrequired
      • entriesarray of objectrequired
        • absoluteNumberinteger
        • activeBeginYearinteger
        • activeEndYearinteger
        • addedAtstring | any | null
        • airDatestring
        • albumobject
          • idstringrequired
          • namestringrequired
        • albumCountinteger
        • albumTypestring
        • artistobject
          • idstringrequired
          • namestringrequired
        • artistTypestring
        • artworkPathsarray of string
        • audioFactsobject
          • atmosboolean
          • bitDepthinteger
          • channelsinteger
          • codecstringrequired
          • layoutstring
          • losslessboolean
          • sampleRateinteger
        • authorstring
        • availableboolean
        • backdropUrlstring
        • badgesarray of object0–2 items
          • bitDepthintegerrequired≥ 17
          • codecstringrequiredpattern ^[A-Za-z0-9_.+-]{1,64}$
          • sampleRateintegerrequired≥ 1
          • variant"lossless"required
        • bookProgressobject
          • bookIdstringrequired
          • chapterobject
            • endMsintegerrequired
            • indexintegerrequired
            • startMsintegerrequired
            • titlestringrequired
          • durationMsinteger
          • itemIdstringrequired
          • partPositionMsintegerrequired
          • positionMsinteger
          • remainingMsinteger
        • contentRatingstring
        • countinteger
        • countrystring
        • dateBasedboolean
        • discNumberinteger
        • displayTitlestring
        • durationMsinteger≥ 0
        • editionstring
        • episodeNumberinteger
        • favoriteboolean
        • genresarray of string
        • hiddenboolean | any | null
        • homeActionsobject
          • collectionbooleanrequired
          • deletebooleanrequired
          • detailsbooleanrequired
          • downloadbooleanrequired
          • editMetadatabooleanrequired
          • favoritebooleanrequired
          • myListbooleanrequired
          • notInterestedboolean
          • playbooleanrequired
          • playedbooleanrequired
          • playlistbooleanrequired
          • queuebooleanrequired
          • ratingbooleanrequired
          • refreshMetadatabooleanrequired
          • removeFromContinueboolean
          • selectionobjectrequired
            • collectionbooleanrequired
            • deletebooleanrequired
            • downloadbooleanrequired
            • editbooleanrequired
            • favoritebooleanrequired
            • myListbooleanrequired
            • playbooleanrequired
            • playlistbooleanrequired
            • queuebooleanrequired
            • refreshbooleanrequired
            • watchedbooleanrequired
          • stateobjectrequired
            • containerRevisionintegerrequired
            • favoritebooleanrequired
            • personalRevisionintegerrequired
            • ratingnumber | any | nullrequired
            • watchedbooleanrequired
            • watchlistedbooleanrequired
          • watchedbooleanrequired
        • homeTitleContextobject
          • genresarray of stringrequired
          • kindstringrequired
          • seasonCountinteger
          • yearinteger
        • idstringrequired
        • kindstringrequired
        • labelstring
        • languagestring
        • lastChangedstring
        • latestEpisodeobject
          • airDatestringrequired
          • countintegerrequired
          • episodeNumberintegerrequired
          • seasonNumberinteger
          • titlestring
        • libraryIdstring
        • mediaobject
          • absoluteNumberinteger
          • activeBeginYearinteger
          • activeEndYearinteger
          • addedAtstring | any | nullrequired
          • airDatestring
          • albumobject
            • idstringrequired
            • namestringrequired
          • albumCountinteger
          • albumTypestring
          • artistobject
            • idstringrequired
            • namestringrequired
          • artistTypestring
          • artworkPathsarray of string
          • audioFactsobject
            • atmosboolean
            • bitDepthinteger
            • channelsinteger
            • codecstringrequired
            • layoutstring
            • losslessboolean
            • sampleRateinteger
          • authorstring
          • availableboolean
          • backdropUrlstring
          • badgesarray of object0–2 items
            • bitDepthintegerrequired≥ 17
            • codecstringrequiredpattern ^[A-Za-z0-9_.+-]{1,64}$
            • sampleRateintegerrequired≥ 1
            • variant"lossless"required
          • bookProgressobject
            • bookIdstringrequired
            • chapterobject
              • endMsintegerrequired
              • indexintegerrequired
              • startMsintegerrequired
              • titlestringrequired
            • durationMsinteger
            • itemIdstringrequired
            • partPositionMsintegerrequired
            • positionMsinteger
            • remainingMsinteger
          • contentRatingstring
          • countinteger
          • countrystring
          • dateBasedboolean
          • discNumberinteger
          • displayTitlestring
          • durationMsinteger≥ 0
          • editionstring
          • episodeNumberinteger
          • favoriteboolean
          • genresarray of string
          • homeActionsobject
            • collectionbooleanrequired
            • deletebooleanrequired
            • detailsbooleanrequired
            • downloadbooleanrequired
            • editMetadatabooleanrequired
            • favoritebooleanrequired
            • myListbooleanrequired
            • notInterestedboolean
            • playbooleanrequired
            • playedbooleanrequired
            • playlistbooleanrequired
            • queuebooleanrequired
            • ratingbooleanrequired
            • refreshMetadatabooleanrequired
            • removeFromContinueboolean
            • selectionobjectrequired
              • collectionbooleanrequired
              • deletebooleanrequired
              • downloadbooleanrequired
              • editbooleanrequired
              • favoritebooleanrequired
              • myListbooleanrequired
              • playbooleanrequired
              • playlistbooleanrequired
              • queuebooleanrequired
              • refreshbooleanrequired
              • watchedbooleanrequired
            • stateobjectrequired
              • containerRevisionintegerrequired
              • favoritebooleanrequired
              • personalRevisionintegerrequired
              • ratingnumber | any | nullrequired
              • watchedbooleanrequired
              • watchlistedbooleanrequired
            • watchedbooleanrequired
          • homeTitleContextobject
            • genresarray of stringrequired
            • kindstringrequired
            • seasonCountinteger
            • yearinteger
          • idstringrequired
          • kindstringrequired
          • labelstring
          • languagestring
          • lastChangedstring
          • latestEpisodeobject
            • airDatestringrequired
            • countintegerrequired
            • episodeNumberintegerrequired
            • seasonNumberinteger
            • titlestring
          • libraryIdstring
          • missingbooleanrequired
          • narratorsarray of string
          • navigationobject
            • browseobject
              • pivotstringrequiredlength 1–256
              • queryobject
              • sortarray of objectrequired0–1 items
            • categorystring
            • channelIdstring
            • entityIdstring
            • provenancestring
            • sourceIdstring
            • viewstringrequired
          • newboolean
          • originstring
          • overviewstring
          • overviewSourcestring
          • overviewSourceUrlstring
          • pageCountinteger
          • pinnedboolean
          • playbackobject
            • itemIdstringrequired
            • startMsinteger≥ 0
          • playsinteger
          • posterUrlstring
          • progressMsinteger≥ 0
          • publicationTypestringone of "book", "magazine", "newspaper"
          • publishedYearinteger
          • publisherstring
          • radioSeedobject
            • idstringrequired
            • kindstringrequired
          • ratingnumber
          • readingMarkobject
            • itemIdstringrequired
            • readbooleanrequired
            • revisionintegerrequired
          • releaseDatestring
          • removedboolean
          • resolutionstring
          • rolestring
          • seasonCountinteger
          • seasonNumberinteger
          • seriesarray of object
            • namestringrequired
            • positionstring
          • showobject
            • idstringrequired
            • namestringrequired
          • sortLetterstring
          • specialboolean
          • stillUrlstring
          • subtitlestring
          • titlestringrequired
          • totalAtLeastinteger
          • trackNumberinteger
          • unwatchedCountinteger
          • userRatinginteger | any | null
          • watchedboolean
          • watchedCountinteger
          • watchlistedboolean
          • yearinteger
          • yearMaxinteger
          • yearMininteger
        • missingboolean
        • narratorsarray of string
        • navigationobject
          • browseobject
            • pivotstringrequiredlength 1–256
            • queryobject
            • sortarray of objectrequired0–1 items
              • directionstringrequiredone of "asc", "desc"
              • fieldstringrequired
          • categorystring
          • channelIdstring
          • entityIdstring
          • provenancestring
          • sourceIdstring
          • viewstringrequired
        • newboolean
        • originstring
        • overviewstring
        • overviewSourcestring
        • overviewSourceUrlstring
        • pageCountinteger
        • pinnedboolean
        • playbackobject
          • itemIdstringrequired
          • startMsinteger≥ 0
        • playsinteger
        • posterUrlstring
        • progressMsinteger≥ 0
        • publicationTypestringone of "book", "magazine", "newspaper"
        • publishedYearinteger
        • publisherstring
        • radioSeedobject
          • idstringrequired
          • kindstringrequired
        • ratingnumber
        • readingMarkobject
          • itemIdstringrequired
          • readbooleanrequired
          • revisionintegerrequired
        • releaseDatestring
        • removedboolean
        • resolutionstring
        • rolestring
        • seasonCountinteger
        • seasonNumberinteger
        • seriesarray of object
          • namestringrequired
          • positionstring
        • showobject
          • idstringrequired
          • namestringrequired
        • sortLetterstring
        • specialboolean
        • stillUrlstring
        • subtitlestring
        • titlestring
        • totalAtLeastinteger
        • trackNumberinteger
        • unwatchedCountinteger
        • userRatinginteger | any | null
        • watchedboolean
        • watchedCountinteger
        • watchlistedboolean
        • yearinteger
        • yearMaxinteger
        • yearMininteger
      • evidenceIdstringrequired
      • hasMoreboolean
      • headingstringrequired
      • headingTextobjectrequired
        • codestringrequired
        • fallbackstringrequired
        • paramsobject
      • idstringrequired
      • nextCursorstring
      • providerstringrequired
      • relationstringrequired
    • versionintegerrequired
  • revisionobjectrequired
    • catalogintegerrequired
    • viewerintegerrequired
  • scopeobjectrequired
    • itemIdstringrequired
    • libraryIdstringrequired
    • serverIdstringrequired
    • viewerFencestringrequired
  • variant"detail"required

202Successapplication/json

Example
{
  "detail": {
    "revision": {
      "catalog": 0,
      "viewer": 0
    },
    "scope": {
      "itemId": "id_8h2k4q",
      "libraryId": "id_8h2k4q",
      "serverId": "id_8h2k4q",
      "viewerFence": "string"
    }
  },
  "kind": "file-info-preparing",
  "queryId": "id_8h2k4q",
  "retryAfterMs": 1800000,
  "state": "preparing",
  "variant": "preparing"
}
Schema
  • detailobject
    • revisionobjectrequired
      • catalogintegerrequired
      • viewerintegerrequired
    • scopeobjectrequired
      • itemIdstringrequired
      • libraryIdstringrequired
      • serverIdstringrequired
      • viewerFencestringrequired
  • kind"file-info-preparing"required
  • queryIdstringrequiredlength 1–512pattern ^[A-Za-z0-9_.-]+$
  • retryAfterMsintegerrequired≥ 1
  • state"preparing"required
  • variant"preparing"required

304Successapplication/json

Example
{
  "actions": [
    {
      "enabled": true,
      "id": "id_8h2k4q",
      "labelKey": "string",
      "max": 0,
      "min": 0,
      "playback": {
        "itemId": "id_8h2k4q",
        "startMs": 1800000
      },
      "step": 0
    }
  ],
  "collections": [
    {
      "id": "id_8h2k4q",
      "memberCount": 0,
      "name": "Fargo",
      "position": 0,
      "posterUrls": [
        "https://example.com/…"
      ],
      "yearFrom": 0,
      "yearTo": 0
    }
  ],
  "episodeDetails": {
    "contentRating": "string",
    "next": {
      "id": "id_8h2k4q",
      "number": 0,
      "title": "Fargo"
    },
    "previous": {
      "id": "id_8h2k4q",
      "number": 0,
      "title": "Fargo"
    }
  },
  "extras": [
    {
      "items": [
        {
          "absoluteNumber": 0,
          "activeBeginYear": 0,
          "activeEndYear": 0,
          "addedAt": "2026-10-18T19:30:00Z",
          "airDate": "string",
          "album": {},
          "albumCount": 0,
          "albumType": "string",
          "artist": {},
          "artistType": "string",
          "artworkPaths": [],
          "audioFacts": {},
          "author": "string",
          "available": true,
          "backdropUrl": "https://example.com/…",
          "badges": [],
          "bookProgress": {},
          "contentRating": "string",
          "count": 0,
          "country": "string",
          "dateBased": true,
          "discNumber": 0,
          "displayTitle": "Fargo",
          "durationMs": 1800000,
          "edition": "string",
          "episodeNumber": 0,
          "favorite": true,
          "genres": [],
          "hidden": true,
          "homeActions": {},
          "homeTitleContext": {},
          "id": "id_8h2k4q",
          "kind": "string",
          "label": "string",
          "language": "en",
          "lastChanged": "string",
          "latestEpisode": {},
          "libraryId": "id_8h2k4q",
          "media": {},
          "missing": true,
          "narrators": [],
          "navigation": {},
          "new": true,
          "origin": "string",
          "overview": "string",
          "overviewSource": "string",
          "overviewSourceUrl": "https://example.com/…",
          "pageCount": 0,
          "pinned": true,
          "playback": {},
          "plays": 0,
          "posterUrl": "https://example.com/…",
          "progressMs": 1800000,
          "publicationType": "book",
          "publishedYear": 0,
          "publisher": "string",
          "radioSeed": {},
          "rating": 0,
          "readingMark": {},
          "releaseDate": "string",
          "removed": true,
          "resolution": "string",
          "role": "string",
          "seasonCount": 0,
          "seasonNumber": 0,
          "series": [],
          "show": {},
          "sortLetter": "string",
          "special": true,
          "stillUrl": "https://example.com/…",
          "subtitle": "Fargo",
          "title": "Fargo",
          "totalAtLeast": 0,
          "trackNumber": 0,
          "unwatchedCount": 0,
          "userRating": 0,
          "watched": true,
          "watchedCount": 0,
          "watchlisted": true,
          "year": 0,
          "yearMax": 0,
          "yearMin": 0
        }
      ],
      "label": "string",
      "type": "string"
    }
  ],
  "facts": {
    "contentRating": "string",
    "country": "string",
    "edition": "string",
    "network": "string",
    "originalLanguage": "en",
    "originalTitle": "Fargo",
    "releaseDate": "string",
    "studio": "string",
    "tagline": "string"
  },
  "fileInfoOpening": "string",
  "item": {
    "addedAt": "2026-10-18T19:30:00Z",
    "audioFacts": {
      "atmos": true,
      "bitDepth": 0,
      "channels": 0,
      "codec": "string",
      "layout": "string",
      "lossless": true,
      "sampleRate": 0
    },
    "available": true,
    "backdropUrl": "https://example.com/…",
    "bookFile": {
      "bookId": "id_8h2k4q",
      "bookTitle": "Fargo",
      "discNumber": 0,
      "localMetadata": {
        "authors": [
          "string"
        ],
        "description": "string",
        "edition": "string",
        "identifiers": [
          {}
        ],
        "language": "en",
        "narrators": [
          "string"
        ],
        "publishedYear": 0,
        "publisher": "string",
        "series": [
          {}
        ],
        "sources": {
          "key": "string"
        }
      },
      "localMetadataIssue": "string",
      "localPolicy": {
        "localMode": "string",
        "revision": 0
      },
      "partNumber": 0,
      "sourceBoundary": "string"
    },
    "durationMs": 1800000,
    "durationState": "unrepresentable",
    "episode": {
      "airDate": "string",
      "localIdentityStatus": "string",
      "number": 0,
      "numbering": "string",
      "orderingBasis": "string",
      "providerMatchStatus": "string",
      "seasonId": "id_8h2k4q",
      "seasonNumber": 0,
      "showId": "id_8h2k4q",
      "showTitle": "Fargo",
      "sourceBoundary": "string"
    },
    "fileInfoOpening": "string",
    "id": "id_8h2k4q",
    "kind": "string",
    "libraryId": "id_8h2k4q",
    "missing": true,
    "overview": "string",
    "posterUrl": "https://example.com/…",
    "progressMs": 1800000,
    "song": {
      "albumArtist": "string",
      "albumId": "id_8h2k4q",
      "albumTitle": "Fargo",
      "artist": "string",
      "discNumber": 0,
      "localMetadataIssue": "string",
      "providerArtist": "string",
      "providerMatchStatus": "string",
      "providerObservedAt": "2026-10-18T19:30:00Z",
      "providerRecordingId": "id_8h2k4q",
      "providerReleaseGroupId": "id_8h2k4q",
      "providerReleaseId": "id_8h2k4q",
      "providerReleaseStatus": "string",
      "providerSourceUrl": "https://example.com/…",
      "providerTitle": "Fargo",
      "providerTrackId": "id_8h2k4q",
      "trackNumber": 0
    },
    "sources": [
      {
        "audioCodec": "string",
        "container": "string",
        "durationMs": 1800000,
        "height": 0,
        "id": "id_8h2k4q",
        "videoCodec": "string",
        "width": 0
      }
    ],
    "stillUrl": "https://example.com/…",
    "title": "Fargo",
    "watched": true,
    "year": 0
  },
  "languages": {
    "audio": [
      "string"
    ],
    "subtitles": [
      "Fargo"
    ]
  },
  "markers": [
    {
      "automaticSafe": true,
      "endMs": 1800000,
      "id": "id_8h2k4q",
      "kind": "string",
      "startMs": 1800000
    }
  ],
  "metadata": {
    "attributions": [
      "string"
    ],
    "creditTotals": {
      "cast": 0,
      "crew": 0
    },
    "credits": [
      {
        "department": "string",
        "id": "id_8h2k4q",
        "name": "Fargo",
        "personId": "id_8h2k4q",
        "portraitUrl": "https://example.com/…",
        "provider": "string",
        "role": "string"
      }
    ],
    "genres": [
      {
        "id": "id_8h2k4q",
        "name": "Fargo",
        "provider": "string"
      }
    ],
    "ratings": [
      {
        "max": 0,
        "observedAt": "2026-10-18T19:30:00Z",
        "provider": "string",
        "sourceUrl": "https://example.com/…",
        "value": 0,
        "votes": 0
      }
    ],
    "sources": [
      {
        "observedAt": "2026-10-18T19:30:00Z",
        "provider": "string",
        "sourceUrl": "https://example.com/…"
      }
    ],
    "status": "string"
  },
  "missingSince": "string",
  "personal": {
    "conflicts": [
      {
        "baseRevision": 0,
        "baseValue": null,
        "choices": [
          {}
        ],
        "field": "string",
        "id": "id_8h2k4q"
      }
    ],
    "continueDismissed": true,
    "favorite": true,
    "lastPlayedAt": "2026-10-18T19:30:00Z",
    "notInterested": true,
    "progressMs": 1800000,
    "rating": 0,
    "revision": 0,
    "status": "string",
    "watched": true,
    "watchlisted": true
  },
  "related": {
    "libraryId": "id_8h2k4q",
    "libraryName": "Fargo",
    "rows": [
      {
        "entries": [
          {}
        ],
        "evidenceId": "id_8h2k4q",
        "hasMore": true,
        "heading": "string",
        "headingText": {
          "code": "string",
          "fallback": "string",
          "params": {}
        },
        "id": "id_8h2k4q",
        "nextCursor": "eyJvIjoyMH0",
        "provider": "string",
        "relation": "string"
      }
    ],
    "version": 0
  },
  "revision": {
    "catalog": 0,
    "viewer": 0
  },
  "scope": {
    "itemId": "id_8h2k4q",
    "libraryId": "id_8h2k4q",
    "serverId": "id_8h2k4q",
    "viewerFence": "string"
  },
  "variant": "detail"
}
Schema
  • actionsarray of objectrequired
    • enabledbooleanrequired
    • idstringrequired
    • labelKeystringrequired
    • maxnumber
    • minnumber
    • playbackobject
      • itemIdstringrequired
      • startMsinteger≥ 0
    • stepnumber
  • collectionsarray of objectrequired
    • idstringrequired
    • memberCountintegerrequired
    • namestringrequired
    • positionintegerrequired
    • posterUrlsarray of stringrequired
    • yearFrominteger
    • yearTointeger
  • episodeDetailsobject
    • contentRatingstring
    • nextobject
      • idstringrequired
      • numberintegerrequired
      • titlestringrequired
    • previousobject
      • idstringrequired
      • numberintegerrequired
      • titlestringrequired
  • extrasarray of object
    • itemsarray of objectrequired
      • absoluteNumberinteger
      • activeBeginYearinteger
      • activeEndYearinteger
      • addedAtstring | any | null
      • airDatestring
      • albumobject
        • idstringrequired
        • namestringrequired
      • albumCountinteger
      • albumTypestring
      • artistobject
        • idstringrequired
        • namestringrequired
      • artistTypestring
      • artworkPathsarray of string
      • audioFactsobject
        • atmosboolean
        • bitDepthinteger
        • channelsinteger
        • codecstringrequired
        • layoutstring
        • losslessboolean
        • sampleRateinteger
      • authorstring
      • availableboolean
      • backdropUrlstring
      • badgesarray of object0–2 items
        • bitDepthintegerrequired≥ 17
        • codecstringrequiredpattern ^[A-Za-z0-9_.+-]{1,64}$
        • sampleRateintegerrequired≥ 1
        • variant"lossless"required
      • bookProgressobject
        • bookIdstringrequired
        • chapterobject
          • endMsintegerrequired
          • indexintegerrequired
          • startMsintegerrequired
          • titlestringrequired
        • durationMsinteger
        • itemIdstringrequired
        • partPositionMsintegerrequired
        • positionMsinteger
        • remainingMsinteger
      • contentRatingstring
      • countinteger
      • countrystring
      • dateBasedboolean
      • discNumberinteger
      • displayTitlestring
      • durationMsinteger≥ 0
      • editionstring
      • episodeNumberinteger
      • favoriteboolean
      • genresarray of string
      • hiddenboolean | any | null
      • homeActionsobject
        • collectionbooleanrequired
        • deletebooleanrequired
        • detailsbooleanrequired
        • downloadbooleanrequired
        • editMetadatabooleanrequired
        • favoritebooleanrequired
        • myListbooleanrequired
        • notInterestedboolean
        • playbooleanrequired
        • playedbooleanrequired
        • playlistbooleanrequired
        • queuebooleanrequired
        • ratingbooleanrequired
        • refreshMetadatabooleanrequired
        • removeFromContinueboolean
        • selectionobjectrequired
          • collectionbooleanrequired
          • deletebooleanrequired
          • downloadbooleanrequired
          • editbooleanrequired
          • favoritebooleanrequired
          • myListbooleanrequired
          • playbooleanrequired
          • playlistbooleanrequired
          • queuebooleanrequired
          • refreshbooleanrequired
          • watchedbooleanrequired
        • stateobjectrequired
          • containerRevisionintegerrequired
          • favoritebooleanrequired
          • personalRevisionintegerrequired
          • ratingnumber | any | nullrequired
          • watchedbooleanrequired
          • watchlistedbooleanrequired
        • watchedbooleanrequired
      • homeTitleContextobject
        • genresarray of stringrequired
        • kindstringrequired
        • seasonCountinteger
        • yearinteger
      • idstringrequired
      • kindstringrequired
      • labelstring
      • languagestring
      • lastChangedstring
      • latestEpisodeobject
        • airDatestringrequired
        • countintegerrequired
        • episodeNumberintegerrequired
        • seasonNumberinteger
        • titlestring
      • libraryIdstring
      • mediaobject
        • absoluteNumberinteger
        • activeBeginYearinteger
        • activeEndYearinteger
        • addedAtstring | any | nullrequired
        • airDatestring
        • albumobject
          • idstringrequired
          • namestringrequired
        • albumCountinteger
        • albumTypestring
        • artistobject
          • idstringrequired
          • namestringrequired
        • artistTypestring
        • artworkPathsarray of string
        • audioFactsobject
          • atmosboolean
          • bitDepthinteger
          • channelsinteger
          • codecstringrequired
          • layoutstring
          • losslessboolean
          • sampleRateinteger
        • authorstring
        • availableboolean
        • backdropUrlstring
        • badgesarray of object0–2 items
          • bitDepthintegerrequired≥ 17
          • codecstringrequiredpattern ^[A-Za-z0-9_.+-]{1,64}$
          • sampleRateintegerrequired≥ 1
          • variant"lossless"required
        • bookProgressobject
          • bookIdstringrequired
          • chapterobject
            • endMsintegerrequired
            • indexintegerrequired
            • startMsintegerrequired
            • titlestringrequired
          • durationMsinteger
          • itemIdstringrequired
          • partPositionMsintegerrequired
          • positionMsinteger
          • remainingMsinteger
        • contentRatingstring
        • countinteger
        • countrystring
        • dateBasedboolean
        • discNumberinteger
        • displayTitlestring
        • durationMsinteger≥ 0
        • editionstring
        • episodeNumberinteger
        • favoriteboolean
        • genresarray of string
        • homeActionsobject
          • collectionbooleanrequired
          • deletebooleanrequired
          • detailsbooleanrequired
          • downloadbooleanrequired
          • editMetadatabooleanrequired
          • favoritebooleanrequired
          • myListbooleanrequired
          • notInterestedboolean
          • playbooleanrequired
          • playedbooleanrequired
          • playlistbooleanrequired
          • queuebooleanrequired
          • ratingbooleanrequired
          • refreshMetadatabooleanrequired
          • removeFromContinueboolean
          • selectionobjectrequired
            • collectionbooleanrequired
            • deletebooleanrequired
            • downloadbooleanrequired
            • editbooleanrequired
            • favoritebooleanrequired
            • myListbooleanrequired
            • playbooleanrequired
            • playlistbooleanrequired
            • queuebooleanrequired
            • refreshbooleanrequired
            • watchedbooleanrequired
          • stateobjectrequired
            • containerRevisionintegerrequired
            • favoritebooleanrequired
            • personalRevisionintegerrequired
            • ratingnumber | any | nullrequired
            • watchedbooleanrequired
            • watchlistedbooleanrequired
          • watchedbooleanrequired
        • homeTitleContextobject
          • genresarray of stringrequired
          • kindstringrequired
          • seasonCountinteger
          • yearinteger
        • idstringrequired
        • kindstringrequired
        • labelstring
        • languagestring
        • lastChangedstring
        • latestEpisodeobject
          • airDatestringrequired
          • countintegerrequired
          • episodeNumberintegerrequired
          • seasonNumberinteger
          • titlestring
        • libraryIdstring
        • missingbooleanrequired
        • narratorsarray of string
        • navigationobject
          • browseobject
            • pivotstringrequiredlength 1–256
            • queryobject
            • sortarray of objectrequired0–1 items
              • directionstringrequiredone of "asc", "desc"
              • fieldstringrequired
          • categorystring
          • channelIdstring
          • entityIdstring
          • provenancestring
          • sourceIdstring
          • viewstringrequired
        • newboolean
        • originstring
        • overviewstring
        • overviewSourcestring
        • overviewSourceUrlstring
        • pageCountinteger
        • pinnedboolean
        • playbackobject
          • itemIdstringrequired
          • startMsinteger≥ 0
        • playsinteger
        • posterUrlstring
        • progressMsinteger≥ 0
        • publicationTypestringone of "book", "magazine", "newspaper"
        • publishedYearinteger
        • publisherstring
        • radioSeedobject
          • idstringrequired
          • kindstringrequired
        • ratingnumber
        • readingMarkobject
          • itemIdstringrequired
          • readbooleanrequired
          • revisionintegerrequired
        • releaseDatestring
        • removedboolean
        • resolutionstring
        • rolestring
        • seasonCountinteger
        • seasonNumberinteger
        • seriesarray of object
          • namestringrequired
          • positionstring
        • showobject
          • idstringrequired
          • namestringrequired
        • sortLetterstring
        • specialboolean
        • stillUrlstring
        • subtitlestring
        • titlestringrequired
        • totalAtLeastinteger
        • trackNumberinteger
        • unwatchedCountinteger
        • userRatinginteger | any | null
        • watchedboolean
        • watchedCountinteger
        • watchlistedboolean
        • yearinteger
        • yearMaxinteger
        • yearMininteger
      • missingboolean
      • narratorsarray of string
      • navigationobject
        • browseobject
          • pivotstringrequiredlength 1–256
          • queryobject
          • sortarray of objectrequired0–1 items
            • directionstringrequiredone of "asc", "desc"
            • fieldstringrequired
        • categorystring
        • channelIdstring
        • entityIdstring
        • provenancestring
        • sourceIdstring
        • viewstringrequired
      • newboolean
      • originstring
      • overviewstring
      • overviewSourcestring
      • overviewSourceUrlstring
      • pageCountinteger
      • pinnedboolean
      • playbackobject
        • itemIdstringrequired
        • startMsinteger≥ 0
      • playsinteger
      • posterUrlstring
      • progressMsinteger≥ 0
      • publicationTypestringone of "book", "magazine", "newspaper"
      • publishedYearinteger
      • publisherstring
      • radioSeedobject
        • idstringrequired
        • kindstringrequired
      • ratingnumber
      • readingMarkobject
        • itemIdstringrequired
        • readbooleanrequired
        • revisionintegerrequired
      • releaseDatestring
      • removedboolean
      • resolutionstring
      • rolestring
      • seasonCountinteger
      • seasonNumberinteger
      • seriesarray of object
        • namestringrequired
        • positionstring
      • showobject
        • idstringrequired
        • namestringrequired
      • sortLetterstring
      • specialboolean
      • stillUrlstring
      • subtitlestring
      • titlestring
      • totalAtLeastinteger
      • trackNumberinteger
      • unwatchedCountinteger
      • userRatinginteger | any | null
      • watchedboolean
      • watchedCountinteger
      • watchlistedboolean
      • yearinteger
      • yearMaxinteger
      • yearMininteger
    • labelstringrequired
    • typestringrequired
  • factsobject
    • contentRatingstring
    • countrystring
    • editionstring
    • networkstring
    • originalLanguagestring
    • originalTitlestring
    • releaseDatestring
    • studiostring
    • taglinestring
  • fileInfoOpeningstring
  • itemobjectrequired
    • addedAtstring | any | nullrequired
    • audioFactsobject
      • atmosboolean
      • bitDepthinteger
      • channelsinteger
      • codecstringrequired
      • layoutstring
      • losslessboolean
      • sampleRateinteger
    • availablebooleanrequired
    • backdropUrlstring
    • bookFileobject
      • bookIdstringrequired
      • bookTitlestringrequired
      • discNumberinteger
      • localMetadataobject
        • authorsarray of stringrequired
        • descriptionstring
        • editionstring
        • identifiersarray of objectrequired
          • schemestringrequired
          • valuestringrequired
        • languagestring
        • narratorsarray of stringrequired
        • publishedYearinteger
        • publisherstring
        • seriesarray of objectrequired
          • namestringrequired
          • positionstring
        • sourcesobjectrequired
      • localMetadataIssuestring
      • localPolicyobject
        • localModestringrequired
        • revisionintegerrequired
      • partNumberinteger
      • sourceBoundarystringrequired
    • durationMsinteger≥ 0
    • durationStatestringone of "unrepresentable"
    • episodeobject
      • airDatestring
      • localIdentityStatusstringrequired
      • numberintegerrequired
      • numberingstringrequired
      • orderingBasisstringrequired
      • providerMatchStatusstringrequired
      • seasonIdstring
      • seasonNumberinteger
      • showIdstringrequired
      • showTitlestringrequired
      • sourceBoundarystringrequired
    • fileInfoOpeningstring
    • idstringrequired
    • kindstringrequired
    • libraryIdstringrequired
    • missingbooleanrequired
    • overviewstring
    • posterUrlstring
    • progressMsintegerrequired≥ 0
    • songobject
      • albumArtiststringrequired
      • albumIdstringrequired
      • albumTitlestringrequired
      • artiststringrequired
      • discNumberinteger
      • localMetadataIssuestring
      • providerArtiststring
      • providerMatchStatusstringrequired
      • providerObservedAtstring
      • providerRecordingIdstring
      • providerReleaseGroupIdstring
      • providerReleaseIdstring
      • providerReleaseStatusstringrequired
      • providerSourceUrlstring
      • providerTitlestring
      • providerTrackIdstring
      • trackNumberinteger
    • sourcesarray of object
      • audioCodecstringrequired
      • containerstringrequired
      • durationMsintegerrequired≥ 0
      • heightintegerrequired
      • idstringrequired
      • videoCodecstringrequired
      • widthintegerrequired
    • stillUrlstring
    • titlestringrequired
    • watchedboolean
    • yearinteger
  • languagesobjectrequired
    • audioarray of stringrequired
    • subtitlesarray of stringrequired
  • markersarray of objectrequired
    • automaticSafebooleanrequired
    • endMsintegerrequired≥ 0
    • idstringrequired
    • kindstringrequired
    • startMsintegerrequired≥ 0
  • metadataobjectrequired
    • attributionsarray of string
    • creditTotalsobjectrequired
      • castintegerrequired
      • crewintegerrequired
    • creditsarray of objectrequired
      • departmentstringrequired
      • idstringrequired
      • namestringrequired
      • personIdstring
      • portraitUrlstring
      • providerstringrequired
      • rolestringrequired
    • genresarray of objectrequired
      • idstringrequired
      • namestringrequired
      • providerstringrequired
    • ratingsarray of objectrequired
      • maxnumberrequired
      • observedAtstringrequired
      • providerstringrequired
      • sourceUrlstringrequired
      • valuenumberrequired
      • votesintegerrequired
    • sourcesarray of objectrequired
      • observedAtstringrequired
      • providerstringrequired
      • sourceUrlstringrequired
    • statusstringrequired
  • missingSincestring
  • personalobjectrequired
    • conflictsarray of objectrequired
      • baseRevisionintegerrequired
      • baseValueanyrequired
      • choicesarray of objectrequired
        • authoredAtstringrequired
        • deviceIdstringrequired
        • operationIdstringrequired
        • valueanyrequired
      • fieldstringrequired
      • idstringrequired
    • continueDismissedboolean
    • favoritebooleanrequired
    • lastPlayedAtstringrequired
    • notInterestedboolean
    • progressMsintegerrequired≥ 0
    • ratinginteger | any | nullrequired
    • revisionintegerrequired
    • statusstringrequired
    • watchedbooleanrequired
    • watchlistedbooleanrequired
  • relatedobject
    • libraryIdstringrequired
    • libraryNamestringrequired
    • rowsarray of objectrequired
      • entriesarray of objectrequired
        • absoluteNumberinteger
        • activeBeginYearinteger
        • activeEndYearinteger
        • addedAtstring | any | null
        • airDatestring
        • albumobject
          • idstringrequired
          • namestringrequired
        • albumCountinteger
        • albumTypestring
        • artistobject
          • idstringrequired
          • namestringrequired
        • artistTypestring
        • artworkPathsarray of string
        • audioFactsobject
          • atmosboolean
          • bitDepthinteger
          • channelsinteger
          • codecstringrequired
          • layoutstring
          • losslessboolean
          • sampleRateinteger
        • authorstring
        • availableboolean
        • backdropUrlstring
        • badgesarray of object0–2 items
          • bitDepthintegerrequired≥ 17
          • codecstringrequiredpattern ^[A-Za-z0-9_.+-]{1,64}$
          • sampleRateintegerrequired≥ 1
          • variant"lossless"required
        • bookProgressobject
          • bookIdstringrequired
          • chapterobject
            • endMsintegerrequired
            • indexintegerrequired
            • startMsintegerrequired
            • titlestringrequired
          • durationMsinteger
          • itemIdstringrequired
          • partPositionMsintegerrequired
          • positionMsinteger
          • remainingMsinteger
        • contentRatingstring
        • countinteger
        • countrystring
        • dateBasedboolean
        • discNumberinteger
        • displayTitlestring
        • durationMsinteger≥ 0
        • editionstring
        • episodeNumberinteger
        • favoriteboolean
        • genresarray of string
        • hiddenboolean | any | null
        • homeActionsobject
          • collectionbooleanrequired
          • deletebooleanrequired
          • detailsbooleanrequired
          • downloadbooleanrequired
          • editMetadatabooleanrequired
          • favoritebooleanrequired
          • myListbooleanrequired
          • notInterestedboolean
          • playbooleanrequired
          • playedbooleanrequired
          • playlistbooleanrequired
          • queuebooleanrequired
          • ratingbooleanrequired
          • refreshMetadatabooleanrequired
          • removeFromContinueboolean
          • selectionobjectrequired
            • collectionbooleanrequired
            • deletebooleanrequired
            • downloadbooleanrequired
            • editbooleanrequired
            • favoritebooleanrequired
            • myListbooleanrequired
            • playbooleanrequired
            • playlistbooleanrequired
            • queuebooleanrequired
            • refreshbooleanrequired
            • watchedbooleanrequired
          • stateobjectrequired
            • containerRevisionintegerrequired
            • favoritebooleanrequired
            • personalRevisionintegerrequired
            • ratingnumber | any | nullrequired
            • watchedbooleanrequired
            • watchlistedbooleanrequired
          • watchedbooleanrequired
        • homeTitleContextobject
          • genresarray of stringrequired
          • kindstringrequired
          • seasonCountinteger
          • yearinteger
        • idstringrequired
        • kindstringrequired
        • labelstring
        • languagestring
        • lastChangedstring
        • latestEpisodeobject
          • airDatestringrequired
          • countintegerrequired
          • episodeNumberintegerrequired
          • seasonNumberinteger
          • titlestring
        • libraryIdstring
        • mediaobject
          • absoluteNumberinteger
          • activeBeginYearinteger
          • activeEndYearinteger
          • addedAtstring | any | nullrequired
          • airDatestring
          • albumobject
            • idstringrequired
            • namestringrequired
          • albumCountinteger
          • albumTypestring
          • artistobject
            • idstringrequired
            • namestringrequired
          • artistTypestring
          • artworkPathsarray of string
          • audioFactsobject
            • atmosboolean
            • bitDepthinteger
            • channelsinteger
            • codecstringrequired
            • layoutstring
            • losslessboolean
            • sampleRateinteger
          • authorstring
          • availableboolean
          • backdropUrlstring
          • badgesarray of object0–2 items
            • bitDepthintegerrequired≥ 17
            • codecstringrequiredpattern ^[A-Za-z0-9_.+-]{1,64}$
            • sampleRateintegerrequired≥ 1
            • variant"lossless"required
          • bookProgressobject
            • bookIdstringrequired
            • chapterobject
              • endMsintegerrequired
              • indexintegerrequired
              • startMsintegerrequired
              • titlestringrequired
            • durationMsinteger
            • itemIdstringrequired
            • partPositionMsintegerrequired
            • positionMsinteger
            • remainingMsinteger
          • contentRatingstring
          • countinteger
          • countrystring
          • dateBasedboolean
          • discNumberinteger
          • displayTitlestring
          • durationMsinteger≥ 0
          • editionstring
          • episodeNumberinteger
          • favoriteboolean
          • genresarray of string
          • homeActionsobject
            • collectionbooleanrequired
            • deletebooleanrequired
            • detailsbooleanrequired
            • downloadbooleanrequired
            • editMetadatabooleanrequired
            • favoritebooleanrequired
            • myListbooleanrequired
            • notInterestedboolean
            • playbooleanrequired
            • playedbooleanrequired
            • playlistbooleanrequired
            • queuebooleanrequired
            • ratingbooleanrequired
            • refreshMetadatabooleanrequired
            • removeFromContinueboolean
            • selectionobjectrequired
              • collectionbooleanrequired
              • deletebooleanrequired
              • downloadbooleanrequired
              • editbooleanrequired
              • favoritebooleanrequired
              • myListbooleanrequired
              • playbooleanrequired
              • playlistbooleanrequired
              • queuebooleanrequired
              • refreshbooleanrequired
              • watchedbooleanrequired
            • stateobjectrequired
              • containerRevisionintegerrequired
              • favoritebooleanrequired
              • personalRevisionintegerrequired
              • ratingnumber | any | nullrequired
              • watchedbooleanrequired
              • watchlistedbooleanrequired
            • watchedbooleanrequired
          • homeTitleContextobject
            • genresarray of stringrequired
            • kindstringrequired
            • seasonCountinteger
            • yearinteger
          • idstringrequired
          • kindstringrequired
          • labelstring
          • languagestring
          • lastChangedstring
          • latestEpisodeobject
            • airDatestringrequired
            • countintegerrequired
            • episodeNumberintegerrequired
            • seasonNumberinteger
            • titlestring
          • libraryIdstring
          • missingbooleanrequired
          • narratorsarray of string
          • navigationobject
            • browseobject
              • pivotstringrequiredlength 1–256
              • queryobject
              • sortarray of objectrequired0–1 items
            • categorystring
            • channelIdstring
            • entityIdstring
            • provenancestring
            • sourceIdstring
            • viewstringrequired
          • newboolean
          • originstring
          • overviewstring
          • overviewSourcestring
          • overviewSourceUrlstring
          • pageCountinteger
          • pinnedboolean
          • playbackobject
            • itemIdstringrequired
            • startMsinteger≥ 0
          • playsinteger
          • posterUrlstring
          • progressMsinteger≥ 0
          • publicationTypestringone of "book", "magazine", "newspaper"
          • publishedYearinteger
          • publisherstring
          • radioSeedobject
            • idstringrequired
            • kindstringrequired
          • ratingnumber
          • readingMarkobject
            • itemIdstringrequired
            • readbooleanrequired
            • revisionintegerrequired
          • releaseDatestring
          • removedboolean
          • resolutionstring
          • rolestring
          • seasonCountinteger
          • seasonNumberinteger
          • seriesarray of object
            • namestringrequired
            • positionstring
          • showobject
            • idstringrequired
            • namestringrequired
          • sortLetterstring
          • specialboolean
          • stillUrlstring
          • subtitlestring
          • titlestringrequired
          • totalAtLeastinteger
          • trackNumberinteger
          • unwatchedCountinteger
          • userRatinginteger | any | null
          • watchedboolean
          • watchedCountinteger
          • watchlistedboolean
          • yearinteger
          • yearMaxinteger
          • yearMininteger
        • missingboolean
        • narratorsarray of string
        • navigationobject
          • browseobject
            • pivotstringrequiredlength 1–256
            • queryobject
            • sortarray of objectrequired0–1 items
              • directionstringrequiredone of "asc", "desc"
              • fieldstringrequired
          • categorystring
          • channelIdstring
          • entityIdstring
          • provenancestring
          • sourceIdstring
          • viewstringrequired
        • newboolean
        • originstring
        • overviewstring
        • overviewSourcestring
        • overviewSourceUrlstring
        • pageCountinteger
        • pinnedboolean
        • playbackobject
          • itemIdstringrequired
          • startMsinteger≥ 0
        • playsinteger
        • posterUrlstring
        • progressMsinteger≥ 0
        • publicationTypestringone of "book", "magazine", "newspaper"
        • publishedYearinteger
        • publisherstring
        • radioSeedobject
          • idstringrequired
          • kindstringrequired
        • ratingnumber
        • readingMarkobject
          • itemIdstringrequired
          • readbooleanrequired
          • revisionintegerrequired
        • releaseDatestring
        • removedboolean
        • resolutionstring
        • rolestring
        • seasonCountinteger
        • seasonNumberinteger
        • seriesarray of object
          • namestringrequired
          • positionstring
        • showobject
          • idstringrequired
          • namestringrequired
        • sortLetterstring
        • specialboolean
        • stillUrlstring
        • subtitlestring
        • titlestring
        • totalAtLeastinteger
        • trackNumberinteger
        • unwatchedCountinteger
        • userRatinginteger | any | null
        • watchedboolean
        • watchedCountinteger
        • watchlistedboolean
        • yearinteger
        • yearMaxinteger
        • yearMininteger
      • evidenceIdstringrequired
      • hasMoreboolean
      • headingstringrequired
      • headingTextobjectrequired
        • codestringrequired
        • fallbackstringrequired
        • paramsobject
      • idstringrequired
      • nextCursorstring
      • providerstringrequired
      • relationstringrequired
    • versionintegerrequired
  • revisionobjectrequired
    • catalogintegerrequired
    • viewerintegerrequired
  • scopeobjectrequired
    • itemIdstringrequired
    • libraryIdstringrequired
    • serverIdstringrequired
    • viewerFencestringrequired
  • variant"detail"required

defaultRequest refused or unavailableapplication/json

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

Error codesinvalid_requestunauthorizednot_permittednot_foundinternalstale_continuationmetadata_unavailabledatabase_busy

Example request

curl -X GET "http://127.0.0.1:32500/v1/items/{id}/detail" \
  -H "Authorization: Bearer $PORTICO_API_KEY"
GET/v1/items/{id}/file-infoRead the item's flat file windowread
Audience
Integrations · Native API
Authorization
API key or personal access token with the read scope, or a signed-in session
OpenAPI operation ID
get_items_id_file_info

Parameters

NameInTypeDescription
idrequiredpathstring
openingquerystring
cursorquerystring
limitqueryinteger | ""1–100
aroundquerystring

Responses

200Successapplication/json

Example
{
  "basis": "string",
  "detail": {
    "revision": {
      "catalog": 0,
      "viewer": 0
    },
    "scope": {
      "itemId": "id_8h2k4q",
      "libraryId": "id_8h2k4q",
      "serverId": "id_8h2k4q",
      "viewerFence": "string"
    }
  },
  "files": [
    {
      "audioCount": 0,
      "available": true,
      "bitRate": 0,
      "container": "string",
      "disc": {
        "chapterCount": 0,
        "kind": "bluray",
        "packaging": "iso",
        "titleNumber": 0
      },
      "duration": 0,
      "durationState": "string",
      "edition": "string",
      "id": "id_8h2k4q",
      "itemId": "id_8h2k4q",
      "occurrence": "string",
      "partIndex": 0,
      "path": "string",
      "size": 0,
      "sizeExact": "string",
      "subtitleCount": 0,
      "video": {
        "bitDepth": 0,
        "bitRate": 0,
        "codec": "string",
        "dynamicRange": "string",
        "frameRate": 0,
        "hdr10Plus": true,
        "height": 0,
        "profile": "string",
        "width": 0
      }
    }
  ],
  "itemKind": "string",
  "kind": "file-info-files",
  "scope": {
    "itemId": "id_8h2k4q",
    "libraryId": "id_8h2k4q",
    "serverId": "id_8h2k4q",
    "viewerFence": "string"
  },
  "surface": {
    "canSplit": true,
    "eligibleFileCount": 0,
    "fileCount": 0,
    "groupCount": 0,
    "hasDiscColumns": true,
    "manage": {
      "delete": true,
      "merge": true,
      "split": true
    },
    "ownerDiscOccurrence": "string"
  },
  "variant": "files",
  "window": {
    "limit": 1,
    "nextCursor": "eyJvIjoyMH0",
    "previousCursor": "eyJvIjoyMH0",
    "queryId": "id_8h2k4q",
    "reloadCursor": "eyJvIjoyMH0",
    "returned": 0
  }
}
Schema
  • basisstringrequiredlength 43–43pattern ^[A-Za-z0-9_-]{43}$
  • detailobjectrequired
    • revisionobjectrequired
      • catalogintegerrequired
      • viewerintegerrequired
    • scopeobjectrequired
      • itemIdstringrequired
      • libraryIdstringrequired
      • serverIdstringrequired
      • viewerFencestringrequired
  • filesarray of objectrequired0–100 items
    • audioCountintegerrequired
    • availablebooleanrequired
    • bitRateinteger
    • containerstringrequiredpattern ^[^]*$
    • discobject
      • chapterCountintegerrequired
      • kindstringrequiredone of "bluray", "dvd"
      • packagingstringrequiredone of "iso", "folder"
      • titleNumberintegerrequired
    • durationnumber
    • durationStatestring
    • editionstringpattern ^[^]*$
    • idstringrequired
    • itemIdstringrequired
    • occurrencestringrequired
    • partIndexintegerrequired
    • pathstringpattern ^[^]*$
    • sizeinteger
    • sizeExactstring
    • subtitleCountintegerrequired
    • videoobject
      • bitDepthinteger
      • bitRateinteger
      • codecstringrequiredpattern ^[^]*$
      • dynamicRangestringpattern ^[^]*$
      • frameRatenumber
      • hdr10Plusboolean
      • heightintegerrequired
      • profilestringpattern ^[^]*$
      • widthintegerrequired
  • itemKindstringrequired
  • kind"file-info-files"required
  • scopeobjectrequired
    • itemIdstringrequired
    • libraryIdstringrequired
    • serverIdstringrequired
    • viewerFencestringrequired
  • surfaceobjectrequired
    • canSplitbooleanrequired
    • eligibleFileCountintegerrequired
    • fileCountintegerrequired
    • groupCountintegerrequired
    • hasDiscColumnsbooleanrequired
    • manageobject
      • deletebooleanrequired
      • mergebooleanrequired
      • splitbooleanrequired
    • ownerDiscOccurrencestring
  • variant"files"required
  • windowobjectrequired
    • limitintegerrequired1–100
    • nextCursorstringlength 154–154pattern ^[A-Za-z0-9_-]{154}$
    • previousCursorstringlength 154–154pattern ^[A-Za-z0-9_-]{154}$
    • queryIdstringrequiredlength 338–338pattern ^[A-Za-z0-9_-]{183}\.[A-Za-z0-9_-]{154}$
    • reloadCursorstringlength 154–154pattern ^[A-Za-z0-9_-]{154}$
    • returnedintegerrequired0–100

202Successapplication/json

Example
{
  "detail": {
    "revision": {
      "catalog": 0,
      "viewer": 0
    },
    "scope": {
      "itemId": "id_8h2k4q",
      "libraryId": "id_8h2k4q",
      "serverId": "id_8h2k4q",
      "viewerFence": "string"
    }
  },
  "kind": "file-info-preparing",
  "queryId": "id_8h2k4q",
  "retryAfterMs": 1800000,
  "state": "preparing",
  "variant": "preparing"
}
Schema
  • detailobjectrequired
    • revisionobjectrequired
      • catalogintegerrequired
      • viewerintegerrequired
    • scopeobjectrequired
      • itemIdstringrequired
      • libraryIdstringrequired
      • serverIdstringrequired
      • viewerFencestringrequired
  • kind"file-info-preparing"required
  • queryIdstringrequiredlength 338–338pattern ^[A-Za-z0-9_-]{183}\.[A-Za-z0-9_-]{154}$
  • retryAfterMsintegerrequired≥ 1
  • state"preparing"required
  • variant"preparing"required

304Successapplication/json

Example
{
  "basis": "string",
  "detail": {
    "revision": {
      "catalog": 0,
      "viewer": 0
    },
    "scope": {
      "itemId": "id_8h2k4q",
      "libraryId": "id_8h2k4q",
      "serverId": "id_8h2k4q",
      "viewerFence": "string"
    }
  },
  "files": [
    {
      "audioCount": 0,
      "available": true,
      "bitRate": 0,
      "container": "string",
      "disc": {
        "chapterCount": 0,
        "kind": "bluray",
        "packaging": "iso",
        "titleNumber": 0
      },
      "duration": 0,
      "durationState": "string",
      "edition": "string",
      "id": "id_8h2k4q",
      "itemId": "id_8h2k4q",
      "occurrence": "string",
      "partIndex": 0,
      "path": "string",
      "size": 0,
      "sizeExact": "string",
      "subtitleCount": 0,
      "video": {
        "bitDepth": 0,
        "bitRate": 0,
        "codec": "string",
        "dynamicRange": "string",
        "frameRate": 0,
        "hdr10Plus": true,
        "height": 0,
        "profile": "string",
        "width": 0
      }
    }
  ],
  "itemKind": "string",
  "kind": "file-info-files",
  "scope": {
    "itemId": "id_8h2k4q",
    "libraryId": "id_8h2k4q",
    "serverId": "id_8h2k4q",
    "viewerFence": "string"
  },
  "surface": {
    "canSplit": true,
    "eligibleFileCount": 0,
    "fileCount": 0,
    "groupCount": 0,
    "hasDiscColumns": true,
    "manage": {
      "delete": true,
      "merge": true,
      "split": true
    },
    "ownerDiscOccurrence": "string"
  },
  "variant": "files",
  "window": {
    "limit": 1,
    "nextCursor": "eyJvIjoyMH0",
    "previousCursor": "eyJvIjoyMH0",
    "queryId": "id_8h2k4q",
    "reloadCursor": "eyJvIjoyMH0",
    "returned": 0
  }
}
Schema
  • basisstringrequiredlength 43–43pattern ^[A-Za-z0-9_-]{43}$
  • detailobjectrequired
    • revisionobjectrequired
      • catalogintegerrequired
      • viewerintegerrequired
    • scopeobjectrequired
      • itemIdstringrequired
      • libraryIdstringrequired
      • serverIdstringrequired
      • viewerFencestringrequired
  • filesarray of objectrequired0–100 items
    • audioCountintegerrequired
    • availablebooleanrequired
    • bitRateinteger
    • containerstringrequiredpattern ^[^]*$
    • discobject
      • chapterCountintegerrequired
      • kindstringrequiredone of "bluray", "dvd"
      • packagingstringrequiredone of "iso", "folder"
      • titleNumberintegerrequired
    • durationnumber
    • durationStatestring
    • editionstringpattern ^[^]*$
    • idstringrequired
    • itemIdstringrequired
    • occurrencestringrequired
    • partIndexintegerrequired
    • pathstringpattern ^[^]*$
    • sizeinteger
    • sizeExactstring
    • subtitleCountintegerrequired
    • videoobject
      • bitDepthinteger
      • bitRateinteger
      • codecstringrequiredpattern ^[^]*$
      • dynamicRangestringpattern ^[^]*$
      • frameRatenumber
      • hdr10Plusboolean
      • heightintegerrequired
      • profilestringpattern ^[^]*$
      • widthintegerrequired
  • itemKindstringrequired
  • kind"file-info-files"required
  • scopeobjectrequired
    • itemIdstringrequired
    • libraryIdstringrequired
    • serverIdstringrequired
    • viewerFencestringrequired
  • surfaceobjectrequired
    • canSplitbooleanrequired
    • eligibleFileCountintegerrequired
    • fileCountintegerrequired
    • groupCountintegerrequired
    • hasDiscColumnsbooleanrequired
    • manageobject
      • deletebooleanrequired
      • mergebooleanrequired
      • splitbooleanrequired
    • ownerDiscOccurrencestring
  • variant"files"required
  • windowobjectrequired
    • limitintegerrequired1–100
    • nextCursorstringlength 154–154pattern ^[A-Za-z0-9_-]{154}$
    • previousCursorstringlength 154–154pattern ^[A-Za-z0-9_-]{154}$
    • queryIdstringrequiredlength 338–338pattern ^[A-Za-z0-9_-]{183}\.[A-Za-z0-9_-]{154}$
    • reloadCursorstringlength 154–154pattern ^[A-Za-z0-9_-]{154}$
    • returnedintegerrequired0–100

defaultRequest refused or unavailableapplication/json

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

Error codesinvalid_requestunauthorizednot_permittednot_foundstale_continuationmetadata_unavailableinternaldatabase_busy

Example request

curl -X GET "http://127.0.0.1:32500/v1/items/{id}/file-info" \
  -H "Authorization: Bearer $PORTICO_API_KEY"
POST/v1/jobsCapture a selection and enqueue a durable bulk jobplayback
Audience
Integrations · Native API
Authorization
API key or personal access token with the playback scope, or a signed-in session
OpenAPI operation ID
create_job
Max body
64 KiB

Request body application/json · required

Example
{
  "args": {
    "favorite": true,
    "rating": 0,
    "watched": true,
    "watchlist": true
  },
  "command": "personal-state",
  "expected": {
    "catalogRevision": "r12"
  },
  "operationId": "id_8h2k4q",
  "selector": {
    "container": {
      "id": "id_8h2k4q",
      "kind": "show"
    }
  }
}
Schema
  • argsobjectrequired
    • collectionIdstringlength 1–256
    • expectedRevisioninteger≥ 1
    • favoriteboolean
    • fieldsobject
      • lockedboolean
      • useAutomaticboolean
      • valuestring
      • valuesarray of string
    • genresobject
      • addarray of string
      • removearray of string
    • listsobject
      • addarray of string
      • removearray of string
    • lockEditedboolean
    • placementstring | object
      • afterstringrequiredlength 1–256
    • playlistIdstringlength 1–256
    • ratinginteger | any | null
    • watchedboolean
    • watchlistboolean
  • commandstringrequiredone of "personal-state", "playlist-add", "collection-add", "metadata-edit", "refresh"
  • expectedobject
    • catalogRevisionstring
  • operationIdstringrequiredpattern ^[A-Za-z0-9_-]{1,128}$
  • selectorobjectrequired
    • containerobject
      • idstringrequiredlength 1–256
      • kindstringrequiredone of "show", "season", "album", "artist", "book", "collection", "playlist", "library"
    • itemsobject
      • idsarray of stringrequired1–200 items
    • queryobject
      • filterobject
      • libraryIdstringrequiredlength 1–256
      • pivotstringrequiredlength 1–256
      • selectionBasisstringpattern ^[a-f0-9]{64}$
      • sortarray of object
        • directionstringrequiredone of "asc", "desc"
        • fieldstringrequiredlength 1–256

Responses

202Successapplication/json

Example
{
  "command": "string",
  "done": 0,
  "errorCode": "string",
  "failed": 0,
  "failuresCursor": "eyJvIjoyMH0",
  "jobId": "id_8h2k4q",
  "state": "string",
  "total": 0,
  "totalKnown": true
}
Schema
  • commandstringrequired
  • doneintegerrequired
  • errorCodestring
  • failedintegerrequired
  • failuresCursorstring
  • jobIdstringrequired
  • statestringrequired
  • totalintegerrequired
  • totalKnownbooleanrequired

defaultRequest refused or unavailableapplication/json

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

Error codesinvalid_requestunauthorizednot_foundidempotency_key_reusedrevision_mismatchrate_limitedinternaltimeoutdatabase_busywriter_capacity

Example request

curl -X POST "http://127.0.0.1:32500/v1/jobs" \
  -H "Authorization: Bearer $PORTICO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "args": {
    "favorite": true,
    "rating": 0,
    "watched": true,
    "watchlist": true
  },
  "command": "personal-state",
  "expected": {
    "catalogRevision": "r12"
  },
  "operationId": "id_8h2k4q",
  "selector": {
    "container": {
      "id": "id_8h2k4q",
      "kind": "show"
    }
  }
}'
GET/v1/jobs/{id}Read this profile's job progressread
Audience
Integrations · Native API
Authorization
API key or personal access token with the read scope, or a signed-in session
OpenAPI operation ID
get_job

Parameters

NameInTypeDescription
idrequiredpathstring

Responses

200Successapplication/json

Example
{
  "command": "string",
  "done": 0,
  "errorCode": "string",
  "failed": 0,
  "failuresCursor": "eyJvIjoyMH0",
  "jobId": "id_8h2k4q",
  "state": "string",
  "total": 0,
  "totalKnown": true
}
Schema
  • commandstringrequired
  • doneintegerrequired
  • errorCodestring
  • failedintegerrequired
  • failuresCursorstring
  • jobIdstringrequired
  • statestringrequired
  • totalintegerrequired
  • totalKnownbooleanrequired

defaultRequest refused or unavailableapplication/json

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

Error codesinvalid_requestunauthorizednot_foundidempotency_key_reusedrevision_mismatchrate_limitedinternaltimeoutdatabase_busy

Example request

curl -X GET "http://127.0.0.1:32500/v1/jobs/{id}" \
  -H "Authorization: Bearer $PORTICO_API_KEY"
GET/v1/jobs/{id}/failuresRead visible failures from this profile's jobread
Audience
Integrations · Native API
Authorization
API key or personal access token with the read scope, or a signed-in session
OpenAPI operation ID
get_job_failures

Parameters

NameInTypeDescription
idrequiredpathstring
cursorquerystring

Responses

200Successapplication/json

Example
{
  "items": [
    {
      "code": "string",
      "itemId": "id_8h2k4q"
    }
  ],
  "nextCursor": "eyJvIjoyMH0"
}
Schema
  • itemsarray of objectrequired
    • codestringrequired
    • itemIdstringrequired
  • nextCursorstring

defaultRequest refused or unavailableapplication/json

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

Error codesinvalid_requestunauthorizednot_foundidempotency_key_reusedrevision_mismatchrate_limitedinternalinvalid_cursortimeoutdatabase_busy

Example request

curl -X GET "http://127.0.0.1:32500/v1/jobs/{id}/failures" \
  -H "Authorization: Bearer $PORTICO_API_KEY"
GET/v1/librariesList visible librariesread
Audience
Integrations · Native API
Authorization
API key or personal access token with the read scope, or a signed-in session
OpenAPI operation ID
get_libraries

Responses

200Successapplication/json

Example
{
  "items": [
    {
      "defaultView": "string",
      "id": "id_8h2k4q",
      "kind": "string",
      "name": "Fargo",
      "pinned": true,
      "summary": {
        "counts": [
          {}
        ],
        "coverUrls": [
          "https://example.com/…"
        ],
        "empty": true,
        "emptyKnown": true,
        "firstScan": true,
        "latestArtwork": "string",
        "publicationCounts": [
          {}
        ]
      }
    }
  ]
}
Schema
  • itemsarray of objectrequired
    • defaultViewstringrequired
    • idstringrequired
    • kindstringrequired
    • namestringrequired
    • pinnedbooleanrequired
    • summaryobject
      • countsarray of objectrequired
        • atLeastbooleanrequired
        • countintegerrequired
        • kindstringrequired
      • coverUrlsarray of stringrequired
      • emptybooleanrequired
      • emptyKnownbooleanrequired
      • firstScanbooleanrequired
      • latestArtworkstringrequired
      • publicationCountsarray of object
        • atLeastbooleanrequired
        • countintegerrequired
        • kindstringrequired

defaultRequest refused or unavailableapplication/json

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

Error codesinvalid_requestunauthorizednot_permittednot_foundrevision_mismatchinternaldatabase_busy

Example request

curl -X GET "http://127.0.0.1:32500/v1/libraries" \
  -H "Authorization: Bearer $PORTICO_API_KEY"
POST/v1/libraries/{id}/scansRun library scanslibrary
Audience
Integrations · Native API
Authorization
API key or personal access token with the library scope, or a signed-in session
OpenAPI operation ID
post_libraries_id_scans

Parameters

NameInTypeDescription
idrequiredpathstring
modequerystring

Responses

202Successapplication/json

Example
{
  "analyzed": 0,
  "error": "string",
  "id": "id_8h2k4q",
  "jobs": [
    "string"
  ],
  "phase": "string",
  "processed": 0,
  "scanMode": "string",
  "sourceId": "id_8h2k4q",
  "status": "string",
  "warnings": 0
}
Schema
  • analyzedintegerrequired
  • errorstring
  • idstringrequired
  • jobsarray of string
  • phasestring
  • processedintegerrequired
  • scanModestring
  • sourceIdstring
  • statusstringrequired
  • warningsintegerrequired

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/libraries/{id}/scans" \
  -H "Authorization: Bearer $PORTICO_API_KEY"
POST/v1/libraries/paths-changedReport paths that were added, changed or removed, and scan only those folderslibrary
Audience
Integrations · Native API
Authorization
API key or personal access token with the library scope, or a signed-in session
OpenAPI operation ID
report_changed_paths
Max body
1 MiB

Request body application/json · required

Example
{
  "mode": "string",
  "paths": [
    {
      "change": "string",
      "path": "string"
    }
  ]
}
Schema
  • modestring
  • pathsarray of objectrequired
    • changestring
    • pathstringrequired

Responses

202Successapplication/json

Example
{
  "deferred": true,
  "jobs": [
    {
      "analyzed": 0,
      "error": "string",
      "id": "id_8h2k4q",
      "jobs": [
        "string"
      ],
      "phase": "string",
      "processed": 0,
      "scanMode": "string",
      "sourceId": "id_8h2k4q",
      "status": "string",
      "warnings": 0
    }
  ],
  "paths": [
    {
      "folder": "string",
      "libraryId": "id_8h2k4q",
      "path": "string",
      "scanScope": "string",
      "sourceId": "id_8h2k4q",
      "status": "string"
    }
  ]
}
Schema
  • deferredboolean
  • jobsarray of objectrequired
    • analyzedintegerrequired
    • errorstring
    • idstringrequired
    • jobsarray of string
    • phasestring
    • processedintegerrequired
    • scanModestring
    • sourceIdstring
    • statusstringrequired
    • warningsintegerrequired
  • pathsarray of objectrequired
    • folderstring
    • libraryIdstring
    • pathstringrequired
    • scanScopestring
    • sourceIdstring
    • statusstringrequired

defaultRequest refused or unavailableapplication/json

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

Error codesunauthorizednot_permittedinvalid_requestbody_too_largeadministration_unavailableinternaldatabase_busywriter_capacity

Example request

curl -X POST "http://127.0.0.1:32500/v1/libraries/paths-changed" \
  -H "Authorization: Bearer $PORTICO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"mode":"string","paths":[{"change":"string","path":"string"}]}'
GET/v1/me/access-tokensList your personal access tokenssession
Audience
Integrations · Native API
Authorization
Session only; API keys and personal access tokens are refused
OpenAPI operation ID
list_access_tokens

Parameters

NameInTypeDescription
cursorquerystring
limitqueryinteger | ""1–100

Responses

200Successapplication/json

Example
{
  "items": [
    {
      "createdAt": "2026-10-18T19:30:00Z",
      "endedReason": "string",
      "expiresAt": "2026-10-18T19:30:00Z",
      "hint": "string",
      "id": "id_8h2k4q",
      "kind": "string",
      "lastUsedAt": "2026-10-18T19:30:00Z",
      "member": {
        "accountId": "id_8h2k4q",
        "profile": "string",
        "profileId": "id_8h2k4q",
        "username": "Fargo"
      },
      "name": "Fargo",
      "scopes": [
        "string"
      ],
      "state": "string"
    }
  ],
  "limit": 0,
  "nextCursor": "eyJvIjoyMH0",
  "total": 0
}
Schema
  • itemsarray of objectrequired
    • createdAtstringrequired
    • endedReasonstring
    • expiresAtstring
    • hintstringrequired
    • idstringrequired
    • kindstringrequired
    • lastUsedAtstring
    • memberobjectrequired
      • accountIdstringrequired
      • profilestringrequired
      • profileIdstringrequired
      • usernamestringrequired
    • namestringrequired
    • scopesarray of stringrequired
    • statestringrequired
  • limitintegerrequired
  • nextCursorstring
  • totalintegerrequired

defaultRequest refused or unavailableapplication/json

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

Error codesunauthorizednot_permittedsession_requiredinvalid_requestadministration_unavailableinternaldatabase_busy

Example request

curl -X GET "http://127.0.0.1:32500/v1/me/access-tokens" \
  -H "Authorization: Bearer $PORTICO_ACCESS_TOKEN"
POST/v1/me/access-tokensCreate a personal access token; its secret is shown oncesession
Audience
Integrations · Native API
Authorization
Session only; API keys and personal access tokens are refused
OpenAPI operation ID
create_access_token
Max body
4 KiB

Request body application/json · required

Example
{
  "expiresAt": "2026-10-18T19:30:00Z",
  "name": "Fargo",
  "operationId": "id_8h2k4q",
  "scopes": [
    "string"
  ]
}
Schema
  • expiresAtstring
  • namestringrequired
  • operationIdstringrequired
  • scopesarray of stringrequired

Responses

201Successapplication/json

Example
{
  "credential": {
    "createdAt": "2026-10-18T19:30:00Z",
    "endedReason": "string",
    "expiresAt": "2026-10-18T19:30:00Z",
    "hint": "string",
    "id": "id_8h2k4q",
    "kind": "string",
    "lastUsedAt": "2026-10-18T19:30:00Z",
    "member": {
      "accountId": "id_8h2k4q",
      "profile": "string",
      "profileId": "id_8h2k4q",
      "username": "Fargo"
    },
    "name": "Fargo",
    "scopes": [
      "string"
    ],
    "state": "string"
  },
  "secret": "string"
}
Schema
  • credentialobjectrequired
    • createdAtstringrequired
    • endedReasonstring
    • expiresAtstring
    • hintstringrequired
    • idstringrequired
    • kindstringrequired
    • lastUsedAtstring
    • memberobjectrequired
      • accountIdstringrequired
      • profilestringrequired
      • profileIdstringrequired
      • usernamestringrequired
    • namestringrequired
    • scopesarray of stringrequired
    • statestringrequired
  • secretstring

defaultRequest refused or unavailableapplication/json

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

Error codesunauthorizednot_permittedsession_requiredinvalid_requestidempotency_key_reusedcredential_limitcredential_unavailableaccess_tokens_offadministration_unavailableinternaldatabase_busywriter_capacity

Example request

curl -X POST "http://127.0.0.1:32500/v1/me/access-tokens" \
  -H "Authorization: Bearer $PORTICO_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"expiresAt":"2026-10-18T19:30:00Z","name":"Fargo","operationId":"id_8h2k4q","scopes":["string"]}'
DELETE/v1/me/access-tokens/{id}Revoke one of your personal access tokenssession
Audience
Integrations · Native API
Authorization
Session only; API keys and personal access tokens are refused
OpenAPI operation ID
revoke_access_token

Parameters

NameInTypeDescription
idrequiredpathstring

Responses

200Successapplication/json

Example
{
  "createdAt": "2026-10-18T19:30:00Z",
  "endedReason": "string",
  "expiresAt": "2026-10-18T19:30:00Z",
  "hint": "string",
  "id": "id_8h2k4q",
  "kind": "string",
  "lastUsedAt": "2026-10-18T19:30:00Z",
  "member": {
    "accountId": "id_8h2k4q",
    "profile": "string",
    "profileId": "id_8h2k4q",
    "username": "Fargo"
  },
  "name": "Fargo",
  "scopes": [
    "string"
  ],
  "state": "string"
}
Schema
  • createdAtstringrequired
  • endedReasonstring
  • expiresAtstring
  • hintstringrequired
  • idstringrequired
  • kindstringrequired
  • lastUsedAtstring
  • memberobjectrequired
    • accountIdstringrequired
    • profilestringrequired
    • profileIdstringrequired
    • usernamestringrequired
  • namestringrequired
  • scopesarray of stringrequired
  • statestringrequired

defaultRequest refused or unavailableapplication/json

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

Error codesunauthorizednot_permittedsession_requiredinvalid_requestnot_foundadministration_unavailableinternaldatabase_busywriter_capacity

Example request

curl -X DELETE "http://127.0.0.1:32500/v1/me/access-tokens/{id}" \
  -H "Authorization: Bearer $PORTICO_ACCESS_TOKEN"
GET/v1/me/api-accessRead the scopes and limits for API keys and personal access tokenssession
Audience
Integrations · Native API
Authorization
Session only; API keys and personal access tokens are refused
OpenAPI operation ID
get_api_access_options

Responses

200Successapplication/json

Example
{
  "maximumKeys": 0,
  "maximumTokens": 0,
  "queryParameter": "string",
  "requestsPerMinute": 0,
  "scopes": [
    {
      "id": "id_8h2k4q"
    }
  ],
  "tokensAllowed": true
}
Schema
  • maximumKeysintegerrequired
  • maximumTokensintegerrequired
  • queryParameterstringrequired
  • requestsPerMinuteintegerrequired
  • scopesarray of objectrequired
    • idstringrequired
  • tokensAllowedbooleanrequired

defaultRequest refused or unavailableapplication/json

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

Error codesunauthorizedsession_requiredinternaldatabase_busy

Example request

curl -X GET "http://127.0.0.1:32500/v1/me/api-access" \
  -H "Authorization: Bearer $PORTICO_ACCESS_TOKEN"
GET/v1/playback/controlsRead this account’s playback on each device and the controls it may useplayback
Audience
Integrations · Native API
Authorization
API key or personal access token with the playback scope, or a signed-in session
OpenAPI operation ID
get_remote_playback_controls

Parameters

NameInTypeDescription
cursorquerystring
limitqueryinteger | ""0–100

Responses

200Successapplication/json

Example
{
  "items": [
    {
      "actions": [
        "string"
      ],
      "device": {
        "id": "id_8h2k4q",
        "name": "Fargo"
      },
      "durationMs": 1800000,
      "generation": 0,
      "item": {
        "id": "id_8h2k4q",
        "title": "Fargo"
      },
      "kind": "string",
      "next": {
        "album": "string",
        "albumId": "id_8h2k4q",
        "artist": "string",
        "artistId": "id_8h2k4q",
        "available": true,
        "backdropUrl": "https://example.com/…",
        "disc": 0,
        "durationMs": 1800000,
        "entryId": "id_8h2k4q",
        "episode": {
          "number": 0,
          "seasonNumber": 0
        },
        "itemId": "id_8h2k4q",
        "kind": "string",
        "libraryId": "id_8h2k4q",
        "position": 0,
        "posterUrl": "https://example.com/…",
        "seasonId": "id_8h2k4q",
        "segmentId": "id_8h2k4q",
        "showId": "id_8h2k4q",
        "stillUrl": "https://example.com/…",
        "title": "Fargo",
        "track": 0
      },
      "positionMs": 1800000,
      "revision": "r12",
      "sessionId": "id_8h2k4q",
      "state": "string"
    }
  ],
  "nextCursor": "eyJvIjoyMH0",
  "streamLimit": {
    "limit": 0,
    "playing": 0,
    "scope": "string"
  }
}
Schema
  • itemsarray of objectrequired
    • actionsarray of stringrequired
    • deviceobjectrequired
      • idstringrequired
      • namestringrequired
    • durationMsinteger
    • generationintegerrequired
    • itemobject
      • idstringrequired
      • titlestringrequired
    • kindstringrequired
    • nextobject
      • albumstring
      • albumIdstring
      • artiststring
      • artistIdstring
      • availablebooleanrequired
      • backdropUrlstring
      • discinteger
      • durationMsinteger
      • entryIdstringrequired
      • episodeobject
        • numberintegerrequired
        • seasonNumberintegerrequired
      • itemIdstringrequired
      • kindstringrequired
      • libraryIdstring
      • positionintegerrequired
      • posterUrlstring
      • seasonIdstring
      • segmentIdstringrequired
      • showIdstring
      • stillUrlstring
      • titlestringrequired
      • trackinteger
    • positionMsintegerrequired
    • revisionstringrequired
    • sessionIdstringrequired
    • statestringrequired
  • nextCursorstringrequired
  • streamLimitobject
    • limitintegerrequired
    • playingintegerrequired
    • scopestringrequired

defaultRequest refused or unavailableapplication/json

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

Error codesunauthorizednot_permittednot_foundinvalid_requestrevision_requiredrevision_mismatchsession_endedinternaltimeoutdatabase_busy

Example request

curl -X GET "http://127.0.0.1:32500/v1/playback/controls" \
  -H "Authorization: Bearer $PORTICO_API_KEY"
POST/v1/playback/controls/{id}:stopStop playback belonging to this account without disclosing a hidden titleplayback
Audience
Integrations · Native API
Authorization
API key or personal access token with the playback scope, or a signed-in session
OpenAPI operation ID
stop_account_playback
Max body
4 KiB

Parameters

NameInTypeDescription
idrequiredpathstring
Idempotency-Keyheaderstring
Portico-Mutation-Rootheaderstring

Request body application/json

Example
{
  "generation": 1
}
Schema
  • generationinteger1–2147483647

Responses

204Success

defaultRequest refused or unavailableapplication/json

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

Error codesunauthorizednot_permittednot_foundinvalid_requestrevision_requiredrevision_mismatchsession_endedinternaltimeoutidempotency_conflictreceipt_expiredinvalid_mutation_keydatabase_busywriter_capacity

Example request

curl -X POST "http://127.0.0.1:32500/v1/playback/controls/{id}:stop" \
  -H "Authorization: Bearer $PORTICO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"generation":1}'
GET/v1/seasons/{id}/episodesRead season episodesread
Audience
Integrations · Native API
Authorization
API key or personal access token with the read scope, or a signed-in session
OpenAPI operation ID
get_seasons_id_episodes

Parameters

NameInTypeDescription
idrequiredpathstring
cursorquerystring
limitqueryinteger
playStatequerystring

Responses

200Successapplication/json

Example
{
  "episodes": [
    {
      "addedAt": "2026-10-18T19:30:00Z",
      "audioFacts": {
        "atmos": true,
        "bitDepth": 0,
        "channels": 0,
        "codec": "string",
        "layout": "string",
        "lossless": true,
        "sampleRate": 0
      },
      "available": true,
      "backdropUrl": "https://example.com/…",
      "bookFile": {
        "bookId": "id_8h2k4q",
        "bookTitle": "Fargo",
        "discNumber": 0,
        "localMetadata": {
          "authors": [],
          "description": "string",
          "edition": "string",
          "identifiers": [],
          "language": "en",
          "narrators": [],
          "publishedYear": 0,
          "publisher": "string",
          "series": [],
          "sources": {}
        },
        "localMetadataIssue": "string",
        "localPolicy": {
          "localMode": "string",
          "revision": 0
        },
        "partNumber": 0,
        "sourceBoundary": "string"
      },
      "durationMs": 1800000,
      "durationState": "unrepresentable",
      "episode": {
        "airDate": "string",
        "localIdentityStatus": "string",
        "number": 0,
        "numbering": "string",
        "orderingBasis": "string",
        "providerMatchStatus": "string",
        "seasonId": "id_8h2k4q",
        "seasonNumber": 0,
        "showId": "id_8h2k4q",
        "showTitle": "Fargo",
        "sourceBoundary": "string"
      },
      "fileInfoOpening": "string",
      "id": "id_8h2k4q",
      "kind": "string",
      "libraryId": "id_8h2k4q",
      "missing": true,
      "overview": "string",
      "posterUrl": "https://example.com/…",
      "progressMs": 1800000,
      "song": {
        "albumArtist": "string",
        "albumId": "id_8h2k4q",
        "albumTitle": "Fargo",
        "artist": "string",
        "discNumber": 0,
        "localMetadataIssue": "string",
        "providerArtist": "string",
        "providerMatchStatus": "string",
        "providerObservedAt": "2026-10-18T19:30:00Z",
        "providerRecordingId": "id_8h2k4q",
        "providerReleaseGroupId": "id_8h2k4q",
        "providerReleaseId": "id_8h2k4q",
        "providerReleaseStatus": "string",
        "providerSourceUrl": "https://example.com/…",
        "providerTitle": "Fargo",
        "providerTrackId": "id_8h2k4q",
        "trackNumber": 0
      },
      "sources": [
        {
          "audioCodec": "string",
          "container": "string",
          "durationMs": 1800000,
          "height": 0,
          "id": "id_8h2k4q",
          "videoCodec": "string",
          "width": 0
        }
      ],
      "stillUrl": "https://example.com/…",
      "title": "Fargo",
      "watched": true,
      "year": 0
    }
  ],
  "nextCursor": "eyJvIjoyMH0"
}
Schema
  • episodesarray of objectrequired
    • addedAtstring | any | nullrequired
    • audioFactsobject
      • atmosboolean
      • bitDepthinteger
      • channelsinteger
      • codecstringrequired
      • layoutstring
      • losslessboolean
      • sampleRateinteger
    • availablebooleanrequired
    • backdropUrlstring
    • bookFileobject
      • bookIdstringrequired
      • bookTitlestringrequired
      • discNumberinteger
      • localMetadataobject
        • authorsarray of stringrequired
        • descriptionstring
        • editionstring
        • identifiersarray of objectrequired
          • schemestringrequired
          • valuestringrequired
        • languagestring
        • narratorsarray of stringrequired
        • publishedYearinteger
        • publisherstring
        • seriesarray of objectrequired
          • namestringrequired
          • positionstring
        • sourcesobjectrequired
      • localMetadataIssuestring
      • localPolicyobject
        • localModestringrequired
        • revisionintegerrequired
      • partNumberinteger
      • sourceBoundarystringrequired
    • durationMsinteger≥ 0
    • durationStatestringone of "unrepresentable"
    • episodeobject
      • airDatestring
      • localIdentityStatusstringrequired
      • numberintegerrequired
      • numberingstringrequired
      • orderingBasisstringrequired
      • providerMatchStatusstringrequired
      • seasonIdstring
      • seasonNumberinteger
      • showIdstringrequired
      • showTitlestringrequired
      • sourceBoundarystringrequired
    • fileInfoOpeningstring
    • idstringrequired
    • kindstringrequired
    • libraryIdstringrequired
    • missingbooleanrequired
    • overviewstring
    • posterUrlstring
    • progressMsintegerrequired≥ 0
    • songobject
      • albumArtiststringrequired
      • albumIdstringrequired
      • albumTitlestringrequired
      • artiststringrequired
      • discNumberinteger
      • localMetadataIssuestring
      • providerArtiststring
      • providerMatchStatusstringrequired
      • providerObservedAtstring
      • providerRecordingIdstring
      • providerReleaseGroupIdstring
      • providerReleaseIdstring
      • providerReleaseStatusstringrequired
      • providerSourceUrlstring
      • providerTitlestring
      • providerTrackIdstring
      • trackNumberinteger
    • sourcesarray of object
      • audioCodecstringrequired
      • containerstringrequired
      • durationMsintegerrequired≥ 0
      • heightintegerrequired
      • idstringrequired
      • videoCodecstringrequired
      • widthintegerrequired
    • stillUrlstring
    • titlestringrequired
    • watchedboolean
    • yearinteger
  • nextCursorstringrequired

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/seasons/{id}/episodes" \
  -H "Authorization: Bearer $PORTICO_API_KEY"
GET/v1/serverRead server identity and API levelopen
Audience
Integrations · Native API
Authorization
No credential needed
OpenAPI operation ID
get_server

Responses

200Successapplication/json

Example
{
  "api": {
    "level": 0,
    "major": 0
  },
  "id": "id_8h2k4q",
  "name": "Fargo",
  "setupRequired": true
}
Schema
  • apiobjectrequired
    • levelintegerrequired
    • majorintegerrequired
  • idstringrequired
  • namestringrequired
  • setupRequiredbooleanrequired

defaultRequest refused or unavailableapplication/json

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

Error codesinternaldatabase_busy

Example request

curl -X GET "http://127.0.0.1:32500/v1/server"
GET/v1/shows/{id}/episodesRead show episodesread
Audience
Integrations · Native API
Authorization
API key or personal access token with the read scope, or a signed-in session
OpenAPI operation ID
get_shows_id_episodes

Parameters

NameInTypeDescription
idrequiredpathstring
cursorquerystring
limitqueryinteger
playStatequerystring

Responses

200Successapplication/json

Example
{
  "episodes": [
    {
      "addedAt": "2026-10-18T19:30:00Z",
      "audioFacts": {
        "atmos": true,
        "bitDepth": 0,
        "channels": 0,
        "codec": "string",
        "layout": "string",
        "lossless": true,
        "sampleRate": 0
      },
      "available": true,
      "backdropUrl": "https://example.com/…",
      "bookFile": {
        "bookId": "id_8h2k4q",
        "bookTitle": "Fargo",
        "discNumber": 0,
        "localMetadata": {
          "authors": [],
          "description": "string",
          "edition": "string",
          "identifiers": [],
          "language": "en",
          "narrators": [],
          "publishedYear": 0,
          "publisher": "string",
          "series": [],
          "sources": {}
        },
        "localMetadataIssue": "string",
        "localPolicy": {
          "localMode": "string",
          "revision": 0
        },
        "partNumber": 0,
        "sourceBoundary": "string"
      },
      "durationMs": 1800000,
      "durationState": "unrepresentable",
      "episode": {
        "airDate": "string",
        "localIdentityStatus": "string",
        "number": 0,
        "numbering": "string",
        "orderingBasis": "string",
        "providerMatchStatus": "string",
        "seasonId": "id_8h2k4q",
        "seasonNumber": 0,
        "showId": "id_8h2k4q",
        "showTitle": "Fargo",
        "sourceBoundary": "string"
      },
      "fileInfoOpening": "string",
      "id": "id_8h2k4q",
      "kind": "string",
      "libraryId": "id_8h2k4q",
      "missing": true,
      "overview": "string",
      "posterUrl": "https://example.com/…",
      "progressMs": 1800000,
      "song": {
        "albumArtist": "string",
        "albumId": "id_8h2k4q",
        "albumTitle": "Fargo",
        "artist": "string",
        "discNumber": 0,
        "localMetadataIssue": "string",
        "providerArtist": "string",
        "providerMatchStatus": "string",
        "providerObservedAt": "2026-10-18T19:30:00Z",
        "providerRecordingId": "id_8h2k4q",
        "providerReleaseGroupId": "id_8h2k4q",
        "providerReleaseId": "id_8h2k4q",
        "providerReleaseStatus": "string",
        "providerSourceUrl": "https://example.com/…",
        "providerTitle": "Fargo",
        "providerTrackId": "id_8h2k4q",
        "trackNumber": 0
      },
      "sources": [
        {
          "audioCodec": "string",
          "container": "string",
          "durationMs": 1800000,
          "height": 0,
          "id": "id_8h2k4q",
          "videoCodec": "string",
          "width": 0
        }
      ],
      "stillUrl": "https://example.com/…",
      "title": "Fargo",
      "watched": true,
      "year": 0
    }
  ],
  "group": "string",
  "nextCursor": "eyJvIjoyMH0"
}
Schema
  • episodesarray of objectrequired
    • addedAtstring | any | nullrequired
    • audioFactsobject
      • atmosboolean
      • bitDepthinteger
      • channelsinteger
      • codecstringrequired
      • layoutstring
      • losslessboolean
      • sampleRateinteger
    • availablebooleanrequired
    • backdropUrlstring
    • bookFileobject
      • bookIdstringrequired
      • bookTitlestringrequired
      • discNumberinteger
      • localMetadataobject
        • authorsarray of stringrequired
        • descriptionstring
        • editionstring
        • identifiersarray of objectrequired
          • schemestringrequired
          • valuestringrequired
        • languagestring
        • narratorsarray of stringrequired
        • publishedYearinteger
        • publisherstring
        • seriesarray of objectrequired
          • namestringrequired
          • positionstring
        • sourcesobjectrequired
      • localMetadataIssuestring
      • localPolicyobject
        • localModestringrequired
        • revisionintegerrequired
      • partNumberinteger
      • sourceBoundarystringrequired
    • durationMsinteger≥ 0
    • durationStatestringone of "unrepresentable"
    • episodeobject
      • airDatestring
      • localIdentityStatusstringrequired
      • numberintegerrequired
      • numberingstringrequired
      • orderingBasisstringrequired
      • providerMatchStatusstringrequired
      • seasonIdstring
      • seasonNumberinteger
      • showIdstringrequired
      • showTitlestringrequired
      • sourceBoundarystringrequired
    • fileInfoOpeningstring
    • idstringrequired
    • kindstringrequired
    • libraryIdstringrequired
    • missingbooleanrequired
    • overviewstring
    • posterUrlstring
    • progressMsintegerrequired≥ 0
    • songobject
      • albumArtiststringrequired
      • albumIdstringrequired
      • albumTitlestringrequired
      • artiststringrequired
      • discNumberinteger
      • localMetadataIssuestring
      • providerArtiststring
      • providerMatchStatusstringrequired
      • providerObservedAtstring
      • providerRecordingIdstring
      • providerReleaseGroupIdstring
      • providerReleaseIdstring
      • providerReleaseStatusstringrequired
      • providerSourceUrlstring
      • providerTitlestring
      • providerTrackIdstring
      • trackNumberinteger
    • sourcesarray of object
      • audioCodecstringrequired
      • containerstringrequired
      • durationMsintegerrequired≥ 0
      • heightintegerrequired
      • idstringrequired
      • videoCodecstringrequired
      • widthintegerrequired
    • stillUrlstring
    • titlestringrequired
    • watchedboolean
    • yearinteger
  • groupstringrequired
  • nextCursorstringrequired

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/shows/{id}/episodes" \
  -H "Authorization: Bearer $PORTICO_API_KEY"
GET/v1/shows/{id}/seasonsRead show seasonread
Audience
Integrations · Native API
Authorization
API key or personal access token with the read scope, or a signed-in session
OpenAPI operation ID
get_shows_id_seasons

Parameters

NameInTypeDescription
idrequiredpathstring

Responses

200Successapplication/json

Example
{
  "seasons": [
    {
      "episodeCount": 0,
      "firstAired": "string",
      "id": "id_8h2k4q",
      "lastAired": "string",
      "number": 0,
      "overview": "string",
      "posterUrl": "https://example.com/…",
      "showId": "id_8h2k4q",
      "title": "Fargo",
      "unwatchedCount": 0,
      "watchedCount": 0
    }
  ]
}
Schema
  • seasonsarray of objectrequired
    • episodeCountinteger
    • firstAiredstring
    • idstringrequired
    • lastAiredstring
    • numberintegerrequired
    • overviewstring
    • posterUrlstring
    • showIdstringrequired
    • titlestringrequired
    • unwatchedCountinteger
    • watchedCountinteger

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/shows/{id}/seasons" \
  -H "Authorization: Bearer $PORTICO_API_KEY"
GET/v1/systemRead systemopen
Audience
Integrations · Native API
Authorization
No credential needed
OpenAPI operation ID
get_system

Responses

200Successapplication/json

Example
{
  "apiLevel": 0,
  "apiMajors": [
    0
  ],
  "apiVersion": "string",
  "capabilities": [
    "string"
  ],
  "hostedAttached": true,
  "hostedConfigured": true,
  "id": "id_8h2k4q",
  "move": "to_portico",
  "moveEndsAt": "2026-10-18T19:30:00Z",
  "name": "Fargo",
  "setupRequired": true,
  "signIn": "portico",
  "version": "string"
}
Schema
  • apiLevelintegerrequired
  • apiMajorsarray of integerrequired
  • apiVersionstringrequired
  • capabilitiesarray of stringrequired
  • hostedAttachedbooleanrequired
  • hostedConfiguredbooleanrequired
  • idstringrequired
  • movestring | any | nullrequired
  • moveEndsAtstring | any | nullrequired
  • namestringrequired
  • setupRequiredbooleanrequired
  • signInstringrequiredone of "portico", "local"
  • versionstringrequired

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/system"
GET/v1/titlesList titles of one kind in one library, or find a title by its provider idread
Audience
Integrations · Native API
Authorization
API key or personal access token with the read scope, or a signed-in session
OpenAPI operation ID
query_titles

Parameters

NameInTypeDescription
libraryquerystring
kindquerystring
sortquerystring
orderquerystring
yearFromquerystring
yearToquerystring
addedAfterquerystring
addedBeforequerystring
providerquerystring
providerIdquerystring
cursorquerystring
limitqueryinteger | ""1–100

Responses

200Successapplication/json

Example
{
  "items": [
    {
      "addedAt": "2026-10-18T19:30:00Z",
      "available": true,
      "durationMs": 1800000,
      "id": "id_8h2k4q",
      "kind": "string",
      "libraryId": "id_8h2k4q",
      "posterUrl": "https://example.com/…",
      "providerIds": {
        "key": "string"
      },
      "rating": 0,
      "title": "Fargo",
      "year": 0
    }
  ],
  "limit": 0,
  "nextCursor": "eyJvIjoyMH0"
}
Schema
  • itemsarray of objectrequired
    • addedAtstring
    • availablebooleanrequired
    • durationMsinteger≥ 0
    • idstringrequired
    • kindstringrequired
    • libraryIdstringrequired
    • posterUrlstring
    • providerIdsobjectrequired
    • ratingnumber
    • titlestringrequired
    • yearinteger
  • limitintegerrequired
  • nextCursorstring

defaultRequest refused or unavailableapplication/json

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

Error codesunauthorizedinvalid_requestinvalid_cursorcursor_expirednot_foundinternaldatabase_busy

Example request

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