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
| Name | In | Type | Description |
|---|---|---|---|
cursor | query | string | |
limit | query | integer | ""1–50 | |
includeInProgress | query | string |
Responses
200Successapplication/json
{
"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
}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
{
"error": {
"code": "string",
"message": "string"
}
}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
{
"libraries": [
{
"libraryId": "id_8h2k4q",
"total": 0
}
],
"total": 0
}librariesarray of objectrequired
- libraryIdstringrequired
- totalintegerrequired
- totalintegerrequired
defaultRequest refused or unavailableapplication/json
{
"error": {
"code": "string",
"message": "string"
}
}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
{
"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
}- 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
{
"error": {
"code": "string",
"message": "string"
}
}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
| Name | In | Type | Description |
|---|---|---|---|
Idempotency-Key | header | string | |
Portico-Mutation-Root | header | string |
Request body application/json · required
{
"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"
}- 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
{
"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
}- 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
{
"error": {
"code": "string",
"message": "string"
}
}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
{}object
Responses
200Successapplication/json
{
"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"
}- accountstringrequired
- accountSourcestringrequired
- checkedAtstring
- downloadsAllowedintegerrequired
- downloadsRemainingintegerrequired
- downloadsResetAtstring
- keySourcestringrequired
- problemstring
- retryAtstring
defaultRequest refused or unavailableapplication/json
{
"error": {
"code": "string",
"message": "string"
}
}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
{}object
Responses
200Successapplication/json
{
"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
}- 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
{
"error": {
"code": "string",
"message": "string"
}
}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 '{}'No operations match that filter.