Admin Metadata

Generated admin metadata operations.

GET/v1/admin/metadata/attentionList unmatched and uncertain titles with their best candidateslibrary
Audience
Clients · Native API
Authorization
API key or personal access token with the library scope, or a signed-in session
OpenAPI operation ID
get_server_metadata_attention

Parameters

NameInTypeDescription
cursorquerystring
limitqueryinteger | ""1–50
includeInProgressquerystring

Responses

200Successapplication/json

Example
{
  "entries": [
    {
      "actions": [
        "string"
      ],
      "artworkUrl": "https://example.com/…",
      "candidates": [
        {
          "confidence": 0,
          "identity": {},
          "key": "string",
          "orders": [],
          "posterUrl": "https://example.com/…",
          "reasons": [],
          "title": "Fargo",
          "year": 0
        }
      ],
      "confidence": 0,
      "entityId": "id_8h2k4q",
      "itemKind": "string",
      "kind": "string",
      "libraryId": "id_8h2k4q",
      "parentArtist": "string",
      "parentId": "id_8h2k4q",
      "parentTitle": "Fargo",
      "reason": "string",
      "revision": 0,
      "title": "Fargo"
    }
  ],
  "libraryId": "id_8h2k4q",
  "nextCursor": "eyJvIjoyMH0",
  "total": 0
}
Schema
  • entriesarray of objectrequired
    • actionsarray of stringrequired
    • artworkUrlstring
    • candidatesarray of objectrequired
      • confidencenumberrequired
      • identityobjectrequired
        • idstringrequired
        • providerstringrequired
        • typestringrequired
      • keystringrequired
      • ordersarray of objectrequired
        • idstringrequired
        • namestringrequired
      • posterUrlstring
      • reasonsarray of stringrequired
      • titlestringrequired
      • yearintegerrequired
    • confidencenumberrequired
    • entityIdstringrequired
    • itemKindstringrequired
    • kindstringrequired
    • libraryIdstringrequired
    • parentArtiststring
    • parentIdstringrequired
    • parentTitlestring
    • reasonstringrequired
    • revisionintegerrequired
    • titlestringrequired
  • libraryIdstringrequired
  • nextCursorstringrequired
  • totalintegerrequired

defaultRequest refused or unavailableapplication/json

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

Error codesunauthorizednot_permittednot_foundinvalid_requestrevision_mismatchrate_limitedinternaltimeoutdatabase_busy

Example request

curl -X GET "http://127.0.0.1:32500/v1/admin/metadata/attention" \
  -H "Authorization: Bearer $PORTICO_API_KEY"
GET/v1/admin/metadata/attention/countsCount titles waiting for attention per library and across the serverlibrary
Audience
Clients · Native API
Authorization
API key or personal access token with the library scope, or a signed-in session
OpenAPI operation ID
get_metadata_attention_counts

Responses

200Successapplication/json

Example
{
  "libraries": [
    {
      "libraryId": "id_8h2k4q",
      "total": 0
    }
  ],
  "total": 0
}
Schema
  • librariesarray of objectrequired
    • libraryIdstringrequired
    • totalintegerrequired
  • totalintegerrequired

defaultRequest refused or unavailableapplication/json

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

Error codesunauthorizednot_permittednot_foundinvalid_requestrevision_mismatchrate_limitedinternaltimeoutdatabase_busy

Example request

curl -X GET "http://127.0.0.1:32500/v1/admin/metadata/attention/counts" \
  -H "Authorization: Bearer $PORTICO_API_KEY"
GET/v1/admin/metadata/settingsRead provider credentials status and artwork storage limitadmin
Audience
Clients · Native API
Authorization
API key or personal access token with the admin scope, or a signed-in session
OpenAPI operation ID
get_metadata_settings

Responses

200Successapplication/json

Example
{
  "acoustidKeyConfigured": true,
  "acoustidKeySource": "string",
  "animeTitles": "Fargo",
  "artworkLanguage": "en",
  "artworkMaxEdge": 1280,
  "artworkPreference": "string",
  "castPhotos": true,
  "defaultLanguage": "en",
  "defaultRegion": "string",
  "fallbackLanguage": "en",
  "includeAdult": true,
  "libraries": [
    {
      "agent": "string",
      "agentOptions": [
        "string"
      ],
      "canScrub": true,
      "episodeThumbnailMode": "string",
      "id": "id_8h2k4q",
      "kind": "string",
      "lyricsSource": "string",
      "managed": true,
      "name": "Fargo",
      "revision": "r12",
      "scrubPreviews": true
    }
  ],
  "librariesComplete": true,
  "localArtworkLimitBytes": 0,
  "localArtworkUsedBytes": 0,
  "onlineLookups": true,
  "openSubtitles": {
    "account": "string",
    "accountSource": "string",
    "checkedAt": "2026-10-18T19:30:00Z",
    "downloadsAllowed": 0,
    "downloadsRemaining": 0,
    "downloadsResetAt": "2026-10-18T19:30:00Z",
    "keySource": "string",
    "problem": "string",
    "retryAt": "2026-10-18T19:30:00Z"
  },
  "openSubtitlesKeyConfigured": true,
  "openSubtitlesPasswordConfigured": true,
  "openSubtitlesUsername": "Fargo",
  "refreshAll": {
    "requestedAt": "2026-10-18T19:30:00Z",
    "running": true
  },
  "refreshPolicy": "string",
  "revision": 0,
  "tmdbCredentialConfigured": true,
  "tvdbCredentialConfigured": true
}
Schema
  • acoustidKeyConfiguredbooleanrequired
  • acoustidKeySourcestringrequired
  • animeTitlesstringrequired
  • artworkLanguagestring
  • artworkMaxEdgeintegerrequiredone of 1280, 1920, 2560
  • artworkPreferencestring
  • castPhotosbooleanrequired
  • defaultLanguagestring
  • defaultRegionstring
  • fallbackLanguagestringrequired
  • includeAdultbooleanrequired
  • librariesarray of object
    • agentstringrequired
    • agentOptionsarray of stringrequired
    • canScrubbooleanrequired
    • episodeThumbnailModestringrequired
    • idstringrequired
    • kindstringrequired
    • lyricsSourcestringrequired
    • managedbooleanrequired
    • namestringrequired
    • revisionstringrequired
    • scrubPreviewsbooleanrequired
  • librariesCompleteboolean
  • localArtworkLimitBytesintegerrequired
  • localArtworkUsedBytesintegerrequired
  • onlineLookupsboolean
  • openSubtitlesobjectrequired
    • accountstringrequired
    • accountSourcestringrequired
    • checkedAtstring
    • downloadsAllowedintegerrequired
    • downloadsRemainingintegerrequired
    • downloadsResetAtstring
    • keySourcestringrequired
    • problemstring
    • retryAtstring
  • openSubtitlesKeyConfiguredbooleanrequired
  • openSubtitlesPasswordConfiguredbooleanrequired
  • openSubtitlesUsernamestringrequired
  • refreshAllobjectrequired
    • requestedAtstring
    • runningbooleanrequired
  • refreshPolicystringrequired
  • revisionintegerrequired
  • tmdbCredentialConfiguredbooleanrequired
  • tvdbCredentialConfiguredbooleanrequired

defaultRequest refused or unavailableapplication/json

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

Error codesunauthorizednot_permittedinvalid_requestrevision_mismatchinternaltimeoutdatabase_busy

Example request

curl -X GET "http://127.0.0.1:32500/v1/admin/metadata/settings" \
  -H "Authorization: Bearer $PORTICO_API_KEY"
PUT/v1/admin/metadata/settingsSave provider credential overrides and artwork storage limitadmin
Audience
Clients · Native API
Authorization
API key or personal access token with the admin scope, or a signed-in session
OpenAPI operation ID
put_metadata_settings
Max body
256 KiB

Parameters

NameInTypeDescription
Idempotency-Keyheaderstring
Portico-Mutation-Rootheaderstring

Request body application/json · required

Example
{
  "acoustidKey": "string",
  "animeTitles": "Fargo",
  "artworkLanguage": "en",
  "artworkMaxEdge": 1280,
  "artworkPreference": "string",
  "castPhotos": true,
  "defaultLanguage": "en",
  "defaultRegion": "string",
  "expectedRevision": 0,
  "fallbackLanguage": "en",
  "includeAdult": true,
  "libraries": [
    {
      "agent": "string",
      "episodeThumbnailMode": "string",
      "expectedRevision": "r12",
      "id": "id_8h2k4q",
      "lyricsSource": "string",
      "scrubPreviews": true
    }
  ],
  "localArtworkLimitBytes": 0,
  "onlineLookups": true,
  "openSubtitlesApiKey": "Fargo",
  "openSubtitlesPassword": "Fargo",
  "openSubtitlesUsername": "Fargo",
  "refreshPolicy": "string",
  "tmdbReadToken": "string",
  "tvdbProjectKey": "string"
}
Schema
  • acoustidKeystring
  • animeTitlesstring
  • artworkLanguagestring
  • artworkMaxEdgeintegerone of 1280, 1920, 2560
  • artworkPreferencestring
  • castPhotosboolean
  • defaultLanguagestring
  • defaultRegionstring
  • expectedRevisionintegerrequired
  • fallbackLanguagestring
  • includeAdultbooleanrequired
  • librariesarray of object
    • agentstring
    • episodeThumbnailModestring
    • expectedRevisionstringrequired
    • idstringrequired
    • lyricsSourcestring
    • scrubPreviewsboolean
  • localArtworkLimitBytesintegerrequired
  • onlineLookupsboolean
  • openSubtitlesApiKeystring
  • openSubtitlesPasswordstring
  • openSubtitlesUsernamestring
  • refreshPolicystring
  • tmdbReadTokenstring
  • tvdbProjectKeystring

Responses

200Successapplication/json

Example
{
  "acoustidKeyConfigured": true,
  "acoustidKeySource": "string",
  "animeTitles": "Fargo",
  "artworkLanguage": "en",
  "artworkMaxEdge": 1280,
  "artworkPreference": "string",
  "castPhotos": true,
  "defaultLanguage": "en",
  "defaultRegion": "string",
  "fallbackLanguage": "en",
  "includeAdult": true,
  "libraries": [
    {
      "agent": "string",
      "agentOptions": [
        "string"
      ],
      "canScrub": true,
      "episodeThumbnailMode": "string",
      "id": "id_8h2k4q",
      "kind": "string",
      "lyricsSource": "string",
      "managed": true,
      "name": "Fargo",
      "revision": "r12",
      "scrubPreviews": true
    }
  ],
  "librariesComplete": true,
  "localArtworkLimitBytes": 0,
  "localArtworkUsedBytes": 0,
  "onlineLookups": true,
  "openSubtitles": {
    "account": "string",
    "accountSource": "string",
    "checkedAt": "2026-10-18T19:30:00Z",
    "downloadsAllowed": 0,
    "downloadsRemaining": 0,
    "downloadsResetAt": "2026-10-18T19:30:00Z",
    "keySource": "string",
    "problem": "string",
    "retryAt": "2026-10-18T19:30:00Z"
  },
  "openSubtitlesKeyConfigured": true,
  "openSubtitlesPasswordConfigured": true,
  "openSubtitlesUsername": "Fargo",
  "refreshAll": {
    "requestedAt": "2026-10-18T19:30:00Z",
    "running": true
  },
  "refreshPolicy": "string",
  "revision": 0,
  "tmdbCredentialConfigured": true,
  "tvdbCredentialConfigured": true
}
Schema
  • acoustidKeyConfiguredbooleanrequired
  • acoustidKeySourcestringrequired
  • animeTitlesstringrequired
  • artworkLanguagestring
  • artworkMaxEdgeintegerrequiredone of 1280, 1920, 2560
  • artworkPreferencestring
  • castPhotosbooleanrequired
  • defaultLanguagestring
  • defaultRegionstring
  • fallbackLanguagestringrequired
  • includeAdultbooleanrequired
  • librariesarray of object
    • agentstringrequired
    • agentOptionsarray of stringrequired
    • canScrubbooleanrequired
    • episodeThumbnailModestringrequired
    • idstringrequired
    • kindstringrequired
    • lyricsSourcestringrequired
    • managedbooleanrequired
    • namestringrequired
    • revisionstringrequired
    • scrubPreviewsbooleanrequired
  • librariesCompleteboolean
  • localArtworkLimitBytesintegerrequired
  • localArtworkUsedBytesintegerrequired
  • onlineLookupsboolean
  • openSubtitlesobjectrequired
    • accountstringrequired
    • accountSourcestringrequired
    • checkedAtstring
    • downloadsAllowedintegerrequired
    • downloadsRemainingintegerrequired
    • downloadsResetAtstring
    • keySourcestringrequired
    • problemstring
    • retryAtstring
  • openSubtitlesKeyConfiguredbooleanrequired
  • openSubtitlesPasswordConfiguredbooleanrequired
  • openSubtitlesUsernamestringrequired
  • refreshAllobjectrequired
    • requestedAtstring
    • runningbooleanrequired
  • refreshPolicystringrequired
  • revisionintegerrequired
  • tmdbCredentialConfiguredbooleanrequired
  • tvdbCredentialConfiguredbooleanrequired

defaultRequest refused or unavailableapplication/json

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

Error codesunauthorizednot_permittedinvalid_requestrevision_mismatchinternaltimeoutrevision_requiredidempotency_conflictreceipt_expiredinvalid_mutation_keydatabase_busywriter_capacity

Example request

curl -X PUT "http://127.0.0.1:32500/v1/admin/metadata/settings" \
  -H "Authorization: Bearer $PORTICO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "acoustidKey": "string",
  "animeTitles": "Fargo",
  "artworkLanguage": "en",
  "artworkMaxEdge": 1280,
  "artworkPreference": "string",
  "castPhotos": true,
  "defaultLanguage": "en",
  "defaultRegion": "string",
  "expectedRevision": 0,
  "fallbackLanguage": "en",
  "includeAdult": true,
  "libraries": [
    {
      "agent": "string",
      "episodeThumbnailMode": "string",
      "expectedRevision": "r12",
      "id": "id_8h2k4q",
      "lyricsSource": "string",
      "scrubPreviews": true
    }
  ],
  "localArtworkLimitBytes": 0,
  "onlineLookups": true,
  "openSubtitlesApiKey": "Fargo",
  "openSubtitlesPassword": "Fargo",
  "openSubtitlesUsername": "Fargo",
  "refreshPolicy": "string",
  "tmdbReadToken": "string",
  "tvdbProjectKey": "string"
}'
POST/v1/admin/metadata/settings/opensubtitles/checkTest the OpenSubtitles key and account in forceadmin
Audience
Clients · Native API
Authorization
API key or personal access token with the admin scope, or a signed-in session
OpenAPI operation ID
check_opensubtitles
Max body
4 KiB

Request body application/json

Example
{}
Schema

object

Responses

200Successapplication/json

Example
{
  "account": "string",
  "accountSource": "string",
  "checkedAt": "2026-10-18T19:30:00Z",
  "downloadsAllowed": 0,
  "downloadsRemaining": 0,
  "downloadsResetAt": "2026-10-18T19:30:00Z",
  "keySource": "string",
  "problem": "string",
  "retryAt": "2026-10-18T19:30:00Z"
}
Schema
  • accountstringrequired
  • accountSourcestringrequired
  • checkedAtstring
  • downloadsAllowedintegerrequired
  • downloadsRemainingintegerrequired
  • downloadsResetAtstring
  • keySourcestringrequired
  • problemstring
  • retryAtstring

defaultRequest refused or unavailableapplication/json

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

Error codesunauthorizednot_permittedrate_limitedinternaltimeoutdatabase_busywriter_capacity

Example request

curl -X POST "http://127.0.0.1:32500/v1/admin/metadata/settings/opensubtitles/check" \
  -H "Authorization: Bearer $PORTICO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
POST/v1/admin/metadata/settings/refresh-allRefresh every title's details from the providers within the refresh allowanceadmin
Audience
Clients · Native API
Authorization
API key or personal access token with the admin scope, or a signed-in session
OpenAPI operation ID
refresh_all_metadata
Max body
4 KiB

Request body application/json

Example
{}
Schema

object

Responses

200Successapplication/json

Example
{
  "acoustidKeyConfigured": true,
  "acoustidKeySource": "string",
  "animeTitles": "Fargo",
  "artworkLanguage": "en",
  "artworkMaxEdge": 1280,
  "artworkPreference": "string",
  "castPhotos": true,
  "defaultLanguage": "en",
  "defaultRegion": "string",
  "fallbackLanguage": "en",
  "includeAdult": true,
  "libraries": [
    {
      "agent": "string",
      "agentOptions": [
        "string"
      ],
      "canScrub": true,
      "episodeThumbnailMode": "string",
      "id": "id_8h2k4q",
      "kind": "string",
      "lyricsSource": "string",
      "managed": true,
      "name": "Fargo",
      "revision": "r12",
      "scrubPreviews": true
    }
  ],
  "librariesComplete": true,
  "localArtworkLimitBytes": 0,
  "localArtworkUsedBytes": 0,
  "onlineLookups": true,
  "openSubtitles": {
    "account": "string",
    "accountSource": "string",
    "checkedAt": "2026-10-18T19:30:00Z",
    "downloadsAllowed": 0,
    "downloadsRemaining": 0,
    "downloadsResetAt": "2026-10-18T19:30:00Z",
    "keySource": "string",
    "problem": "string",
    "retryAt": "2026-10-18T19:30:00Z"
  },
  "openSubtitlesKeyConfigured": true,
  "openSubtitlesPasswordConfigured": true,
  "openSubtitlesUsername": "Fargo",
  "refreshAll": {
    "requestedAt": "2026-10-18T19:30:00Z",
    "running": true
  },
  "refreshPolicy": "string",
  "revision": 0,
  "tmdbCredentialConfigured": true,
  "tvdbCredentialConfigured": true
}
Schema
  • acoustidKeyConfiguredbooleanrequired
  • acoustidKeySourcestringrequired
  • animeTitlesstringrequired
  • artworkLanguagestring
  • artworkMaxEdgeintegerrequiredone of 1280, 1920, 2560
  • artworkPreferencestring
  • castPhotosbooleanrequired
  • defaultLanguagestring
  • defaultRegionstring
  • fallbackLanguagestringrequired
  • includeAdultbooleanrequired
  • librariesarray of object
    • agentstringrequired
    • agentOptionsarray of stringrequired
    • canScrubbooleanrequired
    • episodeThumbnailModestringrequired
    • idstringrequired
    • kindstringrequired
    • lyricsSourcestringrequired
    • managedbooleanrequired
    • namestringrequired
    • revisionstringrequired
    • scrubPreviewsbooleanrequired
  • librariesCompleteboolean
  • localArtworkLimitBytesintegerrequired
  • localArtworkUsedBytesintegerrequired
  • onlineLookupsboolean
  • openSubtitlesobjectrequired
    • accountstringrequired
    • accountSourcestringrequired
    • checkedAtstring
    • downloadsAllowedintegerrequired
    • downloadsRemainingintegerrequired
    • downloadsResetAtstring
    • keySourcestringrequired
    • problemstring
    • retryAtstring
  • openSubtitlesKeyConfiguredbooleanrequired
  • openSubtitlesPasswordConfiguredbooleanrequired
  • openSubtitlesUsernamestringrequired
  • refreshAllobjectrequired
    • requestedAtstring
    • runningbooleanrequired
  • refreshPolicystringrequired
  • revisionintegerrequired
  • tmdbCredentialConfiguredbooleanrequired
  • tvdbCredentialConfiguredbooleanrequired

defaultRequest refused or unavailableapplication/json

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

Error codesunauthorizednot_permittedinvalid_requestrevision_mismatchinternaltimeoutdatabase_busywriter_capacity

Example request

curl -X POST "http://127.0.0.1:32500/v1/admin/metadata/settings/refresh-all" \
  -H "Authorization: Bearer $PORTICO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'